|
1 | | -# 技术债清单(权威:2026-09-02) |
| 1 | +# 技术债清单(权威:2026-09-02 二轮) |
2 | 2 |
|
3 | 3 | > 本清单为当前唯一权威债务清单,归档日滚动更新;旧归档清单仅历史追溯。 |
4 | | -> 来源:2026-09-02(v0.18.0「学习目标层 M1」交付 4 提交 + 新增代码七维审查即修; |
5 | | -> 昨日 8 笔逐条核验:均未发生偿还条件 → 继承 carried,TD-31-B 备注更新) |
| 4 | +> 来源:2026-09-02(二轮:v0.18.2「AI 目标规划师」全链路交付 + 新增代码七维审查即修; |
| 5 | +> 昨日(同日上午批)8 笔逐条核验:均未发生偿还条件 → 继承 carried) |
6 | 6 |
|
7 | 7 | ## 未偿债务 |
8 | 8 |
|
|
19 | 19 |
|
20 | 20 | ## 今日已偿 |
21 | 21 |
|
22 | | -无既有债务偿还;本日新增代码七维审查定位并**即修 8 项**(不立债,均在本批修复提交内): |
23 | | -1. **审查-P1-1(P1)**:访谈模式第 3 问时限选择(a.horizon)创建时丢失——create_goal 收到面板默认值「3m」而非用户选择;改 effectiveHorizon 口径(前端 57c4dd7)+测试断言 6m 透传 |
24 | | -2. **审查-P1-2(P1)**:skipped 里程碑(废弃计划项)计入进度分母与毕业判据——跳过拖死整个目标(里程碑 2/4 永远差一条);SQL 排除 skipped+单测(60f4d1e) |
25 | | -3. **审查-P2-1(P2)**:重访谈(update_goal_interview)名称修改不落库——对话框允许改名但后端忽略;名称随对话窗口生效(空名回退旧名)+单测(60f4d1e) |
26 | | -4. **审查-P2-2(P2)**:update_goal / update_goal_milestone 两命令无前端调用方(接入性缺口);详情页改名+里程碑标题行内编辑接线(57c4dd7) |
27 | | -5. **审查-P2-3(P2)**:horizon=none 宣言文案「用无期限学会…」病句——前后端对齐为「长期目标(无期限):学会…」(60f4d1e/57c4dd7 golden 同步) |
28 | | -6. **审查-P2-4(P2)**:命令层 require 后 .unwrap() 防御缺口(检查-取数窗口并发删除会 panic)——ok_or_else 化(60f4d1e) |
29 | | -7. **审查-P2-5(P2)**:访谈答案文本无上限入库——bounded 200 字截断(intent/配方边界同口径)+单测(60f4d1e) |
30 | | -8. **审查-P3-1(P3)**:InterviewDialog 编辑态 onCreated 伪 Goal 对象 + 空态热词不预填——无参回调清理+initialName 预填(57c4dd7) |
| 22 | +无既有债务偿还;本日新增代码七维审查定位并**即修 7 项**(不立债,均在本批修复提交内): |
| 23 | +1. **审查-P1-4(P1)**:GoalPlanApprovalDialog 里程碑标题编辑被原题覆盖(`{...editingTitles, ...m}` 展开顺序)——编辑优先 + 3 项组件测试回归(c4e6d88) |
| 24 | +2. **审查-P1-5(P1)**:InterviewDialog AI 路径重复建目标(失败后"确认创建"再建 / AI 成功后再建)——失败回滚 delete_goal / 确认成功 onCreated 收口(c4e6d88) |
| 25 | +3. **审查-P1-6(P1)**:ai_goal_plan 无并发互斥(双击/多窗口重复扣费)——AppState `goal_plan_busy` Arc<AtomicBool> swap 占位 + BusyGuard Drop 释放(async Send 兼容)(c4e6d88) |
| 26 | +4. **审查-P2-6(P2)**:goal_apply_plan 里程碑判据白名单/周界再校验(防任意请求直写 self_test M3 占位契约)(c4e6d88) |
| 27 | +5. **审查-P2-7(P2)**:ai_goal_plan 状态守卫(仅 active/paused 可规划——毕业/放弃防误操作与无谓成本)(c4e6d88) |
| 28 | +6. **审查-P3-3(P3)**:毕业档案单条坏快照导致整命令失败——跳过+日志(归档可读性优先)(c4e6d88) |
| 29 | +7. **审查-P3-4(P3)**:goal_summary 历法换算无已知锚点回归——1700000000=2023-11-14 断言(c4e6d88) |
31 | 30 |
|
32 | 31 | ## 审查观察项(登记不立债) |
33 | 32 |
|
34 | 33 | | ID | 摘要 | 处置 | |
35 | 34 | |----|------|------| |
36 | | -| 观察 2026-09-02-1 | GoalDetail 组件级测试未覆盖(改名/里程碑编辑/弱项渲染)——核心命令契约已由后端单测(commands_goals 13 项)覆盖,交互层登记后续 | 登记后续(随 v0.18.1 组件批补测) | |
37 | | -| 观察 2026-09-02-2 | 删除目标确认沿用 window.confirm(与 TD-31-B 存量一致,13 处余量含本处)——不单独立债 | 并入 TD-2026-08-31-B 追踪 | |
38 | | -| 观察 2026-09-02-3 | GoalPage 常驻挂载(display:none)启动即 list_goals——与既有页面同模式(TD-004 保留挂载纪律),无新增窗口期负担 | 无问题(登记说明) | |
| 35 | +| 观察 2026-09-01-1 | 对话页 `/refine`(TaskLaunchDialog)未接策略区——任务发起始于全局默认 | 登记后续(架构已通:命令参数/预览/meta 全就绪,仅 UI 未接) | |
| 36 | +| 观察 2026-09-01-2 | 「再来一版·更/少干预」未独立成 UI(重生成已沿用策略档位;一键"更/少"需改档位 UI) | 登记后续 | |
| 37 | +| 观察 2026-09-01-3 | 制作版本号(tauri.conf.json/package.json 0.13.9)与版本存档线(v0.14~v0.17.0)漂移 | 预存记录(semantic-release 管 main 线;dev 不升,发版前核) | |
| 38 | +| 观察 2026-09-01-4 | note_filter 预存 2 例失败(TD-30-B 关联)与单跑测试 exe onnxruntime.dll 加载环境问题 | 预存环境/存量记录(v0.12.5 归档已记同类) | |
| 39 | +| 观察 2026-09-01-5 | RefineLaunchDialog 预览防抖(250ms)与确认之间的展示延迟——实发参数始终用当前 draft(所见即所发成立),仅渲染略滞后 | 无问题(登记说明) | |
| 40 | +| 观察 2026-09-02-1 | GoalDetail 组件级测试未覆盖(改名/里程碑编辑/弱项渲染)——核心命令契约已由后端单测覆盖,交互层登记后续 | 登记后续(随 v0.18.1 组件批补测) | |
| 41 | +| 观察 2026-09-02-2 | 删除目标确认沿用 window.confirm(与 TD-31-B 存量一致)——不单独立债 | 并入 TD-2026-08-31-B 追踪 | |
| 42 | +| 观察 2026-09-02-3 | GoalPage 常驻挂载(display:none)启动即 list_goals——与既有页面同模式(TD-004 保留挂载纪律) | 无问题(登记说明) | |
| 43 | +| 观察 2026-09-02-4 | 前端 authorized=true 硬编码("本次上传确认"弱化为设置页一次性授权——与 ai_refine_start 逐次确认契约差异;content_gate/独立开关仍在门禁) | 与设计 §六 一致("未授权置灰"而非逐次弹窗),登记说明;逐次确认随授权 UX 增强批 | |
| 44 | +| 观察 2026-09-02-5 | /goal 注入每调一次全量 list_goals(每卡进度聚合)——目标量级小,毫秒级;规模增长时改目标名索引 | 无问题(登记说明) | |
| 45 | +| 观察 2026-09-02-6 | GoalPlanApprovalDialog 测试已补 3 项(标题不回弹/勾选排除/规则回退);GoalAiSection 未单测 | 登记后续(设置段随授权 UX 批补测) | |
39 | 46 |
|
40 | 47 | ## 验证记录 |
41 | 48 |
|
|
0 commit comments