Commit Graph

102 Commits

Author SHA1 Message Date
peanut 99a3cb883e docs:短篇小说服务接口迁移设计方案
- 后端 SSE 代理 + 前端多轮交互状态机改造
- 外部 short-novel-service 接口替代内部 AI Runtime
- 数据持久化改为小说完成后一次性保存
- 短信验证码修复(888888→123456)
2026-07-19 11:52:41 +08:00
peanut 3bb6716e0f docs: ScriptView 简化为纯对话流模式设计文档 2026-06-30 22:45:29 +08:00
peanut 7fb90299d1 docs: ScriptView 对话模式按钮完整修复设计文档 2026-06-29 22:34:27 +08:00
peanut 6ae721eb89 fix: 回滚 ScriptView 临时 conversationId 正则保护(误伤历史剧本) 2026-06-28 23:33:29 +08:00
peanut 808a590b8d fix: nginx 根路径 301 重定向到 /emotion-museum/(修复首页 404) 2026-06-28 23:21:03 +08:00
peanut a43bb1a555 docs:新增本地服务管理规则优化实现计划 2026-06-28 10:20:54 +08:00
peanut 5b31845b33 docs:新增本地服务管理规则优化设计文档
- 强制使用 dev-services.py 控制本地服务
- 前端/H5 固定端口从 5178 开始累加
- 优化 restart 命令,避免无意义重启
2026-06-28 10:16:29 +08:00
peanut 8dc2454beb docs:新增 MessageCard 组件实现计划 2026-06-28 09:06:32 +08:00
peanut f7dba6ba60 docs:新增 MessageCard 组件统一设计文档
- 提取 MessageCard.vue 独立组件
- 按 100 字阈值自动切换短消息/完整卡片模式
- story-card 和 result-chat-list 复用同一组件
2026-06-27 23:25:26 +08:00
peanut 847e80aa0e docs:新增 AI 消息卡片功能按钮实现计划 2026-06-27 22:29:27 +08:00
peanut e014450aa3 docs:新增 AI 消息卡片功能按钮统一设计文档
- 修复 story-card 展开失效 bug
- 为每条 AI 消息添加完整功能按钮组
- 采用方案 A:在现有单文件组件内修复 + 扩展
2026-06-27 20:40:37 +08:00
peanut 591f70a2f6 docs: 批量更新历史文档中的 backend-single 引用为 server 2026-06-27 17:27:27 +08:00
peanut ed741ac8bf docs:短信登录开关与通用系统配置实现计划 2026-06-27 10:18:00 +08:00
peanut 4b235fa5d3 docs:短信登录开关与通用系统配置设计文档 2026-06-27 10:09:24 +08:00
peanut 637334adb8 docs:添加按钮简化与自定义弹窗实现计划 2026-06-24 22:37:48 +08:00
peanut 1900ba6efc docs:添加标签按钮简化与自定义弹窗设计 2026-06-24 22:31:54 +08:00
peanut 433ba4c498 docs:小程序标签库扩展功能实现计划 2026-06-24 21:26:53 +08:00
peanut 1cdee47f3a docs:小程序编辑资料页性格标签与兴趣爱好库扩展设计 2026-06-24 21:20:41 +08:00
peanut 4cb6d6de9b docs:ScriptView 对话结果页 UI 调整实现计划 2026-06-23 22:51:55 +08:00
peanut 6b6af757d0 docs:ScriptView 对话结果页 UI 调整设计文档 2026-06-23 22:49:15 +08:00
peanut e7531f86cf docs:去除编辑资料页与剧本列表 mock 数据实现计划 2026-06-23 22:16:27 +08:00
peanut a00ce0bf95 docs:去除编辑资料页与剧本列表 mock 数据设计文档 2026-06-23 22:14:31 +08:00
peanut eb50358e3d docs:小程序编辑资料页昵称必填提示优化实现计划 2026-06-23 21:34:53 +08:00
peanut 41ed8257f6 docs:小程序编辑资料页昵称必填提示优化设计文档 2026-06-23 21:29:54 +08:00
peanut 83d3f87cf6 docs:修正实现计划中 .star 样式的保留说明 2026-06-15 10:47:03 +08:00
peanut 16cee44a85 docs:个人信息组件合并实现计划 2026-06-15 10:46:21 +08:00
peanut 49f73679d0 docs:个人信息组件合并设计文档 2026-06-15 10:43:42 +08:00
peanut 74a2c15b6b feat: 完善人生轨迹详情页功能及微信小程序登录优化 2026-06-15 10:17:30 +08:00
peanut e021fe8443 docs:补充人生轨迹详情页调整实施计划 2026-06-09 23:05:27 +08:00
peanut d710f529fc docs:补充人生轨迹详情页操作区调整设计 2026-06-09 22:51:46 +08:00
peanut 1e2de85f2e docs: add user profile real data implementation plan 2026-06-04 00:43:47 +08:00
peanut 55f06e8caf docs: add user profile real data design spec 2026-06-04 00:39:50 +08:00
peanut a6dcc0843d docs: add mine view dynamic data design spec 2026-06-04 00:34:48 +08:00
peanut 8ded0cc3ad docs: add login route fix design spec 2026-06-04 00:17:55 +08:00
peanut 070e7dfbd9 docs(plan): 微信小程序登录修复实施计划
8 个任务,TDD 风格,频繁 commit:

