bd8e1412e4
Use configured contacts address book
Build And Test / publish (push) Successful in 47s
2026-01-01 15:55:00 -08:00
5a9ef0e48f
Revise contacts and email tools
Build And Test / publish (push) Successful in 48s
2026-01-01 15:46:44 -08:00
767f076048
Add tool call logging and reply fields
Build And Test / publish (push) Successful in 49s
2026-01-01 15:24:06 -08:00
7966a4302d
Add ICS calendar support
Build And Test / publish (push) Successful in 48s
2026-01-01 15:06:44 -08:00
71c55f7289
Add reply_email tool and sender override
Build And Test / publish (push) Successful in 1m0s
2026-01-01 12:16:06 -08:00
0459fb1d4c
Rewrite README
Build And Test / publish (push) Successful in 49s
2025-12-31 13:44:09 -08:00
3b687c1a4c
drafts
2025-12-31 13:42:30 -08:00
afe35c51bf
Add good news exception to notification timing
...
Build And Test / publish (push) Successful in 48s
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 19:00:04 -08:00
abd9871646
Add notification timing instruction to template
...
Build And Test / publish (push) Successful in 48s
Defer non-urgent emails until 7pm
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 18:58:22 -08:00
f557743c00
Add rich email notification with template file
...
Build And Test / publish (push) Successful in 47s
- Created src/templates/notif.txt for customizable notification format
- Include sender, recipients, subject, date, body (truncated), attachments, unsubscribe info
- Fetch full email content for notifications
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 18:07:41 -08:00
0c72186778
Fix Poke webhook payload format
...
Build And Test / publish (push) Successful in 47s
Poke API expects {"message": "..."}, not a complex structure.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 17:53:50 -08:00
4299a6523a
Add print statements for new email detection and webhook sending
...
Build And Test / publish (push) Successful in 48s
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 17:46:57 -08:00
0fcd3fbae3
Make calendar_id optional in list_events tool
...
Build And Test / publish (push) Successful in 47s
When no calendar_id is provided, lists events from all calendars.
Events include calendar_name field when listing from all calendars.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 17:41:44 -08:00
710666ee0a
Fix CardDAV URL construction for contacts
...
Build And Test / publish (push) Successful in 48s
- Add _build_url helper to properly construct URLs from paths
- Fix test.sh to pass addressbook_id when listing contacts
- Prevents path duplication when addressbook_id is a full path
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 17:39:53 -08:00
c77dbda13c
Add contacts tests to test.sh
...
Build And Test / publish (push) Successful in 48s
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 17:35:23 -08:00
ba57c5fba4
Add email flags and unsubscribe features
...
Build And Test / publish (push) Successful in 48s
- Add set_email_flags tool for IMAP flags (standard + custom keywords)
- Add unsubscribe_email tool with List-Unsubscribe header parsing
- Support RFC 8058 one-click unsubscribe
- Add UnsubscribeInfo model to email responses
- Add data field to OperationResult for extra context
- Include test.sh script for MCP server testing
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 17:23:49 -08:00
47f483ea1b
test script
Build And Test / publish (push) Successful in 48s
2025-12-30 17:17:17 -08:00
3d95914bc6
Remove non-existent doc endpoints from public paths
...
Build And Test / publish (push) Successful in 47s
FastMCP doesn't expose /docs, /redoc, /openapi.json
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 17:03:36 -08:00
34cefc75b6
Allow public access to documentation endpoints
...
Build And Test / publish (push) Successful in 48s
Skip auth for /docs, /redoc, /openapi.json
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 16:58:19 -08:00
a2104917fd
Add /health endpoint for Docker healthcheck
...
Build And Test / publish (push) Successful in 48s
The healthcheck was hitting /mcp which requires auth, causing unhealthy status.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 16:42:38 -08:00
3bc66e4efc
Replace deprecated datetime.utcnow() with timezone-aware UTC
...
Build And Test / publish (push) Successful in 48s
Use datetime.now(timezone.utc) instead of deprecated utcnow().
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 16:21:41 -08:00
ada760cc43
Fix bytes/string handling in email service
...
Build And Test / publish (push) Successful in 48s
IMAP data can be bytes; handle both in decode_mime_header and _get_text_snippet.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 16:18:51 -08:00
c2a4a1b0d0
Fix AsyncSession API: use execute() instead of exec()
...
Build And Test / publish (push) Successful in 47s
SQLAlchemy's AsyncSession uses execute() + scalars(), not SQLModel's exec().
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 16:14:27 -08:00
73d3ff4319
Fix Docker volume permissions for SQLite database
...
Build And Test / publish (push) Successful in 47s
Container runs as non-root user but mounted volumes may be owned by root.
Added entrypoint script to fix /data permissions before starting the app.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 16:11:08 -08:00
87c55e0f1f
Fix FastMCP constructor to use correct parameter names
...
Build And Test / publish (push) Successful in 44s
The FastMCP API uses 'instructions' instead of 'description'.
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-30 16:04:44 -08:00
0bbb5a5a2c
Notifications
Build And Test / publish (push) Successful in 45s
2025-12-30 15:45:50 -08:00
4f6098e8c2
Initial commit
Build And Test / publish (push) Successful in 1m30s
2025-12-30 15:16:45 -08:00
4df9a7229e
first commit
2025-12-30 15:16:41 -08:00