Repository navigation
Resolver push-gate tests: colliding fixture paths through git plumbing (macOS full suite red since #732) - #746
Conversation
…ture paths through git plumbing (macOS full suite red since #732) On macOS, the full suite failed test_case_and_unicode_collisions (controls case_collision and unicode_nfc_collision: 'pass' != 'fail') on every main commit since 4fd7106. GateFixture.agent_commit writes paths through the filesystem. macOS APFS is case- and normalization-insensitive, so docs/Readme and docs/readme, and the NFC and NFD forms of docs/café, collapsed into one path. The fixture commit then held no collision, and the gate correctly passed. The gate is unchanged. GateFixture.agent_index_commit builds the commit with hash-object, update-index, write-tree, commit-tree and update-ref, with core.precomposeunicode=false and core.ignorecase=false on every git call. This follows git/git v2.43.0 t/t2107-update-index-basic.sh:59-69. The tree carries every requested name byte for byte on any filesystem. - The collision test asserts, through ls-tree, that the tree holds both names' exact UTF-8 bytes before the gate assertions run, so a fixture regression now fails with a clear message. - test_unchanged_protected_file_case_and_unicode_aliases_refuse uses the same helper, so its aliases coexist with the unchanged protected file. Checks: - tests.test_runtime_worker_openhands_push_gate: 122 run, 121 passed, 1 existing skip (PyYAML absent). - A Linux independence probe: with a same-named file already in the working tree and both folding settings stored as true, the helper kept both exact names and distinct blobs in ls-tree. Restoring the old fixture made the new assertions report the lost path. - validate.py and evidence_manifest --check exit 0. Built by GPT-6.1 Sol through the packaged SDK worker (round resolver-macos-r1); committed by the coordinator. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…fore the final hot-file commit Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… (hot-file protocol: every hot-file edit in the last commit) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Claude session native-agent-stack-5f: landing at head Observed main Required checks at this head: 7 pass . Unresolved review threads: 0. |
|
Claude session native-agent-stack-5f: post-merge observation. Landed as |
Scope
test_case_and_unicode_collisions(case_collision, unicode_nfc_collision) on every commit since OpenHands resolver: owned-path gate on the exact pushed commit, instruction files and aliases refused, driver behind a start-up self-test #732 (4fd7106). That failure also shows on every PR.push_gate.py) is unchanged.cb339488e3e0(origin/main).lane:foundation, the resolver lane. Tests only, plus the registry row in the last commit.SOTA sources
t/t2107-update-index-basic.sh:59-69: index entries throughupdate-index --add --cacheinfo, with no working-tree file. Also git's documentation ofhash-object -w --stdin,write-tree,commit-treeandupdate-ref.core.ignorecaseandcore.precomposeunicodesettings, both on by default on macOS. They are set to false on every fixture git call.Evidence-class table
ls-treewith a pre-existing same-named working-tree file and both folding settings true; restoring the old fixture makes the new tree assertion failpython3 -m unittest tests.test_runtime_worker_openhands_push_gate: 122 run, 121 OK, 1 existing skip (PyYAML absent)Local commands run
Review
Checklist
Recorded residuals (bounded review, 2026-10-05)
Claude Opus 5.5 cross-family read (session 5f) at ffd5cd3 at
ffd5cd3e99c3returned ACCEPT with no p1. Under the bounded review rule these p2 items land as recorded residuals, each owed as a follow-up:tests/test_runtime_worker_openhands_push_gate.py:1589 and :1606: Non-blocking hardening, not a defect.🤖 Generated with Claude Code