 胡绍康andClaude Opus 4.6
|
6110badd7a
|
feat: 迁移 oauth 模块到 controllers 层
- 迁移 2 个 oauth 相关 API 到 controllers/oauth.py:
- api_get_oauth_auth_url
- api_exchange_oauth_token
- 更新 routes/oauth.py 移除 impl 参数
- OAuth 配置常量从 config 模块读取
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-25 08:29:20 +08:00 |
|
 胡绍康andClaude Opus 4.6
|
2ab1721946
|
feat: 迁移 scheduler 模块到 controllers 层
- 迁移 api_get_scheduler_status 到 controllers/scheduler.py
- 更新 routes/scheduler.py 移除 impl 参数
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-25 08:19:27 +08:00 |
|
 胡绍康andClaude Opus 4.6
|
fa99c48ef6
|
feat: 迁移 pages 模块到 controllers 层
- 迁移 4 个 pages 相关路由到 controllers/pages.py:
- login (GET/POST)
- logout
- index
- get_csrf_token
- 更新 routes/pages.py 移除 impl 参数
- 保留 csrf_exempt 装饰器支持
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-25 00:49:47 +08:00 |
|
 胡绍康andClaude Opus 4.6
|
3bab297aac
|
feat: 迁移 audit 模块到 controllers 层
- 迁移 api_get_audit_logs 到 controllers/audit.py
- 更新 routes/audit.py 移除 impl 参数
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-25 00:40:14 +08:00 |
|
 胡绍康andClaude Opus 4.6
|
3228661a93
|
feat: 迁移 system 模块到 controllers 层
- 迁移 4 个 system 相关 API 到 controllers/system.py:
- healthz (无需登录)
- api_system_health
- api_system_diagnostics
- api_system_upgrade_status
- 更新 routes/system.py 移除 impl 参数
- 添加 utcnow 辅助函数和 REFRESH_LOCK_NAME 常量
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-25 00:33:46 +08:00 |
|
 胡绍康andClaude Opus 4.6
|
97ceaac64e
|
feat: 迁移 settings 模块到 controllers 层
- 迁移 3 个 settings 相关 API 到 controllers/settings.py:
- api_get_settings
- api_update_settings
- api_validate_cron
- 更新 routes/settings.py 移除 impl 参数
- 暂时通过延迟导入 legacy 模块的 init_scheduler 和 configure_scheduler_jobs
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-25 00:24:28 +08:00 |
|
 胡绍康andClaude Opus 4.6
|
4d28546de7
|
feat: 迁移 tags 模块到 controllers 层
- 迁移 3 个 tags 相关 API 到 controllers/tags.py:
- api_get_tags
- api_add_tag
- api_delete_tag
- 更新 routes/tags.py 移除 impl 参数
- api_batch_manage_tags 暂保留在 legacy,将在 accounts 模块迁移时处理
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-25 00:12:30 +08:00 |
|
 胡绍康andClaude Opus 4.6
|
163c262945
|
feat: 迁移 groups 模块到 controllers 层
- 创建 outlook_web/controllers/ 目录
- 迁移 6 个 groups 相关 API 到 controllers/groups.py:
- api_get_groups
- api_get_group
- api_add_group
- api_update_group
- api_delete_group
- api_export_group
- 更新 routes/groups.py 移除 impl 参数
- 更新 app.py 使用新的 Blueprint 注册方式
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-25 00:01:40 +08:00 |
|
 胡绍康andClaude Opus 4.6
|
5e7651ba7f
|
docs: 更新项目文档 - 批量操作与自动化增强功能
更新内容:
- project-overview.md: 添加批量操作、验证码提取、自动轮询功能说明
- architecture.md: 添加 verification_extractor.py 服务层说明
- 同步更新已完成功能列表
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-24 21:45:20 +08:00 |
|
 胡绍康andClaude Opus 4.6
|
66d9b9749b
|
feat: 批量操作与自动化增强 - 全选/复制验证码/自动轮询
功能实现:
- 全选功能:跨分组保持选中状态,使用全局 Set 存储
- 验证码提取:支持 Graph API → IMAP 回退策略
- 自动轮询:新邮件通知、红点提示、连续错误自动停止
BUG 修复 (BUG-001 ~ BUG-008):
- Toast 通知位置移至右下角
- 切换分组时保持全选状态
- 添加批量删除邮箱功能
- 验证码提取支持 IMAP 回退
- 修复轮询开关类型不一致 (boolean vs string)
- 完善轮询通知内容与红点位置
- 轮询次数校验改为 0-100 (0 表示持续)
- 复制按钮添加加载状态与反馈
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-24 21:03:53 +08:00 |
|
 胡绍康andClaude Opus 4.6
|
a9b3e4254f
|
fix: 修复临时邮箱生成失败的BUG (BUG-00001)
【问题描述】
- 用户生成临时邮箱时返回笼统错误:生成临时邮箱失败,请稍后重试
- 错误码:LEGACY_ERROR,无法定位具体失败原因
- 可能原因:API Key未配置、网络问题、API服务不可用等
【修复内容】
1. 改进 gptmail_request 函数
- 添加 API Key 配置检查
- 区分 10+ 种错误类型(CONFIG_ERROR, AUTH_ERROR, TIMEOUT_ERROR等)
- 返回结构化错误信息
2. 改进 generate_temp_email 函数
- 返回值改为 (email_addr, error_msg) 元组
- 保留详细错误信息
3. 改进 api_generate_temp_email 函数
- 使用详细错误信息返回给前端
- 添加日志记录
4. 更新前端错误提示
- 显示详细的错误信息
5. 编写单元测试
- 新增 11 个单元测试
- 更新 2 个现有测试的 mock
【测试结果】
- 所有测试通过:51/51 ✅
【相关文档】
- BUG文档:docs/BUGS/BUG-00001-临时邮箱生成失败.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-23 20:52:27 +08:00 |
|
 胡绍康andClaude Opus 4.6
|
14b1a7fa09
|
refactor: P1阶段优化 - 收敛全局变量与清理legacy代码
- 收敛前端全局变量:将 window.lastRefreshTime 和 window._lastFetchErrorDetails 改为模块变量
- 将内联 onclick 事件改为事件监听器,消除对全局变量的依赖
- 删除 legacy.py 中已被 re-export 覆盖的旧函数实现(settings 和 groups 相关,约140行)
- 所有测试通过(40/40)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-23 19:30:02 +08:00 |
|
 胡绍康andClaude Opus 4.6
|
192240436d
|
refactor: 模块化架构重构 & 完善测试与文档体系
- 架构重构:拆分为 routes/services/repositories/security 分层结构
- 新增测试:添加完整的单元测试套件(烟雾测试/核心功能/错误处理等)
- 完善文档:添加开发者指南、运行验证、回归清单、性能基线等文档
- 前后端分离:静态资源独立,模板组件化
- CI/CD:添加 GitHub Actions 自动化测试
- Docker 优化:添加健康检查,修复调度器启动问题
- 配置增强:支持 SCHEDULER_AUTOSTART 环境变量
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-02-23 18:54:16 +08:00 |
|