* fix(#2012): scope Progress-row regex to ## Progress section (was binding to earlier table) The Progress-row writer used a non-global regex that matched ANY table row starting with the phase number. When an earlier table (e.g. Requirements coverage | Phase | Requirements | Count |) preceded ## Progress, the regex bound to the wrong row (3-column), no-op'd, and never reached the real Progress row. roadmap_updated stayed true (it's existsSync), masking the failure. - src/phase.cts: scope the tableRowPattern regex to the ## Progress section (indexOf + slice) so it only matches Progress-table rows. - tests/phase.test.cjs: regression test — ROADMAP with a phase-numbered Requirements table before ## Progress → Progress row updated, Requirements row untouched. Closes #2012 * docs(#2012): backfill changeset pr 2032
647 B
647 B
type, pr
| type | pr |
|---|---|
| Fixed | 2032 |
phase.complete now updates the ## Progress rollup row even when an earlier phase-numbered table precedes it — the Progress-row writer used a non-global regex that matched any table row starting with the phase number, so it bound to the first such row (e.g. a | Phase | Requirements | Count | coverage table), no-op'd on the wrong 3-column row, and never reached the real Progress row. The regex is now scoped to the ## Progress section so it binds to the correct table. The command still returned roadmap_updated: true (that field is fs.existsSync(ROADMAP.md)), masking the silent failure. (#2012)