- Upgrade version to 1.8.0 in all package.json files
- Add cf-temp-mail-release-notify skill with MarkdownV2 Telegram posting
- Optimize docs_deploy.yml to auto-trigger on Tag Build CI completion
- Add v1.8.0 placeholder in CHANGELOG.md and CHANGELOG_EN.md
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
* ci: upgrade GitHub Actions to support Node.js 24
- pnpm/action-setup: v4 → v5
- actions/upload-artifact: v4 → v6
- actions/download-artifact: v4 → v6
- sync.yaml: replace inactive aormsby/Fork-Sync-With-Upstream-action with gh repo sync
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* ci: replace softprops/action-gh-release with gh release CLI
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(ci): use gh release upload instead of create for existing releases
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* feat: support attachment push for Telegram and Webhook (#894)
- Parse email attachments via postal-mime in commonParseMail
- Send attachments via Telegram Bot API sendDocument after text message
- Include base64-encoded attachments in webhook payload
- Add e2e tests for webhook attachment push
- Add i18n messages for attachment-related notifications
Closes#894
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: remove user-facing error message for failed attachment send
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: remove unused i18n attachment messages
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: use sendMediaGroup for batch attachment sending
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: remove redundant commonParseMail call, use cached result
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: remove webhook attachment support, raw already contains attachments
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: use sendDocument for single attachment, sendMediaGroup for 2+
Telegram sendMediaGroup requires 2-10 items minimum. Use sendDocument
for single attachment case. Update CHANGELOG with 50MB limit info.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: batch sendMediaGroup in groups of 9, add attachments to wasm parser
Telegram sendMediaGroup supports 2-10 items. Batch large attachment
lists into groups of 9. Also add attachments field to commented-out
wasm parser for future compatibility.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add caption to attachment messages, update wasm patch
Add email sender and subject as caption on Telegram attachment messages.
Caption is shown on the first attachment only for sendMediaGroup.
Update wasm parser patch to include attachments field mapping, and fix
wasm comment to use correct field names (content_type, content as
Uint8Array directly).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* refactor: unify attachment sending with sendMediaGroup for all cases
sendMediaGroup works with 1+ files (tested). Remove sendDocument
special case and always use sendMediaGroup with batching.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* chore: reduce sendMediaGroup batch size to 6
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* chore: change WASM parse email comment from TODO to NOTE
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* chore: regenerate wasm parser patch with attachments support
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: add ENABLE_TG_PUSH_ATTACHMENT env var to control attachment push
Add environment variable to enable/disable Telegram attachment push
(default disabled). Update type definitions, wrangler template,
worker-vars docs (zh/en), telegram feature docs (zh/en), and
changelogs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
refactor: modularize IMAP server with fixes and E2E tests
- Modularize IMAP server into imap_server, imap_mailbox, imap_message,
imap_http_client, parse_email, config, models
- Support dual login: JWT token and address+password via backend
- Add STARTTLS support with configurable TLS cert/key
- Fix FETCH/STORE returning UID instead of sequence number (RFC 3501)
- Implement IMessageFile.open() for correct BODY[] raw MIME delivery
- Add UIDNEXT to SELECT response via _cbSelectWork override
- Use per-restart UIDVALIDITY to force client resync
- Pass raw MIME to SimpleMessage for accurate RFC822.SIZE
- Fix SENT mailbox returning empty source
- Handle CREATE command gracefully for Thunderbird compatibility
- Add IMAP E2E tests: auth, LIST, SELECT, STATUS, FETCH, SEARCH,
STORE, UID FETCH, BODY[] integrity, size, seq numbers, SENT mailbox
- Add SMTP E2E tests using nodemailer: send plain/HTML, auth failure,
sendbox verification
- Add sendTestMail helper using admin/send_mail
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
ci: update PR Agent to use qodo-ai/pr-agent@main
- Add issue_comment trigger for responding to PR comments
- Add contents: write permission
- Update to official qodo-ai/pr-agent@main action
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
GitHub Container Registry requires lowercase image names. Use bash
parameter expansion to convert repository name to lowercase.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
- Update GitHub Actions workflow to only enable debug mode when DEBUG_MODE secret is exactly 'true'
- Previously debug mode was enabled for any non-empty value, which could lead to accidental activation
- Change from `[ -n "$debug_mode" ]` to `[ "$debug_mode" = "true" ]` for precise control
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Claude <noreply@anthropic.com>