Commit Graph

37 Commits

Author SHA1 Message Date
a9a7216447 feat: 登录页重设计 + Google/GitHub/Apple OAuth 登录支持
- 登录/注册页改为左右分栏布局(左侧品牌展示,右侧表单)
- 新增 Google、GitHub、Apple 三方 OAuth 登录(标准授权码流程)
- 后端:OAuth 路由、Provider 配置、用户查找/创建逻辑
- 前端:AuthBranding、OAuthButtons、LoginCallback 组件
- 移动端自适应(品牌区隐藏,显示简版标题)
- 完整中英双语 i18n 支持

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 13:31:53 +08:00
8ed857c31c merge: 合并 main 分支的 i18n 重构到 login-page 功能分支
解决冲突:
- i18n.tsx: 采用 main 的独立文件架构(en.ts/zh.ts),新增 OAuth/branding 翻译 key
- Login.tsx: 保留左右分栏布局,合入 main 的验证消息 i18n 化
- Register.tsx: 同上,合入 main 的 placeholder i18n 化

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 13:31:41 +08:00
9b41878ae7 refactor: 优化 i18n 类型安全与渲染性能
- 导出 TranslationKey 类型,翻译 key 拼写错误编译期即报错
- zh.ts 使用 TranslationKey 约束,确保中英文 key 同步
- useMemo 包装 context value,避免不必要的全局重渲染
- ConfirmDialog confirmText 默认值改用 t() 而非硬编码英文
- SchemaProperties 递归组件改为 prop 传递 t,减少 useContext 调用

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 13:26:57 +08:00
eacaa5be05 refactor: simplify OAuth routes, add type safety, deduplicate UI components
- Extract handleOAuthCallback to eliminate GET/POST duplication in oauth.ts
- Add P2002 race condition handling in findOrCreateUser
- Add .unref() to stateStore cleanup timer to not block process exit
- Use Provider union type instead of bare strings throughout OAuth code
- Export API_BASE from api.ts, reuse in OAuthButtons
- Extract MobileBranding component to deduplicate Login/Register mobile brand
- Extract shared Logo component in AuthBranding
- Remove unnecessary WHAT comments

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 13:25:50 +08:00
0bab0ecb93 feat: redesign register page with left-right split layout and OAuth buttons 2026-04-03 13:18:07 +08:00
db4e5540ad feat: redesign login page with left-right split layout and OAuth buttons 2026-04-03 13:18:05 +08:00
a7027c8aaa feat: add LoginCallback page and route for OAuth redirect handling 2026-04-03 13:17:53 +08:00
9316795e4f feat: add OAuth routes for Google, GitHub, and Apple login
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 13:16:06 +08:00
0a48152e0f feat: add AuthBranding and OAuthButtons components
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 13:15:56 +08:00
6d633eeac4 feat: add i18n translation keys for auth pages 2026-04-03 13:15:42 +08:00
7f44bc8e32 feat: add loginWithTokens method to auth context for OAuth flow 2026-04-03 13:15:38 +08:00
2d07ac6cd4 feat: add OAuth provider configuration and token exchange utilities 2026-04-03 13:13:21 +08:00
67295c22d1 feat: 全面支持中英文多语言切换
将翻译文件拆分为独立的 en.ts/zh.ts,为 t() 函数添加插值支持,
国际化 Dashboard 全部页面和组件(登录、注册、项目管理、设置、
MCP 集成等),修复 ThemeToggle 仅中文标签的 bug,
在 Dashboard header 中添加 LanguageToggle 组件。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 13:10:09 +08:00
dace447a14 docs: add login page and OAuth implementation plan
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 13:00:33 +08:00
3c53bf08bb docs: add login page redesign and OAuth support design spec
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 12:55:44 +08:00
4b3a9481c6 chore: add .worktrees/ to .gitignore
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 12:40:34 +08:00
1712b25748 fix: 修复项目相关页面路由前缀为 /dashboard
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 12:29:57 +08:00
7e691a8100 feat: new home web 2026-04-03 00:02:09 +08:00
35511eb877 feat: opt web ux 2026-04-02 22:10:24 +08:00
143b1e8c4b feat: optimize web ui 2026-04-02 18:22:14 +08:00
ccf76fea95 docs: add README.md, update .gitignore, include design and implementation docs 2026-04-02 16:10:43 +08:00
85346ce805 docs: add CLAUDE.md for Claude Code context 2026-04-02 16:05:29 +08:00
a34f486d7c fix: MCP config type should be 'http' not 'url' for Claude Code 2026-04-02 15:17:51 +08:00
ea1aff7200 fix: correct MCP config snippet - add type:url, use port 3001 directly 2026-04-02 15:12:37 +08:00
afd8b444c7 fix: pre-fetch URL spec then bundle+dereference to handle self-referencing $ref 2026-04-02 15:00:32 +08:00
6aaba810d8 fix: fetch OpenAPI doc from browser to avoid Docker network isolation, add Swagger 2.0 support 2026-04-02 14:51:43 +08:00
5f76abec8b fix: fix Docker dev proxy and handle non-JSON error responses in frontend 2026-04-02 14:48:40 +08:00
0905b0302b fix: expose Vite dev server to network in Docker 2026-04-02 13:50:56 +08:00
dfe2a5acae fix: fix Docker dev mode - build shared before starting, fix web container 2026-04-02 13:44:01 +08:00
f5907892bf feat: add Docker Compose setup with Dockerfiles for all services
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 13:39:21 +08:00
c3f8b598af feat: add React frontend with auth, project list, import, and project detail pages
Converts packages/web from vanilla TypeScript Vite scaffold to React with:
- React 19, react-router-dom v7, @tanstack/react-query v5, Tailwind CSS v4
- JWT auth context with auto-refresh token support
- Login/Register pages, protected Layout with auth guard
- Projects list with grid cards and delete action
- ImportDialog supporting URL or file upload with API key display
- ProjectDetail with 4 tabs: Documentation, Modules, MCP Integration, Settings
- All TypeScript compiles cleanly (noEmit check passes)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 13:36:45 +08:00
ac60f0bb49 feat: add MCP service with 5 multi-level retrieval tools
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 13:29:10 +08:00
a191a4db00 feat: add project CRUD, OpenAPI import/parsing, module and endpoint management routes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 11:48:06 +08:00
896115a438 chore: add initial database migration 2026-04-02 11:44:45 +08:00
2ed957762c feat: add JWT authentication with register, login, refresh, and me endpoints
Adds bcrypt password hashing, JWT access/refresh token generation, requireAuth middleware, and /api/auth routes (POST /register, POST /login, POST /refresh, GET /me).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 11:42:11 +08:00
2a15cbaead feat: add Prisma schema with User, Project, Module, Endpoint models
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 11:36:10 +08:00
f644dc2dfd feat: initialize monorepo with shared, server, mcp, and web packages
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 11:28:59 +08:00