Commit Graph

41 Commits

Author SHA1 Message Date
zl-q d574128815 feat: 实现日历提醒 in-app fallback 机制及通知服务重构 2026-03-20 01:30:34 +08:00
qzl 0661016827 feat(auth): transition from email to phone-based OTP authentication
- Replace Email+Password login with Phone+OTP flow
- Remove RegisterCubit and registration screens (email verification)
- Remove ResetPasswordCubit and reset password screens
- Add phone normalization and international dial code support
- Update LoginCubit with sendCode/resend cooldown logic
- Add new widgets: phone prefix selector, confirm sheet
- Update all auth API endpoints: /otp/send, /phone-session
- Update form inputs: Email -> Phone with E.164 validation
- Update tests for new auth flow
2026-03-19 18:42:05 +08:00
zl-q 29a4ea5294 feat(apps): 更新消息邀请详情和认证流程路由 2026-03-19 00:51:58 +08:00
qzl b34697660d feat: 实现 Auth 全局状态机与 401 统一处理机制
- 新增 AuthSessionInvalidated 事件处理 token 失效场景
- ApiInterceptor 新增 authFailureCallback 单飞机制
- AuthBloc 区分 manual logout 与 auto expiry 语义
- 新增 startup recovery fallback 防止启动卡死

feat: 重构 Calendar DayWeek 视图事件布局引擎

- 新增 DayEventLayoutEngine 解耦事件计算与渲染
- 新增 DayTimelineMetrics 统一时间轴常量
- 新增 DayViewScale 支持捏合缩放

feat: 新增 Settings 页面共享 UI 组件

- 新增 BackTitlePageHeader 统一页面 header
- 新增 DetailHeaderActionMenu 统一操作菜单
- 新增 DestructiveActionSheet 统一删除确认
- 新增 AppToggleSwitch 统一开关组件

feat: Chat UI Schema 支持导航操作

- 支持 navigation 类型 action 触发内部路由跳转
- 新增路径验证与参数处理

