规划文档深度归档治理
本文档负责定义 roadmap.md、todo.md 与 todo-archive.md 的深度归档管理规则。
1. 阈值定义
todo.md
- 健康窗口:
<= 500行。 - warning 触发:
501 - 600行。 - 强制分片:
> 600行。
roadmap.md
- 健康窗口:
<= 800行。 - warning 触发:
801 - 900行。 - 强制分片:
> 900行。
todo-archive.md
- 健康窗口:
<= 500行。 - warning 触发:
501 - 700行。 - 强制分片:
> 700行。
2. 主窗口保留策略
roadmap.md:保留当前阶段规划、最近阶段的审计归档摘要。更早阶段迁移到archive/roadmap-phases-*.md分片。todo-archive.md:保留最近3 - 5个已归档阶段的完整块。更早阶段迁移到archive/todo-archive-phases-*.md分片。
3. 阶段归档流程
- 确认当前阶段全部任务已完成
- 将已完成任务从
todo.md移入todo-archive.md - 更新
roadmap.md中对应里程碑状态 - 若触发行数阈值,按阶段区间切分归档分片
- 更新
archive/index.md索引
4. 当前基线(2026-09-11 M28.6 阶段归档后)
roadmap.md: 健康窗口(约 330 行,< 800 阈值)。M0-M28 全部归档;Milestone 概述表 27 阶段按时间顺序排列(M0→M28);M28 行状态更新("进行中" → "已完成 2026-09-11 M28.6 归档 / 5 候选完整闭环 11 commits / ahead=11 待用户主动推送");§M28 段 D6 决策增补(M28.1-M28.5 完整闭环 + ahead commits 关联表 11 commits);末尾 §详细任务段"当前阶段任务"指针更新(M28 已归档 → 下一阶段 M29+ 待用户决策启动)。todo.md: 健康窗口(约 60 行,< 500 阈值)。M28 任务清单已迁出至 todo-archive.md §M28 指针段(指针段模式与 M26/M27 同源策略——ahead commits 关联表 + D6 决策增补承载于 roadmap.md §M28 段);顶部 banner 切换为 "M28 完整闭环 + M28.6 归档已落地(2026-09-11) / ahead=11 commits 待用户主动推送;下一阶段待用户决策 M29+ 启动";文档位置速查段保留 + 指针更新。todo-archive.md: 健康窗口(约 570 行,< 700 强制分片阈值)。主窗口保留最近 5 个完整段(符合 "3-5 个阶段" 健康策略)+ M24 / M25 / M26 / M27 指针段 + 早期阶段指针段:2026-09-11 M28 治理债清理 + 能力扩展(M28.1 §4.4 第 11 条规则强化 + M28.2 C14 多 cs lint 性能 benchmark + 批处理 + M28.3 C15 B 类规则样本核对脚本 + 报告模板 + M28.4 C33 MCP P3 pnpm_audit tool + RunResult 对齐 + M28.5 M22.8 follow-up ② Set-Cookie 路径扫描治本验证 / 全部 5 候选已闭环 / ahead=11 commits 待用户主动推送)+ 2026-09-10 M27 用户体验 + 治理优先(M27.1-M27.5 全部 5 原子条目已闭环 / 11 commits ahead 待用户主动推送)+ 2026-09-10 M26 平台 AI 研判应用层 + 批量导入 Resource owner 化 + 文档站 i18n + License 收口 + 经验沉淀(M26.1+M26.2+M26.3+M26.4a+M26.4b+M26.4c+M26.5 全部 7 原子条目已闭环 / 36 commits 全部 ahead=0 已推送至 origin/master)+ 2026-09-02 M23 M22 治理债收口 + 根因排查 + 能力扩展 + 测试补强(M23.0+M23.1+M23.2+M23.3+M23.4 全部已闭环 / 17 atomic commits 全部 ahead=0 已推送至 origin/master)+ 2026-09-01 M22 SQLite 数据保护防御加固(M22.1+M22.2+M22.3+M22.4+M22.5+M22.6 全部已闭环 / 13 commits 全部 ahead=0 已推送)。M28 指针段模式:与 M26/M27 同源策略,仅保留导航指针 + ahead commits 关联表 + 关键决策 D6;完整实施记录通过git log关键 commit 链查 + roadmap.md §M28 段。预防性分片同步记录:M28.6 归档批次(2026-09-11)已预防性迁出至 todo-archive-phases-m28.md;M26 已于 2026-09-10 M26 归档批次迁出至 todo-archive-phases-m26.md;M24 / M25 已于 2026-09-08 迁出至 archive/todo-archive-phases-m24.md + archive/todo-archive-phases-m25.md;M19 / M20 / M21 已于 2026-09-10 M26 归档批次预防性分片迁出至 todo-archive-phases-m19-m21.md;M14 + M15 已于 2026-08-31 迁出至 todo-archive-phases-m14-m15.md;M16 + M17 已于 2026-08-31 迁出至 todo-archive-phases-m16-m17.md;M18 已于 2026-09-01 M22 归档批次预防性迁出至 todo-archive-phases-m18.md。ahead=11 commits(git rev-list HEAD ^origin/master --count2026-09-11 实测;M28 全部 11 commits ahead 待用户主动推送;按 AGENTS.md §5 推送禁令 未经用户明确要求不得执行git push)。backlog.md: 健康窗口(约 229 行,< 500 阈值)。M28.6 归档批次同步清理已闭环条目:(a) §短期候选 C14 多 cs 告警 lint 性能(已 M28.2 闭环 commit395ee29baseline +eaaa997批处理优化)+ C15 Code Scanning B 类规则样本核对(已 M28.3 第一阶段闭环 commit99302b5)+ C33 MCP P3(已 M28.4 闭环 commit9207481tool +5cf2d22RunResult 对齐)3 个候选整行删除。保留:维护规则 / 长期主线 #1 PrimeVue hydration + #2 network-audit G1(仅多阶段反复可执行内容)/ 周期性回归验证层 / 短期候选未闭环条目(C37 / D1 / D3 / SAML 2.0 SSO / D8 / B2 / C68 Git 代理)/ 延期暂缓项(T705 / T703 / C30 / PrimeVue 4→5 / db-restore 审计未采纳项)/ 待人工验收(T701 / T702 / T704 / 发布管线)/ 已知边界(PrimeVue hydration 持续观察 + PrimeVue sort-mode/multisortMeta 持续观察 + SQLite 单文件脆弱性 + 经验归档 §五十事故复盘 + M22.7 follow-up 候选 ① better-auth transaction 关闭时序待 CI 复现 + M22.8 follow-up 候选 ② better-auth Set-Cookie 路径扫描已 M28.5 commitd7289df治本验证通过 + 建议关闭)。分片记录:
[todo-archive-phases-m28.md](todo-archive-phases-m28.md)(M28 治理债清理 + 能力扩展,2026-09-11 M28.6 归档批次迁出——M28 段完整记录 5 候选 × 8 要素齐全 + 性能基准实测数据 + 批处理决策表 + RunResult 对齐前后对照 + better-auth 中间件 Set-Cookie 触发机制分析;M28.6 归档批次 ahead 待推送 commit + 1 个 M28.6 归档 commit = 12 commits 落地)[todo-archive-phases-m26.md](todo-archive-phases-m26.md)(M26 平台 AI 研判应用层 + 批量导入 Resource owner 化 + 文档站 i18n + License 收口 + 经验沉淀,2026-09-10 归档批次迁出——M26 段 ~250 行完整记录 7 原子条目 × 23 commits + 配套 13 commits = 36 commits / ~3240 行净增;ahead=0 已推送 origin/master)[todo-archive-phases-m19-m21.md](todo-archive-phases-m19-m21.md)(M19 + M20 + M21 三阶段,2026-09-10 M26 归档批次预防性分片迁出——M26 完整段迁出后主窗口 682 行 + M26 段 ~250 行 = 932 行超 700 强制分片阈值;M19 / M20 / M21 同源批次同期迁出,保持主窗口 3-5 个阶段健康策略;完整记录 12 子阶段 + 23 commits + 6 项 follow-up 候选)[todo-archive-phases-m25.md](todo-archive-phases-m25.md)(M25 PrimeUI License 治理 + 平台 AI 研判集成 + lint baseline 治理 + M24 follow-up 工具化,2026-09-08 归档批次迁出——M25 段 ~17 行新增 + ahead=17 commits 待用户主动推送;分片完整记录 4 原子条目 × 14 commits 实施细节 + 4 条关键经验 + 6 项 follow-up 候选)[todo-archive-phases-m0-m1.md](todo-archive-phases-m0-m1.md)(M0 / M1,2026-08-07 迁出,115 行)[todo-archive-phases-m2-m55.md](todo-archive-phases-m2-m55.md)(M2 / M3 / M4 / M4.5 / M4.6 / M5 / M5.5,2026-08-14 迁出,T906 执行,398 行)[todo-archive-phases-m6-m7-t711.md](todo-archive-phases-m6-m7-t711.md)(M6 / M7.1 / M7.2 / T711 / M8,2026-08-20 neat-freak 批次 + M8 补入,293 行)[todo-archive-phases-m11.md](todo-archive-phases-m11.md)(M9 / 2026-08-19 PR1-PR3 / 2026-08-19 C54+C55 / M11 推进批次 / 2026-08-20 e2e 修复批次(C62+C63+C64+chore,2026-08-26 M15 归档批次预防性迁出),2026-08-20 M11 归档批次迁出;2026-08-26 e2e 修复批次迁出补入)[todo-archive-phases-m10-c53-c59c61.md](todo-archive-phases-m10-c53-c59c61.md)(M10 / T912 / C53 / 2026-08-20 平台 UI 增强 C59-C61,2026-08-28 M16 归档批次预防性迁出——M16 段 110 行新增前主窗口 618 行接近 700 分片阈值,预防性迁出与 M15 归档批次同源策略)[todo-archive-phases-m12.md](todo-archive-phases-m12.md)(M12 平台 UX 一致性 + i18n 治理(19 commits / C65-A 5 + C65-B 2 + standards check:docs 1 + C65-C 2 + C65-D 5 + CI 修复 1 + CI 稳定性 1 + network-audit 2),2026-08-28 M17 归档批次预防性迁出——M17 段 152 行新增后主窗口 738 行超 700 分片阈值,预防性迁出与 M16 批次预防性迁出 M10/T912/C53/C59-C61 同源策略)[todo-archive-phases-m13.md](todo-archive-phases-m13.md)(M13 治理 + UX 反馈 + 网络治理 + Code Scanning(26 commits / 4 子阶段 + T1310 同步),2026-08-30 M18 归档批次预防性迁出——M18 段新增前主窗口 673 行接近 700 分片阈值,预防性迁出与 M17/M16 批次同源策略)[todo-archive-phases-m14-m15.md](todo-archive-phases-m14-m15.md)(M14 + M15 平台 release 通道闭环 + UX 反馈跟进 + 扫描历史详情侧栏增强(19 commits / 4 子阶段 + M14.y 依赖批量治理 + M15.1 UX-R2 4 子任务),2026-08-31 M19 归档批次预防性迁出——M19 段新增前主窗口 699 行 + M19 段预估 80-100 行将超 700 强制分片阈值,M14 + M15 同源批次同期迁出)[todo-archive-phases-m16-m17.md](todo-archive-phases-m16-m17.md)(M16 + M17 平台可用性深化 + 安全与可用性收口(19 commits + 9 commits),2026-08-31 M20 归档批次预防性迁出——M20 段新增前主窗口 638 行 + M20 段预估 100-130 行将超 700 强制分片阈值,预防性迁出与 M19/M18/M17/M16 归档批次预防性迁出 M14/M15/M13/M12/M10 同源策略)[todo-archive-phases-m18.md](todo-archive-phases-m18.md)(M18 平台 GitHub App BYO App 模式(~24 commits / 6 子阶段 + 1 治理批次),2026-09-01 M22 归档批次预防性分片迁出——M22 段 119 行新增前主窗口 612 行 + M22 段预估 80-100 行将超 700 强制分片阈值;M18 单段迁出与 M19/M20 归档批次迁出 M14-M15/M16-M17 同源策略)
5. 近期归档批次登记
| 批次 | 归档日期 | 关联 backlog | 归档位置 |
|---|---|---|---|
| 2026-09-11 M28 阶段归档(治理债清理 + 能力扩展 M28.1+M28.2+M28.3+M28.4+M28.5 全部 5 候选闭环) | 2026-09-11 | M28 全部 5 候选 ahead=11 commits 待用户主动推送。M28.1 P3 📚 治理 backlog.md §已知边界段批量治理 + §4.4 第 11 条规则强化(重编号)(1 commit / quick depth):1a75068 docs(standards) planning.md §4.4 第 11 条规则强化(§已知边界段部分闭环处理指引;commit message 显式说明"3 处同步落地"——avoid M27.1 教训复发根因治理)/ M28.2 P3 🛡️ 技术债 C14 多 cs 告警逐告警全项目 lint 性能(2 commits / quick depth):395ee29 test(engine) verification-runner 多 cs 告警性能基准基线(vitest bench API + N=10/50/100 三档实测 / N=100 平均 2593 ms / N=1 平均 27 ms / 96x 性能差距证明顺序 spawn 瓶颈) + eaaa997 fix(engine) runCodeScanningFixes 批处理 + 测试覆盖(batchSize=10 折中方案 / 提速 ~10x / 10 个测试用例覆盖边界)/ M28.3 P2 🛡️ 技术债 C15 Code Scanning B 类规则真实仓库样本核对(1 commit / quick depth / 第一阶段):99302b5 feat(engine) Code Scanning 真实仓库样本采集脚本 + 报告模板(sample-collector.mjs 461 行 / 32 种子仓库跨 5 语言 / 3 模式:采集 + 离线分析 + fixture 模板 / docs/research/code-scanning-b-class-samples.md 报告框架 / fixture 占位 + 实际 GitHub API 采集合 CI/staging 环境)/ M28.4 P3 🚀 能力扩展 C33 MCP P3(2 commits / quick depth):9207481 feat(mcp) 新增 pnpm_audit 本地回退数据源 tool(74 行实现 + 158 行测试 / 复用 errors.ts 错误包装 helper / MCP 7 tool → 8 tool) + 5cf2d22 feat(mcp) runScan 返回结构 RunResult 对齐 5 字段(startedAt / finishedAt / config / alerts / actions / 保留 8 字段向后兼容)/ M28.5 P3 🛡️ 治本 M22.8 follow-up ② better-auth 中间件 Set-Cookie 路径扫描(1 commit / quick depth):d7289df docs(platform) better-auth 中间件 Set-Cookie 路径扫描脚本 + 报告(apps/platform/scripts/set-cookie-trace.mjs 静态扫描 + 离线分析模式 / docs/research/better-auth-set-cookie-path-audit.md 报告 / 结论 better-auth 中间件对非 /api/auth/* 端点不会主动设置 Set-Cookie + M22.8 follow-up ② 实证无影响建议关闭)/ M28 启动 + 评估 + 治理债清理(4 commits):1e68948 docs(plan) M28 启动决策落地 todo.md + roadmap.md §M28 + §M27 D4 stale 修正 + a4abb71 docs(plan) M28.2-M28.5 P 阶段评估修订 todo.md §M28.4 验收标准 + 类型平衡 + 执行顺序 + 608bcac docs(plan) backlog.md 治理债清理 + M22.7/M22.8 follow-up stale 同步 + f5be990 docs(plan) 跨文档 stale 同步 / ahead commits 实证:git rev-list HEAD ^origin/master --count = 11(M28 全部 11 commits ahead 待用户主动推送 / 2026-09-11 实测);类型平衡:🛡️ 2 + 🚀 1 + 🛡️ 1 + 📚 1 = 5 原子(🛡️ 技术债 2 / 🛡️ 治本 1 合并为 2),符合 规划规范 §1.1 L12 类型平衡原则;审计覆盖:M28.5 quick depth Pass(0 error / 1 warning 修复 / 1 suggest 登记 backlog)+ M28.4 quick depth Pass(前后 2 commit 各自通过)+ M28.2 quick depth Pass(前后 2 commit 各自通过 / bench 数据实测 96x 性能差距证明瓶颈)+ M28.1 quick depth Pass(commit message 信息密度拦截实证 3 处 sync 落地) + M28.3 quick depth Pass(lint:md + check:docs 0 error);本批次清理 backlog 3 个已上收主条目(C14 / C15 / C33 按 backlog 维护规则 5 短期候选正式上收后从 backlog 主条目迁出)+ 完整实施记录:见 todo-archive-phases-m28.md | todo-archive.md §M28 指针段 + roadmap.md §M28 段 + backlog.md §短期候选已闭环条目 |
| 2026-09-10 M27 阶段归档(用户体验 + 治理优先 M27.1+M27.2 W1+M27.3 W2+M27.4 W4+M27.5 全部 5 原子条目闭环) | 2026-09-10 | M27 全部 5 原子条目 + M27 启动相关 docs 收口 闭环(ahead=11 待用户主动推送)。M27.1 P2 📚 教训治理 C66 告警视图增强 重复评估修正(1 commit / standard depth):596f71e docs(plan) 修订 planning.md §3.4 + ai-collaboration.md §1.7 + backlog.md C66 + experience-archive §六十四 + wisdom.md governance check point / M27.2 W1 P2 🛡️ devEx 治理 apps/platform 增配 stylelint + lint 系列 scripts(2 commits / quick depth):7888435 chore(platform) stylelint@17.15.0 + stylelint-config-cmyr + postcss + 5 条 scripts + stylelint.config.js + .stylelintignore + 根 lint:md/lint-staged 钩子 + baseline 修复 28 个 --fix + 6 个手工修复 + ea0dbc6 docs(plan) W1 闭环 / M27.3 W2 P2 🧪 测试治理 logger.ts 26 branches 100% 补单测(1 commit / quick depth):af07189 refactor(logger) isDirectExecution 守卫 + 导出核心函数 + logger.test.ts 覆盖 winston/fs/axiom mock 副作用 / M27.4 W4 P3 🧪 测试治理 container-executor.ts 35.2% branches 补测(1 commit / quick depth):544e5a7 test(platform) container-executor.test.ts 32 新增 + 23 既有迁移 = 55 cases;单文件 coverage Stmts 99.46 / Branches 96.19 / Funcs 84.61 / Lines 100;全量 Branches 81.18 ≥ 80 / M27.5 P1 🛡️ 治理 M22.7 根因 ① better-auth 1.7 transaction 关闭时序(2 commits / standard depth):b252f93 feat(platform) typeorm-adapter.ts 添加 [auth-trace] tx begin / callback-resolve / callback-throw 日志(E2E_TEST=true / AUTH_TRACE=1 双开关) + 45449314 docs(plan) follow-up 关闭(本地无法稳定复现 ECONNRESET,CI 偶发)+ 候选 ②/④ 评估保留 backlog / M27 启动相关 docs 收口(3 commits):0ddd4e2 docs(plan) M27 阶段启动(修订方案 B-1) + 3f4b055 docs(plan) todo.md 清理 + 4e54afd docs(plan) backlog.md 清理 / ahead commits 实证:git rev-list HEAD ^origin/master --count = 11(M27 全部 11 commits ahead 待用户主动推送 / 2026-09-10 实测);类型平衡:🚀 0 + 🛡️ 2 + 🧪 2 + 📚 教训治理 1 = 5 原子,符合 规划规范 §1.1 L12 类型平衡原则;审计覆盖:M27.1 standard depth Pass + M27.2 W1 quick depth Pass(0 blocker / 2 warning / 1 suggest / ~35s 实测)+ M27.4 W4 quick depth Round 1 Reject 后补修 Pass + M27.5 ... (line truncated to 2000 chars) | |
| :-- | :-- | :-- | :-- |
| 2026-09-10 M27 阶段归档(用户体验 + 治理优先 M27.1+M27.2 W1+M27.3 W2+M27.4 W4+M27.5 全部 5 原子条目闭环) | 2026-09-10 | M27 全部 5 原子条目 + M27 启动相关 docs 收口 闭环(ahead=11 待用户主动推送)。M27.1 P2 📚 教训治理 C66 告警视图增强 重复评估修正(1 commit / standard depth):596f71e docs(plan) 修订 planning.md §3.4 + ai-collaboration.md §1.7 + backlog.md C66 + experience-archive §六十四 + wisdom.md governance check point / M27.2 W1 P2 🛡️ devEx 治理 apps/platform 增配 stylelint + lint 系列 scripts(2 commits / quick depth):7888435 chore(platform) stylelint@17.15.0 + stylelint-config-cmyr + postcss + 5 条 scripts + stylelint.config.js + .stylelintignore + 根 lint:md/lint-staged 钩子 + baseline 修复 28 个 --fix + 6 个手工修复 + ea0dbc6 docs(plan) W1 闭环 / M27.3 W2 P2 🧪 测试治理 logger.ts 26 branches 100% 补单测(1 commit / quick depth):af07189 refactor(logger) isDirectExecution 守卫 + 导出核心函数 + logger.test.ts 覆盖 winston/fs/axiom mock 副作用 / M27.4 W4 P3 🧪 测试治理 container-executor.ts 35.2% branches 补测(1 commit / quick depth):544e5a7 test(platform) container-executor.test.ts 32 新增 + 23 既有迁移 = 55 cases;单文件 coverage Stmts 99.46 / Branches 96.19 / Funcs 84.61 / Lines 100;全量 Branches 81.18 ≥ 80 / M27.5 P1 🛡️ 治理 M22.7 根因 ① better-auth 1.7 transaction 关闭时序(2 commits / standard depth):b252f93 feat(platform) typeorm-adapter.ts 添加 [auth-trace] tx begin / callback-resolve / callback-throw 日志(E2E_TEST=true / AUTH_TRACE=1 双开关) + 45449314 docs(plan) follow-up 关闭(本地无法稳定复现 ECONNRESET,CI 偶发)+ 候选 ②/④ 评估保留 backlog / M27 启动相关 docs 收口(3 commits):0ddd4e2 docs(plan) M27 阶段启动(修订方案 B-1) + 3f4b055 docs(plan) todo.md 清理 + 4e54afd docs(plan) backlog.md 清理 / ahead commits 实证:git rev-list HEAD ^origin/master --count = 11(M27 全部 11 commits ahead 待用户主动推送 / 2026-09-10 实测);类型平衡:🚀 0 + 🛡️ 2 + 🧪 2 + 📚 教训治理 1 = 5 原子,符合 规划规范 §1.1 L12 类型平衡原则;审计覆盖:M27.1 standard depth Pass + M27.2 W1 quick depth Pass(0 blocker / 2 warning / 1 suggest / ~35s 实测)+ M27.4 W4 quick depth Round 1 Reject 后补修 Pass + M27.5 standard depth quick depth Pass(0 blocker / 3 warning / 2 suggest);关键决策 D2 修正:M27.1 重复评估错误归正 —— todo.md §M27 阶段启动 commit 0ddd4e2 决策 D2 错误把 C66-C / C66-D 归类为"未落地",修订为 1 docs commit 修正状态(M23.3 650a0d2 + M16.2 reuseScanRunId + use-fix-now composable + alert-run-sidebar 按钮已闭环);关键决策 D5 教训治理:planning.md §3.4「决策前置交叉核验」硬要求 + ai-collaboration.md §1.7「阶段启动重复评估自检」流程 + wisdom.md governance check point「阶段启动必须对照 todo-archive.md 最近 3 个阶段表格 + commit history + 实际代码状态三重交叉核验」 | todo-archive.md §M27(指针段模式与 M26 同源策略)+ roadmap.md §M27 详细实施状态段 |
| 2026-09-10 M26 阶段归档(平台 AI 研判应用层 + 批量导入 Resource owner 化 + 文档站 i18n + License 收口 + 经验沉淀 M26.1+M26.2+M26.3+M26.4a+M26.4b+M26.4c+M26.5 全部闭环) | 2026-09-10 | M26 全部 7 原子条目 + 配套治理 + CI Coverage 修复 闭环(ahead=0 已推送至 origin/master)。M26.1 P1 🚀 能力 + UX C68 P1 应用层(10 commits / ~1130 行 / standard depth audit):80138b1 feat(platform) Organization + Repository AI 配置 UI + d7fb63b RunDetailDialog AI 用量 + alerts AI 评估列 + 46ce342 docs(governance) architecture.md AI 研判段 + 6ef2e27 扫描对话框 AI override 折叠面板 + 2fe6d1a settings.vue 挂载 ai-config-form + b97babd re-audit fix B1 补全 GET 端点 + 8becb80 re-audit fix B4 恢复嵌套对象 + a899a5c i18n 结构修复 + a461c4c README 恢复 + 4be6e52 YAML 半角冒号修复 / M26.2 P2 🚀 能力 + UX C67 Resource owner 化(4 commits / ~510 行 / standard depth audit):10af85c feat(platform) Credential.ownerLogin + schema + migration + 9ae7c2c importable.get 单端点重构 + 531c252 UI 选择器 + i18n + dc48c4a 类型定义修复 / M26.3 P2 📚 治理 / UX C69 文档站 + 包 README 多语言 en-US P0(7 commits / ~860 行 / standard depth audit):4dfd630 VitePress 多语言脚手架 + 1b43cf5 5 个 must-sync en-US md 翻译 + d5e6786 175c709 4 个 summary-sync en-US md 翻译 + bb61814 包 README 双语化 + b31f5a8 check:readme-i18n 脚本 + a1f4357 CI workflow 步骤 / M26.4a P3 🛡️ License 治理 primeicons@8.x → 7.x 降级(1 commit / quick depth audit):7ce7803 chore(deps) / M26.4b P3 🧪 治理 baseline 22 warnings 治理(4 commits / quick depth audit):d02713a M26.1 ai-config test 9 await-thenable + 2 未用 import + 03e7dad 既有 server/ 9 warning + 7407ed8 TypeORM 1.x connection deprecated 2 + b6b52bb mailer.test.ts throw 形式收口 / M26.4c P3 🧪 治理 e2e 测试适配 M26.1/M26.2 行为变更(5 commits / quick depth audit):c37aac7 M26.4c 阶段定义 + be74d21 admin.e2e 5→6 张卡片 + 6f26ae3 credentials-api fine-grained-pat 补 ownerLogin + 79dfc6a credentials-crud 选 classic-pat 避必填 + 0be2b2a repos-api 改测 include=bogus / M26.5 P2 📚 治理 经验归档沉淀(wisdom 蒸馏 + experience-archive §五十八-§六十二)(1 commit / quick depth audit):6b01e35 docs(governance) 双轨制落地 / 配套治理(8 commits):a0bb647 M26.4 docs 闭环 + 0ad509c ahead commits 实证 + f482708 husky identity guard + dd33fac git config guard 说明 + cab3710 lint-staged 配置 + cd79724 stylelint 配置 + da0ebdf README 检查脚本重构 + db50191 chore(deps) bump / CI Coverage 修复(1 commit):a4a5680 fix(ci) 补齐 check-readme-i18n 单测恢复 branches 80% coverage gate(PDTFC+ 闭环)/ ahead commits 实证:git rev-list HEAD ^origin/master --count = 0(M26 全部 36 commits 已推 origin/master / 2026-09-10 实测);本批次清理 backlog 6 个已上收 M26 主条目:C67 批量导入 Resource owner 化(M26.2 闭环)/ C68 平台 AI 研判集成应用层(M26.1 闭环)/ C69 文档站 + 包 README 多语言(M26.3 闭环)/ M25 follow-up #3 primeicons 降级(M26.4a 闭环)/ M25 follow-up #4 baseline 22 warnings 治理(M26.4b 闭环)/ M25 follow-up #5 经验归档沉淀(M26.5 闭环)—— 按 backlog 维护规则 5 短期候选正式上收后从 backlog 主条目迁出 / 同期预防性迁出 M19 + M20 + M21 至新分片 archive/todo-archive-phases-m19-m21.md(M26 完整段迁出主窗口后必须 ≤ 700 强制分片阈值,触发预防性分片;M19 / M20 / M21 同源批次同期迁出,保持主窗口 3-5 个阶段健康策略) | todo-archive.md §M26 指针段 + archive/todo-archive-phases-m26.md 完整实施记录 + archive/todo-archive-phases-m19-m21.md 同步预防性分片 + roadmap.md §M26 详细实施状态段 + backlog.md §文档位置速查 已闭环清理 |
| 2026-09-08 M25 阶段归档(PrimeUI License 治理 + 平台 AI 研判集成 + lint baseline 治理 + M24 follow-up 工具化 M25.1+M25.2a+M25.3+M25.4 全部闭环) | 2026-09-08 | M25 全部 4 原子条目闭环(ahead=17 待用户主动推送)。M25.1 P1 🛡️ 治理 PrimeUI License → MIT 化(@primeuix/themes 3.x → 2.x):35e4935 chore(deps) apps/platform/package.json ^3.0.0 → ^2.0.3 + pnpm-lock.yaml 同步 + 4c51d19 docs(standards) platform.md §3.7 主题引擎版本号 + 协议 + 降级时间戳同步 / M25.2a P1 🚀 能力 C68 平台 AI 研判集成「基础层」(4 commits / ~992 行 / standard depth audit):1c65582 feat(platform) Organization + Repository + ScanRun AI 配置实体 + migration 1900000000000-AddAiConfigFields(snake_case 列名 + 幂等处理 + 6 单测)/ f174cce feat(platform) ScanRequest schema 扩展 + scan-orchestrator service 透传 RuntimeConfig.ai + 新建 apps/platform/server/services/ai-config-resolver.ts 工具 + 13 单测 / 7250ec1 feat(platform) 三执行器(container / sandbox / github-action)同步透传 ai 字段 + sandbox-executor.test.ts 3 case + action-trigger-executor.test.ts 3 case + 顺带修 action-trigger-executor.ts:167 polRun catch 重构 / 49480a6 test(platform) A 阶段 audit typecheck 修复 / 7828c27 docs(plan) M25.2a 验收清单 / M25.3 P3 🛡️ 治理 apps/platform baseline 16 lint errors 清理(2 commits / -16 行 / quick depth audit):57f3b88 chore(platform) 删除 4 文件 16 处 bare expressions 占位符(pr-checks + database/scripts + services/batch + services/scan-reconcile + 文件顶部 eslint-disable)/ 4030f3b chore(cli) packages/cli/src/app/pipeline.test.ts 删除未使用的 beforeEach import(monorepo 同步)/ c88379e docs(plan) M25.3 验收清单 / M25.4 P3 🛡️🧪 M24 follow-up 工具化(4 commits / ~599 行 / quick depth audit):80912c2 feat(i18n) scripts/i18n/i18n-anchor-check.mjs 新建(locale 错位污染检测)+ 13 单测 + pnpm i18n:check:anchor npm script + CI test job blocker / 65a8ec1 feat(platform) apps/platform/server/utils/zod-helpers.ts parseOptional<T>(schema, value): { success, value?, isProvided } + 13 单测 + 应用替换 Phase 3 W2 死代码 + Phase 2 W6 ack fixture 验证升级 / 66c02ff docs(plan) M25.4 验收清单 / 3947279 docs(plan) 修正 M25.4 验收清单 §五十六 链接锚点 / M25 P 阶段规划 2 commits:9bf640c docs(standards) ai-collaboration §1.4 拆分依据与硬阈值对齐(拆分依据从「≤ 5 文件 / ≤ 350 行」改为「< 10 文件 / < 800 行」+ 推荐粒度标注为非硬阈值)/ 482438d docs(plan) M25 阶段方案 A 规划落地(todo.md §M25 段 + roadmap.md M25 状态 + backlog.md 文档位置速查三处同步)/ M25 docs 收口 4818e5d docs(plan) M25.1 验收清单 + commit hash 回填;17 commits ahead 待用户主动推送(git rev-list HEAD ^origin/master --count 2026-09-08 实测);测试覆盖 apps/platform vitest 1163 passed / 7 skipped / 9.18s(baseline 16 errors → 0 errors + 9 warnings ≤ max-warnings 10);lint baseline 收口 baseline 16 errors → 0 errors + 9 warnings(≤ max-warnings 10);License 风险消除 PrimeUI License Unknown 7 → 3(移除 4 个 PrimeUI License 包;primeicons@8.0.0 仍 PrimeUI License 留 P1 primeicons 8.x → 7.x 降级);关键决策 D1 M25.2 跨模块骨架任务按 §1.1 任务粒度约束拆分为 M25.2a(M25 阶段基础层 4 commits / ~810 行)+ M25.2b(M26 阶段应用层 5 commits / ~1130 行)关键决策 D2 §1.4 拆分依据与硬阈值内部不一致修正(拆分依据过严 vs 硬阈值 10 文件 / 800 行);关键决策 D3 M25.3 baseline 修复方向实证「删除占位符」而非「改写为 void X」(ESLint no-unused-expressions + no-meaningless-void-operator 双重禁止);本批次沉淀 2 条 wisdom(principle-specification-internal-consistency + principle-baseline-lint-error-形式 vs 删除 占位符决策),待下批次 wisdom 蒸馏挂 standards / M26 阶段候选 已就位(待用户决策启动范围):M25.2b 应用层(5 commits / ~1130 行)/ C67 批量导入 Resource owner 化(3 commits / ~4h)/ C69 文档站 + 包 README 多语言(5 commits / 0.5-1 切片)/ primeicons@8.x → 7.x 降级(1 commit)/ baseline 9 warnings 治理(1-2 commits)/ 经验归档沉淀(1 commit) | todo-archive.md §M25 + archive/todo-archive-phases-m25.md 完整实施记录 + roadmap.md §M25 |
| 2026-09-01 M22 阶段归档(SQLite 数据保护防御加固 M22 沉淀 + M22.1+M22.2+M22.3+M22.4+M22.5+M22.6 全部 6 原子条目闭环) | 2026-09-01 | M22 全部 6 原子条目闭环(事故驱动:2026-09-01 apps/platform/data/dependfix.sqlite 启动后业务表数据被清空,代码内无清空路径,最可能清空来源在代码外部;事故暴露 5 条可加固设计风险,按 规划规范 §1.1 任务粒度约束 + 类型平衡原则拆 6 原子条目 + 1 沉淀批次独立闭环)。M22 沉淀 P0 🛡️ 治理 a4d29bf docs(plan+standards+archive) — todo.md §M22 阶段段登记 + 5 防御规范挂接(development.md §5.1.18 + §5.1.19 + platform.md §3.7 + security.md §2.1.1-§2.1.5)+ experience-archive.md §五十事故复盘 + backlog.md §已知边界 SQLite 单文件脆弱性条目新建 / M22.1 P0 🛡️ 治理 2a31597 feat(platform) SQLite 启动期自动备份 hard requirement(apps/platform/server/database/backup.ts + ensureDatabaseInitialized 之前同步调用 + fsync/rename 写安全 + 保留策略 + fail-open + backup.test.ts 26 case)/ M22.2 P0 🛡️ 治理 7b8721e feat(platform) db-restore 命令式恢复(apps/platform/server/database/scripts/db-restore.ts + --from + --yes 双门控 + 覆盖前自动备份 + 旁文件清理 + 前后 integrity_check;落地偏差:脚本目录由 apps/platform/scripts/ 改为 apps/platform/server/database/scripts/ 与既有 backfill-scan-result.ts 同目录复用 + 7b495a7 docs(plan) M22.1/2 闭环登记与 M22.2 落地偏差说明)/ M22.3 P1 🛡️ 治理 5835887 feat(platform) db-doctor 自检工具(apps/platform/server/database/scripts/db-doctor.ts + 文件元信息 + 10 项 PRAGMA + 各表 COUNT() + 索引分类计数 + 六类结论判定 + isInternalTable 排除 sqlite_/migrations + 人读机读双模 isTTY + --json 强制 + db-doctor.test.ts 26 case;5cf1b6a docs(standards+plan) 数据库运维脚本路径同步与 M22.3 闭环登记)/ M22.4 P1 🛡️ 治理 daa255c feat(platform) TypeORM synchronize 显式 opt-in + 启动日志(hard requirement: development.md §5.1.19 反模式禁止;删 isDev 变量 + synchronize === 'true' opt-in + 提取 migrationsRun 为 const 支撑日志(保持原 !== 'false' 默认值留给 M22.5 反转)+ 启动日志打印 synchronize + migrationsRun + NODE_ENV + 各自 env + index.test.ts 反转默认断言 + DATABASE_SYNCHRONIZE=true 用例 + NODE_ENV=development 回归用例 + tests/api-helper.ts setupMemoryDatabase 显式 stub DATABASE_SYNCHRONIZE=true 单点声明 25+ 共享 helper 测试 + .env.example + platform.md §3.3 + §11 + env 变量表同步)/ M22.5 P1 🛡️ 治理 32bb375 fix(platform) TypeORM migrationsRun 显式 opt-in + 默认改为 false(与 M22.4 配对完成 synchronize + migrationsRun 双 opt-in + index.test.ts 新增 2 个测试用例双向断言 + .env.example 注释从「默认 true」改为「默认 false」+ 显式开启命令拆分)/ M22.6 P1 🛡️ 治理 7f84b6e fix(platform) e2e/fixtures 端点双门控(hard requirement: platform.md §3.6 + security.md §2.1.4)+ runtimeConfig 兜底防 esbuild 折叠(第二门控从 process.env.NODE_ENV === 'production' 改为 useRuntimeConfig().e2eFixturesAllowed;Nuxt runtimeConfig 运行时覆盖通道,绕开 Nitro/esbuild 静态替换 process.env.NODE_ENV 陷阱)+ 新建 2 个 vitest 单元测试 fixtures.post.test.ts + fixtures.delete.test.ts(3 case × 2 文件 = 6 测试覆盖三态:默认 404 / E2E_TEST=true + e2eFixturesAllowed=false → 404 / E2E_TEST=true + e2eFixturesAllowed=true → 200)+ apps/platform/nuxt.config.ts runtimeConfig 注册 e2eFixturesAllowed(prod build 默认 false)+ apps/platform/playwright.config.ts e2e webServer 注入 NUXT_E2E_FIXTURES_ALLOWED=true + tests/setup-nuxt-server.ts 默认 useRuntimeConfig stub 加 e2eFixturesAllowed: false 字段 + platform.md §3.6 修订强制门控 + 新增「为什么不用 process.env.NODE_ENV」陷阱段 + D 阶段自检扩展构建产物 grep 兜底 + security.md §2.1.4 同步)**;**9 atomic commits 实施(M22 沉淀 1 + M22.1 1 + M22.2 1 + M22.3 1 + M22.4 1 + M22.5 1 + M22.6 1 + 闭环登记 3 7b495a7 + 5cf1b6a + M22.4 后追加了 NODE_ENV 回归用例)+ 4 docs 收口 commits(M22.4 commit message 闭环登记 + audit 标记)= 13 commits / ahead=7 待用户主动推送(git rev-list HEAD ^origin/master --count 2026-09-01 实测 ahead=7:7f84b6e M22.6 + 32bb375 M22.5 + daa255c M22.4 + 5cf1b6a M22.3 路径同步 + 5835887 M22.3 + 7b495a7 M22.2 闭环 + 7b8721e M22.2;M22 沉淀 a4d29bf + M22.1 2a31597 已推送至 origin/master);审计覆盖:M22.4 Round 2 / M22.5 Round 1 / M22.6 Round 2 共 7 轮独立 Review Gate Pass;含 M22.4 Round 1 Reject(migrationsRun 默认值越界落地)+ M22.6 Round 1 Reject(Nitro/esbuild process.env.NODE_ENV 静态替换陷阱导致 prod build 表达式折叠为 `... | |
| 2026-08-31 M21 阶段归档(治理收口 + 能力扩展 + 测试补强 M21.1+M21.2+M21.4+M21.5 全部闭环) | 2026-08-31 | M21 全部 4 子阶段闭环(M21.3 重复登记删除):M21.1 P3 🛡️ 治理 Code Scanning RG-W01 + RG-W02 execFileSync 替换 execSync 2 处命令注入修复(commits 0a83c74 fix(engine) pr-creator.ts git add . 参数化 + a77e557 fix(engine) fixers/pnpm execRepair 参数化;既有 pr-creator.test.ts + fixers-pnpm.test.ts 覆盖 + 本地 grep 实证 0 处 execSync 模板拼接)/ M21.2 P3 🛡️ 治理 M18.x 剩余风险 W1 + W2 + audit suggest 1+2 集中清理(commits fe7cc0f test(engine) W1 stageAndCommit --local flag 路径回归(vi.stubEnv 隔离 host global)/ ad376c8 fix(platform) W2 detectServerLocale 大小写兼容(?locale=EN 接受)/ 0903f06 refactor(platform) S1 admin-roles.e2e test.describe 嵌套 test.use 冗余清理 / b6d8539 refactor(platform) S2 credentials/[id].test.ts 空 beforeAll 钩子清理)/ M21.4 P3 🚀 能力扩展 B3 PR 自动合并闭环(commits f1dd5df docs(guide) mergify 模板扩展 .github/mergify.yml author 正则覆盖 dependfix[bot] / 123+dependfix[bot] + beea5b9 docs(guide) docs/guide/auto-merge.md PR 自动合并启用指南 + README + c9939cb fix(docs) audit W1 vitepress sidebar 注册修复)/ M21.5 P3 🧪 测试覆盖 T704 async 定时触发 + Schedule CRUD e2e 补强(commits 9850e24 test(platform) schedules CRUD e2e 6 case(创建 / 列表 / 详情 / 更新 / 删除 / 触发)+ b9e35f7 test(platform) BullMQ upsertJobScheduler 短间隔集成测试 describe.skipIf 门控 + TEMP_REDIS_INTEGRATION=true 启用 + 进程内模式)**;**11 atomic commits 实施 + 4 docs 收口 commits(M21.1+M21.2 标记 a8604c6 / M21.3 重复登记清理 + backlog §S-5 闭环迁移 d66b11d / M21.4 标记 6516e34 / M21.5 标记 cbcb15d)= 15 commits 已全部推送至 origin/master ahead=0(git rev-list HEAD ^origin/master --count 2026-08-31 实测);测试覆盖:engine vitest 1061 passed + 1 skipped(M21.1 + M21.2 W1 回归)+ platform vitest 919 passed + 4 skipped(M21.2 W2 + S2)+ playwright admin-roles 15 passed(M21.2 S1)+ playwright schedules 6 case(M21.5 × 2 连跑无 flaky)+ BullMQ 集成测试(M21.5);审计覆盖:M21.1 + M21.2 standard depth Pass / M21.4 standard 1 轮(含 1 个 W1 vitepress sidebar 注册修复后 Pass)/ M21.5 standard depth Pass(2 warning 已修 + 2 suggest 登记 backlog);本批次清理 backlog 1 个已上收主条目:B3 PR 自动合并闭环(M21.4 闭环 / f1dd5df + beea5b9 + c9939cb,按 backlog 维护规则 5 短期候选正式上收后从 backlog 主条目移除 + 迁 backlog §已闭环特定批次 段);T704 待人工验收更新:T704 实施部分已由 M21.5 闭环,真实环境验证保留本段随可用性推进;M21 阶段关键决策:M21.3 重复登记删除(S-5 已由 M18.x commit 878ae1a 闭环,原计划抽取 setTestEncryptionKey(key) helper 无真实用例需求,属 over-engineering)/ M21.4 mergify 模板扩展而非全新(复用既有 .github/mergify.yml 模板按 dependabot / dependfix PR 规则扩展 author 正则覆盖)/ M21.5 e2e 同步降级(playwright.config.ts:36 NUXT_QUEUE_ENABLED=false 强制 sync 路径 + BullMQ async 测试分离 describe.skipIf 门控)/ M21.1 execSync → execFileSync + 参数数组标准 npm:child_process 安全用法;本批次无预防性分片(M21 段新增前主窗口 422 行 + M21 段 100 行 = 522 行 < 700 强制分片阈值;与 M19/M18/M17/M16 归档批次预防性迁出 M14/M15/M13/M12/M10 异) | todo-archive.md §M21 + roadmap.md §M21 + backlog.md §已闭环阶段 + backlog.md §已闭环特定批次 B3 + archive/index.md §4 当前基线 + §5 本行 |
| 2026-08-31 M20 阶段归档(ScanResult 数据模型重构 M20.1+M20.3+M20.5+M20.6+M20.7 全部闭环) | 2026-08-31 | M20 全部 5 子阶段闭环:M20.1 引擎侧 upstreamId 注入(commit acb2d35 feat(engine,core) —— NormalizedSecurityAlert.upstreamId 字段 + normalizeUpstreamId() + 4 fetcher 填充 + 14 用例覆盖)/ M20.3 ScanResult 实体升级 + reconcile 函数(commit 2e4ab1b feat(platform) —— 6 列新增 + 复合唯一索引 + reconcileAlerts() 覆盖决策 1-4 + DDL 验证测试)/ M20.5 API 简化 + dashboard 调整(commit 170fee1 feat(platform) —— dedupe 参数移除 + includeSuperseded 参数 + dashboard 数活跃告警)/ M20.6 UI 调整 + i18n(commit c7ba014 feat(platform) —— ToggleSwitch "显示已解决" + 状态列 superseded 分支 + i18n 双语 + reactive watch 修复)/ M20.7 backfill 脚本(commit a399323 feat(platform) —— CLI dry-run/apply + 11 单测 + README 文档 + Node 22+ engines)**;**8 commits 已全部落地;A 阶段 Code Auditor deep depth Pass(M20.6 0 blocker / 2 warning / 5 suggest;M20.7 Reject → 修复 → Pass);同期预防性迁出 M16 + M17 至新分片 todo-archive-phases-m16-m17.md(M20 段新增前主窗口 638 行 + M20 段预估 100-130 行将超 700 强制分片阈值,预防性迁出与 M19/M18/M17/M16 归档批次预防性迁出 M14/M15/M13/M12/M10 同源策略) | todo-archive.md §M20 + roadmap.md §M20 + backlog.md §已闭环阶段 |
| 2026-08-31 M19 阶段归档(治理 + 能力扩展 + 测试补强 M19.1+M19.2+M19.3+M19.4+M19.5 全部闭环) | 2026-08-31 | M19 全部 5 子任务闭环:M19.1 P3 技术债 C34 存量规范严格约束挂接盘点(commit 0c536c1 docs(review): 补充 8 个强制性条款检查点 —— 补充 8 个必查项到 code-reviewer skill + code-quality-checklist)/ M19.2 P2 能力扩展 C23 发现规模上限 max-repos(commit c998d58 feat(engine): 新增发现规模上限 max-repos —— 15 文件 / +149/-1 行 + CLI/Action/Platform 三入口暴露 + 默认值 100)/ M19.3 P2 用户体验 B1 PR 关闭评论 + label(commit 5839771 feat(engine): 重复 PR 自动评论 + duplicate label —— 8 文件 / +492/-5 行 + GitHub API 权限扩展到 issues: write)/ M19.4 P2 测试覆盖 T701-e2e 管理端点集成测试补强(commit 8db2fd4 test(platform): 管理端点 API 集成测试补强 —— 3 文件 / +841 行 + users 6 + credentials 19 + repos 25 = 50 case e2e)/ M19.5 P2 用户体验 C8 per-source 错误隔离(commit a20ea02 feat(engine): per-source 错误隔离汇总 —— 5 文件 / +159/-2 行 + FixError.source 字段 + logPartialSourceFailureSummary 函数)/ M19.x 收口(commit ae33671 docs(refactor): 移除本次提交引入的孤立编号(M19.x → todo.md §M19.x))**;**5 atomic commits 已全部推送至 origin/master(ahead=0 git rev-list HEAD ^origin/master --count 2026-08-31 实测;校正 session 文件 stale ahead=16 描述);5 轮独立 Review Gate Pass(M19.1 quick / M19.2 standard 含 1 blocker + 3 warning 已全部修复 / M19.3 standard 2 warning 已全部修复 / M19.4 quick 含 1 blocker + 3 warning 已全部修复 / M19.5 standard 2 warning 修复 1 项 + 1 项登记 P3);本批次清理 backlog 5 个已上收主条目:B1 PR 关闭评论 + label(M19.3 闭环)/ C23 发现规模上限 max-repos(M19.2 闭环)/ C8 per-source 错误隔离(M19.5 闭环)/ T701-e2e 管理端点集成测试补强(M19.4 闭环)/ C34 存量规范严格约束挂接盘点(M19.1 闭环)—— 按 backlog 维护规则 5 短期候选正式上收后从 backlog 主条目迁出(保留 §C34 历史闭环记录子段);M19 新增到 backlog §已闭环阶段 段顶部 + M14 + M15 已闭环阶段引用从 todo-archive.md 主窗口更新为分片路径;同期预防性迁出 M14 + M15 至新分片 todo-archive-phases-m14-m15.md(M19 段新增前主窗口 699 行 + M19 段预估 80-100 行将超 700 强制分片阈值,预防性迁出与 M18/M17/M16 归档批次预防性迁出 M13/M12/M10 同源策略) | todo-archive.md §M19 + roadmap.md §M19 + backlog.md §已闭环阶段 + archive/todo-archive-phases-m14-m15.md(同期预防性分片) |
| 2026-08-30 M18 阶段归档(平台 GitHub App BYO App 模式 M18.0+M18.1+M18.2+M18.3+M18.4+M18.x 全部闭环) | 2026-08-30 | M18 全部 6 子阶段 + 1 治理批次闭环:M18.0 PAT 无感升级评估报告(docs only 690cc73)/ M18.1 基础层(AuthProvider + PatAuthProvider + AppAuthProvider + InstallationTokenCache;5 commits 026078a 0866830 67a1a2f e9b9c0a adf370a)/ M18.2 集成层(commit author 动态化 + pushFixBranch token 切换;2 commits e84ff58 a6a1695)/ M18.3 表现层(UI GitHub App tab + 文档引导 + Manifest flow 评估 + C39 standards 同步;6 commits b3a2cfb c6534fe 7ef0d73 25d8682 700ab28 ac21f6f)/ M18.4 测试层(单测补强 + e2e mock JWT signing + app-provider auth 字段 bug 修复;2 commits b5c23a0 bc2ee06)/ M18.x 治理批次(S-5/C39/C34/S1/S2/S-3/S-4/W3/W4 全部闭环;8 commits 19c0cd8 9da26e3 6866eb7 fd2a29e 21f1a9f 878ae1a 933e578 45cae13);~24 commits 已全部推送至 origin/master(ahead=0 git rev-list HEAD ^origin/master --count 2026-08-30 实测);含 M18.4 audit round 1 Reject 后针对性补修闭环(集成外部库必须读 README 标准用法);本批次清理 backlog S-5 主条目(已由 M18.x 闭环)+ 新增 M18 闭环整理记录到 backlog 状态 banner + M18 新增到 §已闭环阶段 + M13 已闭环阶段引用更新为分片路径;同期预防性迁出 M13 至新分片 todo-archive-phases-m13.md(M18 段新增前主窗口 673 行接近 700 分片阈值,预防性迁出与 M17/M16 批次同源策略) | todo-archive.md §M18 + roadmap.md §M18 段缺失说明(roadmap.md §M18 段历来未单独列出,仅 Milestone 概述表含 M18 行,2026-08-31 M19 归档批次校正追加缺失说明) |
| 2026-08-28 M17 阶段归档(安全与可用性收口 M17.1+M17.2+M17.3+M17.4+M17.5+M17.6 全部闭环) | 2026-08-28 | M17 全部 6 子阶段闭环:M17.1 T1701 C38 encryptionKey 标准化统一 NUXT_ENCRYPTION_KEY 路径(service 直读 env → runtimeConfig;8 文件 / +58/-30;关键 commit b0d3ac0 fix(platform))/ M17.2 T1702 credentials 服务端 API i18n(2 文件 throw 改造 + 既有测试调整;7 文件 / +90/-14;关键 commit 5f66a08 refactor(api))/ M17.3 T1703 schedules 服务端 API i18n(3 文件 throw 改造 + 既有测试调整;8 文件 / +93/-18;关键 commit 90549a0 refactor(api))/ M17.4 T1704 batch-runs + repos batch 服务端 API i18n(5 文件 throw 改造 + 字典 + helper + codeSet 测试;按 13 文件超 10 阈值拆 2 commits:commit 1 98fd47d refactor(api) 9 文件字典 + helper + API throw 改造 / commit 2 a1c7c4e test(platform) 4 文件既有测试 message→code 断言调整 + audit standard depth Reject 后补修)/ M17.5 T1705 S-2 authedCookieHeader 抽取至 tests/e2e/helpers/(纯重构 + 用户指令 lint auto-fix 接受;拆 2 commits:commit 1 466b142 refactor(e2e) 4 文件 helper 抽取 / commit 2 fc0b175 chore(platform) 1 文件 ESLint array-type 自动修复)/ M17.6 T1706 S-4 better-auth admin viewer 403 矩阵补强(5 端点 viewer 403 单测;1 文件 / +98;关键 commit 56df374 test(e2e))/ session 收尾治理 commit 9bdb2dc chore(plan+standards)(6 子阶段闭环状态登记 + 8 条经验教训沉淀 + backlog 锚点修复;7 文件 / +41/-26)**;**9 commits 已全部推送至 origin/master(ahead=0 git rev-list HEAD ^origin/master --count 2026-08-28 实测——校正 session 文件 stale ahead=8 描述;M17.1 1 + M17.2 1 + M17.3 1 + M17.4 2 + M17.5 2 + M17.6 1 + session 收尾 1);含 M17.4 commit 2 audit standard depth Reject 1 次后针对性补修闭环(M17 session 关键教训——nuxt typecheck 不实测不能信 Done 输出);8 轮独立 Review Gate Pass(M17.1 standard + M17.2 quick + M17.3 quick + M17.4 standard × 2 含 1 次 Reject + M17.5 quick × 2 + M17.6 quick + session 收尾 quick);**本批次清理 backlog 4 个已上收 M17 主条目(C38 encryptionKey 标准化 / S-2 authedCookieHeader 抽取 / S-4 better-auth admin viewer role check 单测补强 / 服务端 API i18n 范围外扩展,按 backlog 维护规则 5 短期候选正式上收后从 backlog 主条目迁出至历史归档指针段);保留 audit suggest 延后候选 S-5(process.env.ENCRYPTION_KEY 死代码清理)/ C39(standards 文档 ENCRYPTION_KEY → NUXT_ENCRYPTION_KEY 同步)/ C34 / S1 / S2 / S3 / S4 登记 backlog;同期预防性迁出 M12 至新分片 todo-archive-phases-m12.md(M17 段 152 行新增后主窗口 738 行超 700 分片阈值,预防性迁出与 M16 批次预防性迁出 M10/T912/C53/C59-C61 同源策略) | todo-archive.md §M17 + roadmap.md §M17 + backlog.md §已闭环阶段 M0-M17 |
| 2026-08-28 M16 阶段归档(平台可用性深化 M16.1+M16.2+M16.3+M16.4+M16.5 全部闭环) | 2026-08-28 | M16 全部 5 子任务闭环:M16.1 UX-R3 /scans 独立页面 + /api/runs organizationId 隔离 + /api/scan-history/summary + 5 case e2e(关键 commit b8e54a6 后端 + db1f64b e2e + f9cb1da 收口 + acfdc8d8 后续补测)/ M16.2 C66-D alerts "立即修复此仓库" 入口(reuseScanRunId + AlertRunSidebar 抽取 + useFixNow composable + 7 case 单测 + 3 case e2e;关键 commit d656dc3 后端 + ccfa33c 前端 + 5a3b31a composable + 5e9c3c1 测试 + 8675608 收口)/ M16.3 C36 服务端 API 错误消息 i18n(createLocalizedError helper + detectServerLocale + serverErrors 字典 16 code × 双语 + 31 case 单测 + 7 case e2e;关键 commit a573df3 helper + b604f79 guard/repos + e9c406e runs + ace07a8 e2e + 01dc7cd 收口——5 commits)/ M16.4 PrimeVue hydration 主线 #1 缓解(alerts 迁移 useAsyncData + useRequestFetch + buildAlertsQuery 抽取 + 2 fixme 全取消 + SSR 锁定 test;关键 commit 96c8446 utility + 21b2267 alerts 迁移 + 039a987 e2e + 01dc7cd 收口——4 commits)/ M16.5 T701-e2e 管理端点集成测试补强(auth-self-guard 23 case + 三角色鉴权 16 case + 16 case e2e + ENCRYPTION_KEY 兜底;关键 commit 3072587 auth-self-guard + 6889a74 三角色鉴权 + a6b2b27 三 e2e + 7c28ac8 ENCRYPTION_KEY 兜底 + 31bed27 收口——5 commits)**;19 commits 已全部推送至 origin/master(ahead=0 git rev-list HEAD ^origin/master --count 2026-08-28 实测;M16.1 1 + M16.2 4 + M16.3 5 + M16.4 4 + M16.5 5;含 kebab-case rename refactor acfdc8d8 触发的 CI Coverage 修复批次);CI run #33068271005 Coverage job 触发 80% 阈值失败,已通过 M16 新代码补测批次恢复至 80.27% → 85.67%;5 轮独立 Review Gate Pass(M16.1 standard / M16.2 standard 2 轮 / M16.3 standard / M16.4 standard / M16.5 standard);本批次清理 backlog UX-R3 主条目(迁至历史归档指针段)+ 新增 M16.5 audit backlog(C38 ENCRYPTION_KEY 标准化 / S-2 authedCookieHeader helpers 抽取 / S-4 better-auth admin 端点 viewer role check 单测补强)+ M16.3 audit suggest 范围外扩展(/api/credentials/* 等端点未本地化)——M16.6+ 候选;同期预防性迁出 M10 / T912 / C53 / 2026-08-20 平台 UI 增强 C59-C61 至新分片 todo-archive-phases-m10-c53-c59c61.md(M16 段 110 行新增前主窗口 618 行接近 700 分片阈值,预防性迁出与 M15 归档批次同源策略) | todo-archive.md §M16 + roadmap.md §M16 + backlog.md §已闭环阶段 (M0-M16) |
| 2026-08-26 M15 阶段归档(扫描历史详情侧栏增强 UX-R2) | 2026-08-26 | M15.1 UX-R2 4 子任务全部闭环(UX-R2-A 1112017 实施:Sidebar 5 列运行元数据 + RunDetailDialog 新增 + utility 抽取 + i18n 7 键 + runs.statusDegraded / UX-R2-B 按执行器条件渲染 Run URL / UX-R2-C 1112017 一并交付 RunDetailDialog 复用 GET /api/runs/:id / UX-R2-D 0a60e3d 实施:16 case 单测覆盖 6 utility 所有分支 + 2 case e2e 覆盖 Sidebar 元数据 + URL 条件渲染);3 commits ahead 待用户推送:5c65177 P 阶段 docs + 1112017 feat 实施(5 文件 / +425/-12,实证 git show --stat)+ 0a60e3d test 覆盖(2 文件 / +251,实证 git show --stat);2 轮 code-auditor quick depth Pass(Round 1 Reject 1 blocker B1 alertsFound 误用 → Round 2 Pass + 4 suggest);本批次清理 backlog UX-R2 主条目(迁至历史归档指针段)+ 同期 §2026-08-20 e2e 修复批次从 todo-archive.md 主窗口预防性迁出至分片(700 行阈值前) | archive/todo-archive-phases-m14-m15.md §M15(2026-08-31 M19 归档批次预防性分片迁出至分片;2026-08-26 归档当时位置为 todo-archive.md 主窗口)+ roadmap.md §M15 + backlog.md §已闭环阶段 |
| 2026-08-26 M14 阶段归档(platform release 通道闭环 + UX 反馈跟进) | 2026-08-26 | M14 4 子阶段全部闭环(M14.1 T1310 F 阶段闭环 + M14.2 UX-R1 扫描历史分页 + M14.3 M13.4 T1403 follow-up + M14.x neat-freak 批次)+ M14.y 依赖批量治理(4 个 dependabot major PR);19 commits 已全部落地(ahead=0 实证 git rev-list HEAD ^origin/master --count);本批次清理 backlog UX-R1 主条目(迁至历史归档指针段) | archive/todo-archive-phases-m14-m15.md §M14(2026-08-31 M19 归档批次预防性分片迁出至分片;2026-08-26 归档当时位置为 todo-archive.md 主窗口)+ roadmap.md §M14 |
| 2026-08-26 M13 阶段归档(治理 + UX 反馈 + 网络治理 + Code Scanning) | 2026-08-26 | M13 4 子阶段全部闭环(M13.1+T1301+T1302+T1303+T1304 / M13.2+T1305+T1306+T1309 / M13.3+T1307+T1308 / M13.4+T1401+T1402+T1403)+ T1310 部分 ahead 已提交;26 commits 已推送至 origin/master(ahead=3 仅 M13.4 三 commits 待用户推送) | archive/todo-archive-phases-m13.md + roadmap.md §M13(2026-08-30 M18 归档批次预防性分片迁出 todo-archive.md 主窗口) |
| 2026-08-21 M12 阶段归档(平台 UX + i18n 治理) | 2026-08-25 | M12 4 子批次全部闭环(C65-A/B/C/D 9 子任务) + CI 修复 + 网络审计白名单追加;19 commits 全部推送至 origin/master(ahead=0) | archive/todo-archive-phases-m12.md + roadmap.md §M12(2026-08-28 M17 归档批次预防性分片迁出 todo-archive.md 主窗口) |
| 2026-08-20 e2e 修复批次(C62 + C63 + C64 + chore) | 2026-08-20 | 修复批(非新功能):CI 32382730911 code-scanning #23/#24/#25 + CI 32383730911 6 e2e 失败 + PrimeVue 4 + Nuxt hydration 兼容性 | archive/todo-archive-phases-m11.md §2026-08-20 e2e 修复批次(2026-08-26 M15 归档批次从 todo-archive.md 主窗口预防性迁出至分片) |
| 2026-08-20 M11 推进批次(C58 + C-ENV + T1005 + C28 + C56/C57 + C53-后) | 2026-08-20 | M11 全部子任务 | archive/todo-archive-phases-m11.md §M11 推进批次 |
| C53 + M11 启动(A 模式 push + PR 闭环) | 2026-08-20 | C53(已闭环)+ M11 启动 | archive/todo-archive-phases-m10-c53-c59c61.md §C53 + archive/todo-archive-phases-m11.md §M11 推进批次 |
| M8 迁入分片 + T1005 落地(sandbox 路由接线) | 2026-08-20 | M8 段 + T1005(sandbox 路由接线) | archive/todo-archive-phases-m6-m7-t711.md §M8 |
| M10 + T912 主体(沙箱容器 + SMTP 邮件) | 2026-08-20 | C26 + T912-3 → C28 | archive/todo-archive-phases-m10-c53-c59c61.md §M10 + §T912 |
| 2026-08-20 平台 UI 增强(C59-C61) | 2026-08-20 | C59+C60+C61 | todo-archive.md §2026-08-20 平台 UI 增强 |
| 2026-08-19 batch-runs 增强(C54+C55) | 2026-08-19 | C54+C55 | archive/todo-archive-phases-m11.md §2026-08-19 batch-runs 增强 |
| 2026-08-19 平台可用性(PR1-PR3) | 2026-08-19~20 | C47+C48+C52+C46+C49+C50+C51 | archive/todo-archive-phases-m11.md §2026-08-19 平台可用性批次 |