100 Commits
Author SHA1 Message Date
BeilunYangandClaude Opus 5 636ef1e1e4 fix(auth): declare GitHub's issuer so RFC 9207 iss validation passes (#139)
GitHub now returns an RFC 9207 `iss` parameter on the OAuth callback
(`iss=https://github.com/login/oauth`). oauth4webapi validates it against
`as.issuer`, and @auth/core fills that with the placeholder
"https://authjs.dev" for non-OIDC providers, so every GitHub sign-in dies
with CallbackRouteError — which the error page reports to users as
/api/auth/error?error=Configuration ("There is a problem with the server
configuration"), even though nothing in the config is actually wrong.

Declaring the real issuer makes the comparison pass. Safe to set: the
provider already defines token/userinfo URLs, so this does not switch
@auth/core onto the OIDC discovery path. Google is unaffected because it
discovers its issuer from OIDC metadata.

Affects every deployment on next-auth 5.0.0-beta.25 (@auth/core 0.37.2,
oauth4webapi 3.1.4). GitHub first shipped this April 6-10 2026, put it on
hold on April 15 after it broke next-auth, then re-enabled it around
2026-08-19 with no announcement.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-29 18:12:16 +08:00
tyandClaude Opus 4.8 2c97914ac2 ci: add Publish MCP workflow
Mirror publish-cli.yml for @moemail/mcp: trigger on mcp-v* tags or manual
dispatch, install + bun build, then npm publish --access public using
secrets.NPM_TOKEN.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 00:04:13 +08:00
tyandClaude Opus 4.8 be917e6865 chore(packages): add/update pnpm lockfiles for cli, core, mcp
CI publishes with `pnpm install` per package; commit pnpm-lock.yaml for
core and mcp (previously missing) and refresh cli's after the @moemail/core
dependency was added, so installs are reproducible.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 00:03:20 +08:00
tyandClaude Opus 4.8 b99b872791 feat(cli,mcp): extract @moemail/core and add MCP server; release 1.0.0
Extract the HTTP client and config into a new @moemail/core package shared
by the CLI and a new @moemail/mcp server, so both frontends talk to the same
MoeMail API through one code path.

- core: api client (now throws typed ConfigError/AuthError/PermissionError/
  QuotaError instead of process.exit), config, msToIso, and a transport-
  agnostic pollForNewMessage helper.
- cli: consume @moemail/core; route command errors through a shared fail()
  that preserves exit codes (config/auth = 2, else = 1). Bump to 1.0.0.
- mcp: new stdio MCP server exposing 8 tools (create/list/read/wait/send/
  delete); wait_for_email is bounded and returns a timeout status to retry.
  Configured via MOEMAIL_API_KEY / MOEMAIL_API_URL env. Release 1.0.0.

Docs:
- Fix packages/cli/README.md (config set, send --content not --body, full
  flag table).
- Add MCP section to both root READMEs; complete the CLI command list
  (send, list, message-level delete).
- SKILL.md: --json works before or after the subcommand.
- Ignore bun.lock in package gitignores.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 23:52:35 +08:00
tyandClaude Opus 4.7 bf51e843ee fix(sharing): allowlist /api/shared in middleware
Anonymous callers to the shared mailbox API got 401 because the
middleware matcher's broad page pattern catches /api paths but the
inner allowlist only carved out /api/auth. SSR rendered the mailbox
listing, but every client-side fetch (message detail, polling,
pagination) was rejected, so opening a shared mailbox showed the list
without being able to read any message body.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 18:07:06 +08:00
ty 20be2b5b36 chore(cli): bump release to 0.1.2 2026-03-30 17:12:10 +08:00
ty 61f47626e7 feat(cli): add MoeMail AI agent skills 2026-03-30 17:08:50 +08:00
tyandClaude Opus 4.6 adec4a50df fix(ci): exclude packages dir from Next.js TypeScript compilation
The tsconfig include pattern `**/*.ts` was picking up CLI package sources
during Next.js build, causing missing `commander` module errors in CI.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 23:17:37 +08:00
tyandClaude Opus 4.6 b93b3bcf4a chore(cli): bump version to 0.1.1
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 16:15:43 +08:00
tyandClaude Opus 4.6 033125eebf feat(cli): default api-url to https://moemail.app
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 16:11:39 +08:00
tyandClaude Opus 4.6 f66c3e83a9 docs: add CLI section to READMEs and restore @moemail/cli package name
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 16:05:57 +08:00
tyandClaude Opus 4.6 cb266a03dd fix(ci): install CLI dependencies separately in publish workflow
The CLI package is not part of a pnpm workspace, so its dependencies
need to be installed from within packages/cli/ directly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 15:46:28 +08:00
ty 55c5418979 Merge branch 'feat/cli' 2026-03-22 15:42:11 +08:00
tyandClaude Opus 4.6 b010ac5760 ci: support manual trigger for CLI publish workflow
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 15:40:14 +08:00
BeilunYang 10257db179 Rename package from 'moemail-cli' to '@moemail/cli' 2026-03-22 15:32:31 +08:00
ty 0ac027f392 ci: add CLI publish workflow triggered by cli-v* tags 2026-03-22 15:22:29 +08:00
ty 8979649484 feat: add llms.txt for AI agent discoverability 2026-03-22 15:22:29 +08:00
ty 152059ca3d docs(cli): add README with usage guide and agent workflow 2026-03-22 15:22:29 +08:00
ty 3c238e25e6 fix(api): support API Key auth for send endpoint 2026-03-22 15:22:29 +08:00
ty b09cc28496 feat(cli): add send command 2026-03-22 15:22:29 +08:00
ty f29565c90d feat(cli): add delete command 2026-03-22 15:22:29 +08:00
ty 1c7cf2e5fd feat(cli): add read command 2026-03-22 15:22:29 +08:00
ty 8f4f605094 feat(cli): add wait command with client-side polling 2026-03-22 15:22:29 +08:00
ty b891ee4655 feat(cli): add list command for mailboxes and messages 2026-03-22 15:22:29 +08:00
ty 12b5f4afeb feat(cli): add create command 2026-03-22 15:22:29 +08:00
ty 542f6ec2f8 feat(cli): add API client module 2026-03-22 15:22:29 +08:00
tyandClaude Sonnet 4.6 1b9bd76b82 feat(cli): add config module and config command
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 15:22:29 +08:00
ty 6795719750 feat(cli): add output formatting helpers 2026-03-22 15:22:29 +08:00
tyandClaude Sonnet 4.6 5b7ba3e924 feat(cli): scaffold CLI package with commander
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 15:22:29 +08:00
tyandClaude Opus 4.6 0c096f6c9f docs: add MoeMail CLI implementation plan
15 tasks covering scaffolding, core modules, all 7 commands,
server-side send auth fix, README, llms.txt, and CI/CD workflow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 15:22:29 +08:00
tyandClaude Opus 4.6 f7f9e2af36 docs: add CI/CD publishing, agent discoverability, rename to packages/cli
- Add publish-cli.yml workflow triggered by cli-v* tags
- Add agent discoverability section (help, README, llms.txt)
- Rename packages/moemail-cli to packages/cli

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 15:22:29 +08:00
tyandClaude Opus 4.6 2168fd519a docs: fix spec issues from review — expiry mapping, send auth, JSON output shapes
- Remove 7d expiry option (not supported by API)
- Document send endpoint needs API Key auth support (server change)
- Add JSON output examples for all commands
- Add list-messages subcommand (list --email-id)
- Specify wait detection algorithm (ID-based, not count-based)
- Document field naming convention (camelCase) and timestamp format
- Add version command

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 15:22:29 +08:00
tyandClaude Opus 4.6 1ce4f3e9fa docs: add MoeMail CLI design spec for agent-first CLI tool
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 15:22:29 +08:00
tyandClaude Opus 4.6 10f6fd0065 docs: add MoeMail CLI implementation plan
15 tasks covering scaffolding, core modules, all 7 commands,
server-side send auth fix, README, llms.txt, and CI/CD workflow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 14:29:47 +08:00
tyandClaude Opus 4.6 3d5bfad416 docs: add CI/CD publishing, agent discoverability, rename to packages/cli
- Add publish-cli.yml workflow triggered by cli-v* tags
- Add agent discoverability section (help, README, llms.txt)
- Rename packages/moemail-cli to packages/cli

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 14:21:29 +08:00
tyandClaude Opus 4.6 00393e0443 docs: fix spec issues from review — expiry mapping, send auth, JSON output shapes
- Remove 7d expiry option (not supported by API)
- Document send endpoint needs API Key auth support (server change)
- Add JSON output examples for all commands
- Add list-messages subcommand (list --email-id)
- Specify wait detection algorithm (ID-based, not count-based)
- Document field naming convention (camelCase) and timestamp format
- Add version command

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 13:48:12 +08:00
tyandClaude Opus 4.6 1f6b3a3b32 docs: add MoeMail CLI design spec for agent-first CLI tool
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 13:44:46 +08:00
ty 070b620c18 docs: change the default readme file language 2026-02-13 14:37:26 +08:00
BeilunYang cef0ee0f0c Merge pull request #89 from sjcuhd/master 2026-01-18 14:24:58 +08:00
beilunyang 0d6670ebd5 feat(d1): add index for lowercased email addresses to improve query performance 2025-12-31 01:21:51 +08:00
beilunyang 71614333cc feat(d1): add indexes for improved query performance 2025-12-31 01:00:53 +08:00
beilunyang 98393c8a43 fix(deploy): add Google OAuth credentials to deployment workflow 2025-12-07 21:58:35 +08:00
beilunyang 9c303e4730 refactor(deploy): runtime environment variable checks in pushPagesSecret function 2025-12-07 21:46:37 +08:00
beilunyang d2c8d9278b refactor(deploy): enhance environment variable handling in deployment scripts 2025-12-07 18:43:05 +08:00
beilunyang 834d3421ea docs(readme): fix 2025-12-07 18:08:26 +08:00
beilunyang 1a37692dc5 docs(readme): add English README file 2025-12-07 18:07:13 +08:00
beilunyang dd109a464a feat(auth): add Google OAuth support 2025-12-07 17:50:27 +08:00
beilunyang 3ad30301a9 feat(i18n): add Korean language support 2025-12-07 11:48:08 +08:00
ty ed48d08503 docs(readme): add documentation section with link and description for comprehensive usage guidelines 2025-10-26 01:57:01 +08:00
beilunyang d21f8c6b42 fix(turnstile): conditionally include secretKey in Turnstile configuration based on management permissions 2025-10-22 23:37:52 +08:00
beilunyang e431c1fe5b feat(turnstile): integrate Cloudflare Turnstile for enhanced security in login and registration processes 2025-10-22 23:31:48 +08:00
beilunyang 1ffe920d47 refactor(shared-error-page): update error page to use translation keys for dynamic content 2025-10-22 01:04:10 +08:00
beilunyang 7398b73f3f feat(i18n): enhance localization support with new languages(zh-tw/ja) 2025-10-21 23:53:58 +08:00
beilunyang 0c7a4d84a5 refactor(shared-error-page): Update language switcher positioning and component 2025-10-18 22:16:48 +08:00
beilunyang 503856a8a8 fix(shared-email): Improve date handling and error resilience in shared email page 2025-10-18 22:03:27 +08:00
beilunyang b83b05b7b0 docs(metadata): Update SEO metadata for improved description and keywords 2025-10-18 20:44:24 +08:00
beilunyang 9ad1707b00 refactor(ui): Improve responsive layout and spacing across components 2025-10-18 20:37:09 +08:00
beilunyang dbe8c42b11 feat(sharing): add email and message sharing functionality 2025-10-18 20:08:42 +08:00
beilunyang 47d555eaf5 refactor: remove unused translation for common actions in email service config 2025-10-13 01:16:10 +08:00
beilunyang 923253fb8b Revert "chore: update dependencies and package versions"
This reverts commit 0fcc4b9e85.
2025-10-13 01:11:23 +08:00
beilunyang 048d9219d0 fix: ts type 2025-10-13 01:02:54 +08:00
beilunyang d175017b51 feat: add internationalization support with next-intl 2025-10-13 00:57:32 +08:00
beilunyang 0fcc4b9e85 chore: update dependencies and package versions 2025-10-12 21:13:35 +08:00
BeilunYang fd585851fc Merge pull request #78 from 1411430556/patch-1
docs: add star-history
2025-09-17 22:42:06 +08:00
beilunyang 8ec1ecdbb4 fix: new received emails not showing 2025-06-23 00:37:12 +08:00
BeilunYang f4f93d9b52 Merge pull request #57 from beilunyang/feat/resend
[Feat] Implement email sending functionality via Resend service
2025-06-22 22:44:43 +08:00
beilunyang 0f5aaab26b Revert "chore: Update wrangler-cli"
This reverts commit 166d28405b.
2025-06-22 22:29:14 +08:00
beilunyang 70c1f2e902 fix: ts type error 2025-06-22 21:54:35 +08:00
beilunyang 166d28405b chore: Update wrangler-cli 2025-06-22 21:05:19 +08:00
beilunyang 408f97f98d docs: Update readme 2025-06-22 20:57:06 +08:00
beilunyang e85f6b04bd feat: implement email sending functionality via Resend service 2025-06-22 00:32:09 +08:00
beilunyang 9d55564073 fix: the duke can not be used as the default role 2025-06-06 00:04:23 +08:00
beilunyang 7a04a8165c docs: Update README and API Key Panel to add information about api/config endpoints 2025-06-05 23:50:29 +08:00
beilunyang 60d40a7a32 fix: cleanup worker 2025-05-24 21:15:45 +08:00
beilunyang 7f7e29a80f feat: Update db migration files 2025-05-22 23:10:12 +08:00
BeilunYang f465e13620 Merge pull request #50 from fuckdywl/master close #49
Optimize email cleanup and add database indexes
2025-05-22 23:08:01 +08:00
beilunyang eb6c3fe5eb feat: /api/config endpoint can be called using APIKey 2025-05-13 00:01:15 +08:00
beilunyang fa1dadfb21 docs: Video version of the deployment tutorial 2025-04-06 21:01:08 +08:00
beilunyang 0b9f457e52 fix: Update deploy script for support custom project name 2025-04-06 20:52:52 +08:00
BeilunYang eb88cbcb31 Merge pull request #43 from sdrpsps/fix/deploy-pages-name
fix: Deploy script PROJECT_NAME is invalid
2025-04-06 20:35:08 +08:00
beilunyang bf11aae52e docs: update docs about PROJECT_NAME 2025-03-31 23:00:25 +08:00
ty f5d49790a7 feat: integrate theme support in message view for improved styling 2025-03-16 15:43:04 +08:00
ty 6ddd5bdf4e chore: enhance test data generation with user identification 2025-03-16 15:34:50 +08:00
ty e8e2349a97 fix: Github Action failed to build pages 2025-03-16 15:25:29 +08:00
BeilunYang fd46bf2661 Merge pull request #38 from jieyitang/master
feat: Add delete function for single message
2025-03-16 15:17:36 +08:00
beilunyang 58e6d06bed docs: Add GitHub OAuth configuration variables to README 2025-03-09 12:40:03 +08:00
beilunyang 436666a88b fix: Breaking update due to new deployment scripts 2025-03-09 12:03:35 +08:00
beilunyang dae8122231 feat: Update API keys index to enforce unique name per user 2025-03-09 11:28:43 +08:00
beilunyang 7210c68fbd feat: Add optional database and KV namespace IDs to deployment workflow 2025-03-09 11:17:21 +08:00
beilunyang 994ab8acc3 feat: Modify apikeys schema and README configuration files 2025-03-09 11:07:21 +08:00
beilunyang c405c02a34 docs: Update deployment instructions in README 2025-03-09 10:57:07 +08:00
beilunyang d9fb486104 feat: Add optional environment variables for database and KV namespace configuration 2025-03-09 10:22:06 +08:00
BeilunYang 77cb52e608 Merge pull request #34 from sdrpsps/chore/deploy-script
chore: Update deploy script
2025-03-09 10:08:07 +08:00
beilunyang 9b7ed0b031 docs: Add system settings section to README with configuration details 2025-03-01 10:40:59 +08:00
beilunyang ea7fd5490c refactor: Consolidate configuration management with Zustand store 2025-03-01 10:29:50 +08:00
beilunyang b1d898e298 feat: Add configurable maximum email limit for users 2025-02-28 00:30:37 +08:00
beilunyang f86d944c25 feat: Add role-based email limit exemption for emperors 2025-02-27 23:59:36 +08:00
BeilunYang 59671091b6 docs: Update Contract QRCode 2025-02-21 17:08:58 +08:00
BeilunYang 19d805de57 Merge pull request #26 from Ktovoz/updateReadme
docs:补充 Catch-All 状态不可用时的解决方案- 在 README.md 文件中添加了新的注意事项
2025-02-21 16:13:53 +08:00
beilunyang 821a32aa4b feat: Add GitHub link float menu button 2025-02-17 23:22:39 +08:00