chore: 更新相关测试覆盖 auth 失效路径
2026-03-18 13:35:25 +08:00
qzl 19981964fb refactor: 移除 LiteLLM proxy 架构,后端直连 Provider API
- 移除 backend/scripts/build_litellm_proxy_config.py
- 简化 LiteLLMService,移除 run_completion_with_cost 方法
- AgentScopeRunner 改为从 LlmFactory 获取 api_base 和 api_key
- 部署配置移除 litellm/litellm-config-job 服务
- Flutter 新增 AuthBootScreen 引导页
- Android 添加通知权限 (POST_NOTIFICATIONS, RECEIVE_BOOT_COMPLETED, SCHEDULE_EXACT_ALARM)
- 优化 LocalNotificationService 调度失败 fallback
- 更新 manifest.json (version 3)
2026-03-17 18:05:49 +08:00
qzl a10a2db27a feat: 添加视觉设计语言系统并重构认证页面UI
- 新增 visual_design_language.md 设计规范文档
- 新增 auth 设计 tokens (authBackground, authCard, authInput, feedback 系列等)
- 重构登录/注册/验证码/重置密码页面为新设计系统
- 新增 AuthHeroHeader, AuthSurfaceCard, AuthSection, AuthField, PasswordField 组件
- 重构 AppBanner 和 Toast 支持多类型配置 (info/success/warning/error)
- 后端 AgentScope: 重整 schemas/prompts/tools 作用域, 新增协议文档
- 更新 AGENTS.md 集成视觉设计语言约束
2026-03-13 14:10:13 +08:00
qzl 01c36eb32e refactor: 移除前端 Mock API,新增共享组件,优化认证流程
- 删除 mock_api_client、mock_calendar_service、mock_history_service
- 新增 fixed_length_code_input、link_button、message_composer 共享组件
- 优化登录/注册/密码重置页面使用新组件
- 简化 injection.dart 移除 mock 分支
- 更新 env.dart 配置(BACKEND_URL 替换 API_URL)
- 后端 agentscope 工具和测试更新
- 重构 AGENTS.md 文档结构
- 新增 deploy/ 目录和 protocol 文档
2026-03-12 16:41:45 +08:00
qzl 18db6c50e7 fix(redis): 修复 Redis 流读取兼容性问题
- 支持 bytes 和 str 类型的 entry_id
- 支持 list 类型响应格式
- 优化 payload 解码处理
2026-03-11 21:33:25 +08:00
qzl e20e7d2a02 feat: 增强日历功能并集成 AgentScope 代理服务 2026-03-11 15:28:29 +08:00
qzl 8dd48ec15b feat: 重构认证页面使用 AuthPageScaffold 组件 2026-03-10 17:42:57 +08:00
zl-q ec33bb0cee refactor: 统一认证端点并删除冗余 profile 模块
- 合并 auth 端点: /verifications/verify → /verify, /verifications/resend → /resend
- 整合密码重置到 /verify 端点 (type=recovery)
- 移除未使用的 /auth/users 端点
- 添加 redirect URL 白名单验证 (site_url + additional_redirect_urls)
- 限流改用 Redis + IP 标识,替代内存锁
- 删除 v1/profile 死代码模块
- 更新前端 auth_api 适配新端点
- 添加 supabase site_url 和 additional_redirect_urls 配置
2026-03-07 14:55:00 +08:00
qzl 5e169251fe refactor(apps): simplify API layer by removing redundant wrapper classes
- Remove ApiClientWrapper and MockApiClientWrapper
- Simplify IApiClient interface
- Update dependency injection configuration
- Optimize calendar service and AG-UI chat models
2026-03-03 10:12:46 +08:00
qzl e4e995854d feat: 实现密码重置功能与用户搜索API,优化注册登录流程
- 新增忘记密码页面与重置密码确认流程(前端+后端)
- 修复注册验证码页登录跳转路由
- 新增用户搜索API(按邮箱查询)
- 简化infra脚本,统一为app.sh
- 补充密码重置与用户API测试覆盖
- 更新runtime文档与AGENTS配置
2026-02-27 15:22:42 +08:00
qzl d635d9a5e0 refactor(frontend): adapt to RESTful API routes 2026-02-26 14:28:58 +08:00
qzl cc7a70d793 fix(auth): correct resend response type and improve error messages 2026-02-26 12:13:50 +08:00
qzl 11666e6492 fix(auth): validation toast and rate limit adjustment 2026-02-26 12:07:40 +08:00
qzl 56bee56415 fix(auth): fixed width resend button with border 2026-02-26 11:59:22 +08:00
qzl 76620cde6f style(auth): simplify resend button to text link style 2026-02-26 11:53:06 +08:00
qzl d50a1a0f8e fix(auth): show validation error toast on register form 2026-02-26 11:40:49 +08:00
qzl b80b9e795d fix(auth): allow immediate resend on first send failure 2026-02-26 11:31:35 +08:00
qzl a6fbf70ad5 fix(auth): reset state properly in sendCodeSilently 2026-02-26 11:28:33 +08:00
qzl 4f9889bb3f fix(auth): set failure status on sendCodeSilently error 2026-02-26 11:25:51 +08:00
qzl 656b2a1793 fix(auth): improve error toast trigger condition 2026-02-26 11:18:56 +08:00
qzl 74dc44b0b0 feat(auth): add toast feedback for code sending 2026-02-26 11:15:49 +08:00
qzl 8235ac5cd9 fix(auth): improve resendCode with status tracking and return value 2026-02-26 11:12:04 +08:00
qzl d1e224ece4 fix(auth): reset countdown after resend and add sending state 2026-02-26 11:06:16 +08:00
qzl 25b8a2b569 feat(auth): improve resend button style with countdown 2026-02-26 11:02:30 +08:00
qzl 1f253c54e9 feat(auth): add countdown timer for resend button 2026-02-26 10:58:29 +08:00
qzl deba6cc435 fix(auth): add navigation debounce for register next button 2026-02-26 10:52:44 +08:00
qzl 8f8b6ac263 feat(auth): optimistic navigation to verification screen 2026-02-26 10:48:48 +08:00
qzl 8e8bcfa4f5 fix(auth): prevent concurrent sendCodeSilently and add edge case tests 2026-02-26 10:46:16 +08:00
qzl 175da2a8b7 feat(auth): add sendCodeSilently with isSending state 2026-02-26 10:37:02 +08:00
qzl e20b1905cb fix(apps): consolidate FormzInput validators and fix login screen
- Move FormzInput validators to core/form_inputs/form_inputs.dart
- Fix login_screen.dart syntax error (missing 'class' keyword)
- Remove unused _isLoading field
- Fix unnecessary const keywords
- Update login_cubit and register_cubit imports
- Remove duplicate FormzInput definitions from register_cubit
- Add Toast and Banner UI feedback system
- Remove legacy login/register screens (login_code, login_email, login_password, register_step2)
- Remove unused warning_banner widget
- Update tests for new error messages and DI setup
2026-02-25 18:00:02 +08:00
qzl 8c1dfa9987 feat(apps): integrate auth cubits with register and login screens 2026-02-25 15:21:26 +08:00
qzl c9195b81b6 feat(apps): add LoginCubit for login form 2026-02-25 15:09:29 +08:00
qzl 89d2722241 feat(apps): add RegisterCubit for signup form 2026-02-25 15:05:29 +08:00
qzl 9b51c8b293 feat(apps): add AuthBloc for global auth state 2026-02-25 14:59:20 +08:00
qzl b00cfc80ab feat(apps): add auth repository 2026-02-25 14:51:21 +08:00
qzl bfec6ffd7d feat(apps): add auth data models 2026-02-25 14:45:08 +08:00
qzl 02e5e52e1f fix: add navigation links and account screen
- Fix empty onPressed handlers in login/home screens
- Add todo/calendar toggle navigation in bottom dock
- Fix message invite detail path (/messages/invites/:id)
- Add account screen with logout/switch account dialogs
- Add /settings/account route
2026-02-25 12:06:14 +08:00
qzl 4fb90de1f5 feat(flutter): add auth module with router and screens
- Add app_router.dart with auth routes (login, register)
- Update main.dart with MaterialApp.router
- Add 5 auth screens:
  - LoginEmailScreen with email validation
  - LoginPasswordScreen with password visibility toggle
  - LoginCodeScreen with verification code input
  - RegisterScreen with step indicator
  - RegisterStep2Screen with password/code/invite inputs
2026-02-25 10:57:43 +08:00