Files
DevFlow/docs/待审查.md
绝尘 212a927eee 文档: todo销账(batch29 ARC-05/06+FR-D3+R-PD-10)+待审查登记+DOC整理
- todo: ARC-05越层核验0命中+四领域拆分/ARC-06破环aiShared/FR-D3三子项闭环销账+新增ARC-06b遗留

- 待审查: 登记CR-260616-02(batch29+R-PD-10代码 fc767e1)待审

- DOC-14: df-storage/SQLite-CRUD文档表数V13/V9→V15对齐migrations.rs schema_version=15
2026-06-16 03:28:20 +08:00

6.8 KiB

待审查队列

职责分离:

  • 主会话(编码合并后 / 巡检)→ 【写入】"当前队列"区,登记待审查项(范围 + 维度 + commit)。
  • 审查 agent(独立会话 / workflow)→ 【读取】"当前队列",执行审查,完成回填结论 + 移到"已审归档"。

这里只放审查登记,不放推进待办(推进待办见 todo.md)。 主会话不在这里做审查,只登记 + 读 todo 推进。审查发现的【待修代码项】回流 todo 作推进待办。

审查规则(审查 agent 遵守)

  • 只读审查,不改代码
  • 独立 grep/read 核验源码,不信文档 / 会话描述 / 设计声明的结论(防上下文污染)。
  • 每条 finding 须 file:line 源码佐证 + evidence。
  • 严重度:high(破坏性 / 数据错 / 回归) / med(逻辑瑕疵 / 边界漏) / low(风格 / 可读)。
  • 完成回填:总体 verdict(PASS / ISSUES / WATCH)+ high/med/low 清单 + 待修项回流 todo。

状态图例

🟡 待审 / 🔵 审查中 / 已审(结论) / 🔴 待修(有 high 问题)


当前队列

CR-260616-02 batch29+R-PD-10 代码改动批次 — 🟡 待审

  • commit: fc767e1 优化: R-PD-10 storage_err DRY统一 + FR-D3 migrations if链转数组循环
  • 状态: 🟡 待审(中优 — DRY 重构 + 迁移逻辑改,主代理已独立核查)
  • 改动文件:
    • crates/df-storage/src/crud.rs(R-PD-10: 110 处 .map_err(|e| Error::Storage(e.to_string())) 统一 storage_err helper)
    • crates/df-storage/src/migrations.rs(FR-D3: run() 15 个 if current_version<N 块改 [(i32, fn); 15] step 数组循环,零行为变更)
  • 主代理核查: cargo check -p df-storage exit 0 + cargo test -p df-storage 11 集成全过(含 open_in_memory→run 全量迁移路径)+ git diff 边界合规(2 文件符合 df-storage 域)
  • 审查关注点: ①R-PD-10 helper 泛型 E: ToString 全 110 处类型兼容 ②FR-D3 step 数组循环行为等价(同 current_version 同序执行同 migrate_vN)③迁移数据安全(PRAGMA 幂等探测 + schema_version INSERT 保留)
  • 范围外: ARC-05/06 验证性无代码改动(此前批次已闭环,本次仅核验)+ DOC 文档(V13→V15 表数对齐,低审)

已审归档