- Task 1: WechatApiException 异常类(30 行)
- Task 2: WechatApiLoggingInterceptor 拦截器 + 4 个脱敏单元测试(60 行)
- Task 3: WechatResponseErrorHandler 错误处理器(30 行)
- Task 4: 重写 RestTemplateConfig 统一 Bean(13 → 40 行)
- Task 5: 重写 code2Session 五步防御 + 8 个单元测试(49 → 90 行)
- Task 6: application.yml 移除 app-id/app-secret 硬编码(2 行)
- Task 7: GlobalExceptionHandler 新增 WechatApiException handler(+25 行)
- Task 8: 端到端验证(mvn + 部署 + H5 + 脱敏检查 + 回滚测试)

总计约 280 行 Java + 2 行 YAML。每个任务独立 commit 便于回滚。

执行方式:Subagent-Driven(用户已选)
依赖技能:superpowers:subagent-driven-development
2026-06-03 22:18:11 +08:00
peanut 82c308b40a docs: 修复 spec 评审 Round 2 发现的 1 P0 编译错误 + 3 P2 一致性问题
P0 编译错误:
- MediaType.includesCompatibleWith() 不存在于 Spring Framework
  改为 MediaType.APPLICATION_JSON.isCompatibleWith(contentType)
  (避免实现阶段 mvn 编译直接阻塞)

P2 一致性:
- WechatResponseErrorHandler 类注释第 1 条错误('显式重写返回 true')
  改为正确的 '委托父类 4xx/5xx 判断'
- hasError() 方法内联注释自相矛盾
  改为正确的 '委托父类 DefaultResponseErrorHandler.hasError()'
- GlobalExceptionHandler.handleWechatApiException rawBody 日志未脱敏
  (Interceptor 已脱敏响应 body,但 rawBody 字段在异常对象中再次传递会绕过脱敏)
  新增 desensitizeForLog() 方法复用正则,覆盖 code 字段(authorization code 也需脱敏)
- 移除 @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
  (与现有 BusinessException handler 不一致;HTTP 层统一返回 200,业务错误由 Result.code 表达)
2026-06-03 07:42:59 +08:00
peanut 13f773f3f0 docs: 修复 spec 评审 17 个问题(4 P0 阻塞 + 7 P1 重要 + 6 P2 次要)
P0(阻塞):
- BufferingClientHttpRequestFactory 解决响应体流被消费破坏其他 7 个使用点
- WechatApiException 显式 handler 避免泄露原始错误消息给前端
- LoggingInterceptor 脱敏 session_key/openid/unionid 解决敏感信息泄露
- WechatResponseErrorHandler 显式重写 hasError 避免流消费冲突

P1(重要):
- 包结构统一(LoggingInterceptor → interceptor 包,ErrorHandler → config 包)
- WechatApiException 用 HTTP 风格错误码(400/500/502)替代负数
- app-id/app-secret 一致性:都删除硬编码默认值
- WAF 验证改为后端日志验证 UA(不再用 Postman)
- 列出 7 个其他 RestTemplate 使用点逐一评估

P2(次要):
- body 日志改 DEBUG(生产 INFO 不打印)
- 统一 [WeChatAPI] 日志前缀便于 grep
- rawBody 不放在 DTO(保持纯 DTO)
- 增加回滚方案说明
2026-06-03 07:35:50 +08:00
peanut 5631f22566 docs: 修复微信小程序登录 text/plain 错误设计文档(WAF 拦截 + 凭据硬编码) 2026-06-03 07:28:30 +08:00
deploy-bot a277a7325f docs: 添加 nginx 站点启用超时修复实施计划 2026-06-02 21:58:49 +08:00
deploy-bot 85ba685bba docs: 修复 spec 评审 3 发现的 3 个问题(步骤 3 两段式、domain 结构校验、步骤 4 warning+步骤 5 验证 default) 2026-06-02 21:52:04 +08:00
deploy-bot 78e97f6fee docs: 修复 spec 评审 7 个问题(test 命令、失败短路、变量校验等) 2026-06-02 21:43:57 +08:00
deploy-bot f6b3ba2d8c docs: 添加 nginx 站点启用超时修复设计文档 2026-06-02 21:41:07 +08:00
peanut 2189ed24e6 docs: refine wechat auth design and plan 2026-05-31 23:37:02 +08:00
peanut 280c3d5e7d docs: add mini program wechat auth implementation plan 2026-05-31 23:28:36 +08:00
peanut 9f829acb0e docs: add mini program wechat auth design 2026-05-31 23:22:25 +08:00
peanut 2d7776dd4d docs: 如愿星球小程序修改需求整理文档 2026-05-26 20:45:53 +08:00
peanut e3e1903d93 docs: 调用日志列表增加用户字段实现计划 2026-05-25 21:45:43 +08:00
peanut 763e1df662 docs: 调用日志列表增加用户字段设计文档 2026-05-25 20:52:05 +08:00
peanut 6e5a379bef docs: 补充 AI 打字机输出、小程序灵感卡片、脚本主页布局等设计文档和计划
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 18:39:26 +08:00
peanut 56535dbcb0 docs: AI 调用日志详情查看功能实施计划
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 11:43:40 +08:00