Repository navigation
Restore sorted manifests/evidence.json files[] after two adjacent custody merges - #666
seathatflowsinourveins wants to merge 1 commit into
Conversation
… adjacent squash merges #651 and #628 each added a docs/decisions row at the same position. Landing them back to back without a refresh (the disjoint-drift rule) left 'docs/decisions/2026-10-03-omniroute-sdk-worker-0160.md' after 'docs/decisions/2026-10-03-retire-pr320-loki-denominator-host-receipts.md'. scripts/evidence_manifest.py --write restores sorted order. Only the order of those two rows changes: the row set, every hash and every other key are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Exact-head SOURCE ACCEPT on The literal 1,114-byte diff swaps two adjacent decision rows into path order. I independently checked that all 9,497 complete row payloads are preserved exactly, with no duplicate paths, and that the result equals the sorted base The operation matches the maintained normalizer. The file registrar inserts using the existing path list, so future landing checks should verify whole-result sortedness as well as row identities and unowned metadata against then-current main. Custody: the review packet's 73 artifact bindings, 13 repository originals, three CPython originals used by the companion #665 read, and 25 native stdout/stderr pairs were independently verified; all 25 exits were 0. This verdict uses the complete registry originals and literal diff. No repository test, model, provider, merge or runtime action was run for this source review. Required current-head CI and owner-controlled landing remain separate gates; recheck the head and actual main when landing. |
|
Superseded: main |
Scope
manifests/evidence.jsonfiles[]on main, whichscripts/validate.pyrequires. Two rows are out of order, and this PR swaps them.ecea28654a835fff2cc3651bab77ca0e46b9bec5(main, after OmniRoute Codex SDK worker harness at Codex 0.160.0 (supersedes #551) #628).lane:foundation.manifests/evidence.json(order only).Cause. #651 (
75780ee5) and #628 (ecea2865) each added adocs/decisions/2026-10-03-*row at the same position. Both were landed back to back by session 0c under the root lane's disjoint-drift rule, without a refresh. Git's three-way text merge placeddocs/decisions/2026-10-03-omniroute-sdk-worker-0160.mdafterdocs/decisions/2026-10-03-retire-pr320-loki-denominator-host-receipts.md. The landing check verified that foreign rows were equal and in order, but not the global sort order of the mergedfiles[], so it did not catch an owned row landing next to a newly arrived foreign row.Effect without this fix:
validate.pyfails on main: "files[] must be sorted by path".SOTA sources
scripts/evidence_manifest.py(normalize()andis_sorted(), L30-L39 atecea2865), whose docstring requires files[] sorted by path so that parallel PRs' additions merge cleanly. The fix is that tool's own--writemode, unmodified.docs/lanes.md.Evidence-class table
git show origin/main:manifests/evidence.json: 9,497 rows, 1 pair (index 2384)fileskey is equalLocal commands run
Decision record
None needed: this restores an invariant that the repository's own tool already enforces. The follow-up is to add a global
files[]sortedness condition to the landing check (coordination/merge_tree_landing_check.py), and to runevidence_manifest.py --checkon the merged tree before each no-refresh landing. That is requested on #608.🤖 Generated with Claude Code