CR-260616-01-fixes 审查待修项修复批次 — 已审(PASS)

  • commit: 4dc5219 修复: CR-01审查待修项①类7项(CSS补 testing/blocked 徽章 + CAS防回收站推进 + DRY + 注释 + 测试改名 + advancing 接文案)
  • 审查时间: 2026-06-16(独立审查 agent · 防"主代理已核查双绿"代入,亲核源码)
  • 总体结论: PASS🔴0 🟡0 2(范围外观察项)
  • 独立核验(不信主代理核查声明,grep/read 亲验 7 项①类修复):
    • CR-01-B CAS deleted_at 语义 soft_delete(crud.rs:800)设 deleted_at 非空;advance_status_atomic 两分支(bump_rounds + 普通,crud.rs:855/859)均加 AND deleted_at IS NULL,回收站任务 affected=0 → None 必败。D-02 软删收口正确,一处关闭。
    • CR-01-A CSS 配色跨视图一致 — TaskDetail.vue:344-345 与 Tasks.vue:413-414 逐字镜像(testing 橙 #ff9800 / blocked 红danger 0.5px 边框),跨视图统一。
    • CR-01-C DRY 文案零变更 ALL_STATES(task_state_machine.rs:48-56)= ["todo","in_progress","in_review","testing","done","blocked","cancelled"],join("/") = 原硬编码串,顺序与值全等,无运行时文案变化。
    • CR-01-H 测试改名 cas_returns_none_when_status_mismatch(task_advance_node.rs:313)真存在,改名后注释指向正确的 CAS 失败测试。
    • CR-01-I advancing i18n — zh/en 均有(taskDetail.ts:38 推进中.../Advancing...),TaskDetail.vue:63 接 advancing 态。
    • CR-01-F 白名单注释 allowed_columns_for("tasks")(crud.rs:331)数组无 review_rounds + 注释说明专用路径(仅 advance_status_atomic),收口防误补。
    • CR-01-E state.rs 注释 — build_registry(state.rs:240)注释准确,说明 TaskAdvanceNode 未注册原因(阶段2 DAG 联动时加)。
  • 范围外(记录不审,非本批缺陷):
    • 工作区 crud.rs 226行未提交 = R-PD-10 storage_err DRY 重构(提取包装函数替换散落 .map_err(|e| Error::Storage(e.to_string()))),非 4dc5219 范围,独立审查留待其 commit。
    • status-abandoned CSS class ↔ cancelled 后端态 = 历史命名别名(constants/project.ts:83 cancelled: 'status-abandoned' 映射闭环,功能正确),非本批引入。命名语义瑕疵(abandoned 弃用 ≠ cancelled 取消),low,可选优化。
  • 待修项回流 todo: (7 项全过,无新缺陷)。

CR-260616-01 任务推进链(batch28) — 已审

  • commit: d2cb38c 新增: 任务推进链(7态状态机+advance_task CAS原子写)+软删除+前后端7态对齐
  • 审查时间: 2026-06-16(5 路并行多角度·防代入独立核验)
  • 决策依据: D-260616-01(前端7态对齐) / D-02(任务软删除) / D-03(advance_task 走 df-nodes Node trait) / D-04(阶段1先行)
  • 总体结论: 🔴0 🟡6 4 — 质量优
  • 8 点 checklist 全过:
    • 状态机矩阵 (7态15转换,前后端单一真相源)
    • CAS 原子 (WHERE id AND status=expected + affected=0 报错)
    • 退回累加原子 (同 UPDATE)
    • V15 迁移幂等 (版本门控 + column_exists 双层,八版零事故)
    • IPC 真 thin (D-03 守住,task.rs 仅 3 行转发)
    • i18n 成对零遗漏 (28 key)
    • create_task 不暴露 rounds
    • 测试 25 个
  • F-03 status 双写 = 已知延后(阶段3 三件同落地,非新缺陷)
  • 范围外澄清: df-ai/lib.rs(mod retry) + script_node.rs(shell_type) = 同 commit 无关连带改,零风险误报
  • 待修项回流 todo(CR-01-A~I,见 todo.md "审查发现待修项"区):
    • [P1] CR-01-A TaskDetail.vue scoped style 补 .status-testing/.status-blocked(D-01 前端7态遗漏,testing/blocked 徽章裸渲染丢样式;同查 Tasks.vue/Dashboard)
    • [P1] CR-01-B crud.rs advance_status_atomic CAS SQL 加 AND deleted_at IS NULL(get_by_id 宏无软删过滤→回收站任务可被 advance,D-02 软删对齐遗漏,语义错乱)
    • [P2] CR-01-C task_advance_node.rs:46 错误7态硬编码改 ALL_STATES.join("/")(DRY 单一事实源)
    • [P2] CR-01-D task_advance_node.rs:62 同态拒绝(from==to)/非法转换区分(现合并 InvalidState,前端无法分辨)
    • [P2] CR-01-E state.rs build_registry 注释补「task_advance 未注册(阶段2联动时加)」
    • [P2] CR-01-F crud.rs:325 白名单注释补 review_rounds 专用路径
    • [P3] CR-01-G TaskDetail.vue:218 advance 失败错误走 i18n 分级(en locale 也中文)
    • [P3] CR-01-H task_advance_node.rs:297 测试改名(实际未测 CAS 失败)
    • [P3] CR-01-I i18n taskDetail.advancing 冗余 key 处理