Skip to content

C1-C3 重构批:工件名表单源 + 月度准入收口 + ctx 形状收口(#201-#204) - #205

Merged
steponeerror merged 12 commits into
masterfrom
feature/c1c3-artifacts-ctx
Oct 26, 2026
Merged

steponeerror merged 12 commits into
masterfrom
feature/c1c3-artifacts-ctx

Conversation

@steponeerror

Copy link
Copy Markdown
Owner

C1-C3 重构批:工件名表单源 + 月度准入收口 + ctx 形状收口(closes #201, closes #202, closes #203, closes #204)

问题

架构复审 R2(/tmp/architecture-review-20261026-ops-agent-r2.html)三项 Strong 候选:工件文件名以裸字符串散布三层(gates.mjs ~45 处/steps.mjs ~31 处/selftest-pipeline 17 名手抄清单——#199 加 09-budget.json 时手抄三层即活例);月度 kill switch 拒跑块在 agent.mjs 与 pipeline.mjs 双面逐字复制(#200 Spec 轴发现);runResume 手工重建 ctx 与 mkCtx 形状漂移只靠人记。

变更(纯重构,零行为变更)

  • C1(C1:工件名表单源(artifacts.mjs) #202):新 ops/agent/artifacts.mjs —— ARTIFACTS 18 固定名 frozen + DEEP 参数族工厂/匹配面;三层消费面全改单源;双向闭包哨(名表加项无写出面=红,步面新工件不入表=红);磁盘工件名位等价(golden/cases.json 与罐装 faux 名集合 md5 同)。伞收口并入第四写面:finding-exit.mjs EXITS_ARTIFACT 改取 ARTIFACTS.ANCHOR_SWEEP_EXITS(C1 merger 发现)。
  • C2(C2:月度准入拒跑收口(budget.mjs admitOrRefuse) #203):budget.mjs 收口 refusalOf(纯文案)+ admitOrRefuse(留痕外壳);双面改调只映射出口——拒跑文案/[admission] log/台账行/exit code 逐字不变,新哨真台账树钉死;月帽容差口径集中 admitMonthly 单点注释(精确比较无 ε,等号放行)。
  • C3(C3:ctx 形状收口(pipeline.mjs ctxShape) #204):pipeline.mjs 导出 ctxShape 唯一构造点(23 键闭集);mkCtx 传校验后新值(校验不前移不放松),runResume 传 state 复原值+缺旋钮补 env;新哨×2:闭集键+唯一构造点字面恰一次(手抄回潮即红)。

spec 设计内留白:faux.mjs transcriptName ×3 与 pipeline.mjs HEALTH_PIPELINE 定义面字面量(三层措辞之外,磁盘级哨兜底);零 GLOSSARY 新词(spec 预声明纯重构)。

验证

  • 节点门:selftest-pipeline 81/0(基线 78,红证:admitOrRefuse 缺 78/1/容差翻转等号例红/ctxShape 删键闭集哨红,merger 独立重放)、t4 63/0、contract 18/0、golden 9/0(罐装面兼位等价抽验)、standard-check 47 OK(挂点 31/建议 10)、selftest.sh 全伞 116/0。
  • backend:pytest ops 子集 271 passed 1 skipped(merger 口径,tests/test_ops_*.py 全族;伞收口复验用 -k "ops" 窄选 260 passed,数字差异系子集口径非漂移)。
  • 位等价:golden/fixtures 对 a7c0f15 零 diff,cases.json md5 同;gates/steps 裸工件名零残留。
  • 双 merger 独立复算报告:.worktrees/c1c3-c1/C1-MERGE-REPORT.md 与 .worktrees/c1c3-c2c3/C23-MERGE-REPORT.md;双轴终审(Standards+Spec)零 P0/P1。

部署注记

纯 JS+docs,零 env 新键、零迁移、state schema 不变;breaker.json/台账面零改动。

发现侧后续

本批=发现管线化大票的前置(grilling Q7:C1-C3 先行半天);下一票=发现轮管线化(六步四门+span 级回引,ADR 0010)。

…DEEP参数族;名表加项不更新写出面=红,步面新工件不入表=红);78/0 绿
…unRound/pipeline.mjs runPipeline)拒跑文案/[admission] log/台账留痕行单源,两面行为逐字不变(出口各映射:legacy throw code→信封 exit1/pipeline emitFail 信封 exit1);admitMonthly 容差口径注释集中一处(P2 附注:精确比较无 ε,+1e-9 灰尘容差先例在轮预算面不入本面);新哨 selftest-pipeline A2-拒跑块单源钉死文案/log/台账行逐字基线。红证:未实现期 78/1(admitOrRefuse is not a function);容差翻转 <=→< 红期等号放行例真红。门:pipeline 79/0·t4 63/0·contract 18/0
…esume(state 复原+缺旋钮补 env)共用单一形状构造,runResume 不再手写字段清单;旋钮校验留 mkCtx 不前移不放松(resume 的 budget_cny=undefined 原样过);modelCalls/dupRegistry/usage 每次新建,state 传引用不克隆,dir 由 ctxShape 自算(String 面);新哨×2:ctxShape 闭集键钉死+唯一构造点字面恰一次(dupRegistry: new Map()/modelCalls: 0/usage: { input: 0 手抄回潮即红)。红证:临时删 ctxShape 的 breakerKnobs 字段→闭集哨真红 80/1,已还原。门:pipeline 81/0·t4 63/0·contract 18/0·golden 9/0·standard-check 47(挂点31/建议10)·backend ops 子集 271 passed 1 skipped·legacy smoke exit 2 双路不变
…工位)——门数字:81/0·63/0·18/0·9/0·47·pytest 271+1skip
…xit EXITS_ARTIFACT 改取 ARTIFACTS.ANCHOR_SWEEP_EXITS,C1 merger 发现 P2)——门:pipeline 81/0·t4 63/0·contract 18/0·golden 9/0·standard-check 47(挂点31)·pytest ops 260+1w·selftest.sh 116/0
@steponeerror
steponeerror marked this pull request as ready for review October 26, 2026 01:26
@steponeerror
steponeerror merged commit 57163ad into master Oct 26, 2026
3 checks passed
@steponeerror
steponeerror deleted the feature/c1c3-artifacts-ctx branch October 26, 2026 01:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant