Commit 7ce9262d0c5f329832b8dfda3c8097ccbdfebe5e
1 parent
4a3b7270
coding.mjs: drop stale-tag freshness self-check (defensive code for already-fixed ordering bug)
The TAG_REPORT_FRESHNESS_SCHEMA + checkTagReportFreshPromptM + the
post-`tag.exists` freshness branch in runMilestone existed to detect
"tag points at a commit whose § ⑫ is still {{milestone_tag}}". Per the
original comments, this only catches historical leftovers from the
pre-fix tag → § ⑫ ordering; the same fix reversed the order so the
runtime guard is no longer load-bearing. ~25 lines of branchy
defensive code that the source-level fix already prevents.
If a pre-fix repo has stale milestone tags, delete them with
`git tag -d milestone/<id>` and re-run coding-start.
Showing
1 changed file
with
2 additions
and
30 deletions
workflows/coding.mjs
| ... | ... | @@ -71,12 +71,6 @@ const CHECKBOX_STATE_SCHEMA = { type:'object', additionalProperties:false, |
| 71 | 71 | state:{type:'string', enum:['checked','unchecked']}, |
| 72 | 72 | lineNumber:{type:'integer'} } } |
| 73 | 73 | |
| 74 | -// TAG_REPORT_FRESHNESS_SCHEMA:保留以发现旧版 tag → § ⑫ 错序 bug 残留(tag 指向占位符 commit)。 | |
| 75 | -const TAG_REPORT_FRESHNESS_SCHEMA = { type:'object', additionalProperties:false, | |
| 76 | - required:['fresh'], properties:{ | |
| 77 | - fresh:{type:'boolean'}, | |
| 78 | - tagReportValue:{type:'string'} } } | |
| 79 | - | |
| 80 | 74 | const ALREADY_MERGED_SCHEMA = { type:'object', additionalProperties:false, |
| 81 | 75 | required:['alreadyMerged'], properties:{ alreadyMerged:{type:'boolean'} } } |
| 82 | 76 | |
| ... | ... | @@ -691,21 +685,6 @@ function createTagPromptM(phaseId, fe) { |
| 691 | 685 | ].join('\n') |
| 692 | 686 | } |
| 693 | 687 | |
| 694 | -// 校验 milestone tag 指向的 commit 中报告 § ⑫ 是否已是 targetTag(而非 placeholder)。 | |
| 695 | -// 用于识别旧 bug 残留:报告 § ⑫ commit 顺序在 tag 之后时,tag 指向占位符版本。 | |
| 696 | -function checkTagReportFreshPromptM(targetTag, reportPath) { | |
| 697 | - return [ | |
| 698 | - `# 校验 tag \`${targetTag}\` 指向的 commit 中 \`${reportPath}\` § ⑫ 是否新鲜`, | |
| 699 | - microStepContract(), | |
| 700 | - '', | |
| 701 | - `跑 \`git -C ${ROOT} show ${targetTag}:${reportPath}\`。在输出中定位 § ⑫("里程碑"小节)的 tag 字段值。`, | |
| 702 | - '## 输出(TAG_REPORT_FRESHNESS_SCHEMA)', | |
| 703 | - `- § ⑫ 字段值 == \`${targetTag}\`:\`{ "fresh": true, "tagReportValue": "${targetTag}" }\``, | |
| 704 | - `- § ⑫ 字段值 == \`{{milestone_tag}}\` 或其它陈旧值:\`{ "fresh": false, "tagReportValue": "<实际值>" }\``, | |
| 705 | - '- `git show` 失败(tag 不存在 / 报告路径不在 tag commit 中)→ 本步骤失败(schema 失败即可)。', | |
| 706 | - ].join('\n') | |
| 707 | -} | |
| 708 | - | |
| 709 | 688 | function findReportPromptM(phaseId) { |
| 710 | 689 | return [ |
| 711 | 690 | `# 找最新的 \`${phaseId}\` 完成报告并读取 § ⑫ 的 milestone tag 字段当前值`, |
| ... | ... | @@ -928,16 +907,9 @@ async function runMilestone(module) { |
| 928 | 907 | } |
| 929 | 908 | // else: 已是 targetTag → 静默跳过(resume 幂等) |
| 930 | 909 | |
| 931 | - // step 6: annotated tag (idempotent + stale-tag 自检) | |
| 932 | - // 注:HEAD 此刻已包含 § ⑫ 更新 commit(或本来就在 targetTag 上),tag 指向新鲜 commit。 | |
| 910 | + // step 6: annotated tag (idempotent — tag exists 时静默跳过) | |
| 933 | 911 | const tag = await agent(checkTagExistsPromptM(targetTag), {label: lbl('tag?'), phase: 'Milestone', schema: EXISTS_SCHEMA}) |
| 934 | - if (tag.exists) { | |
| 935 | - // 旧版 bug 残留:tag 可能指向 § ⑫ 仍为占位符的 commit。检查并要求人工 `git tag -f`。 | |
| 936 | - const fresh = await agent(checkTagReportFreshPromptM(targetTag, rpt.path), {label: lbl('tag-fresh?'), phase: 'Milestone', schema: TAG_REPORT_FRESHNESS_SCHEMA}) | |
| 937 | - if (!fresh.fresh) { | |
| 938 | - throw new Error(`HALT milestone-stale-tag ${phaseId}: tag \`${targetTag}\` 指向的 commit 中 ${rpt.path} § ⑫ = ${JSON.stringify(fresh.tagReportValue || '?')},不是 ${targetTag}(旧版顺序 bug 残留)。请人工跑 \`git -C ${ROOT} tag -f ${targetTag}\` 把 tag 重指到 HEAD 后再重跑 coding-start。`) | |
| 939 | - } | |
| 940 | - } else { | |
| 912 | + if (!tag.exists) { | |
| 941 | 913 | const r = await agent(createTagPromptM(phaseId, fe), {label: lbl('tag'), phase: 'Milestone', schema: ACTION_RESULT_SCHEMA}) |
| 942 | 914 | if (!r.success) throw new Error(`HALT milestone-tag ${phaseId}: ${r.error || ''}`) |
| 943 | 915 | } | ... | ... |