fix(generate): track canonical directory identities - #2262
Conversation
#2262 self-review round 1Candidate: Review plan before acting: inspect the complete source and regression diff, then trace directory identity handling through ordinary directories, symlinks and Windows junctions, output exclusion, link diagnostics, file identity, and deterministic entry ordering. Reproduce the mutation-sensitive checks already recorded without changing the candidate. Any sound finding will be remediated in a new committed snapshot and invalidates the ongoing prospective gate; no finding permits the same candidate to proceed to its frozen 15-command gate. |
#2262 self-review round 1Candidate: Review plan before acting: inspect the complete source and regression diff, then trace directory identity handling through ordinary directories, symlinks and Windows junctions, output exclusion, link diagnostics, file identity, and deterministic entry ordering. Reproduce the mutation-sensitive checks already recorded without changing the candidate. Any sound finding will be remediated in a new committed snapshot and invalidates the ongoing prospective gate; no finding permits the same candidate to proceed to its frozen 15-command gate. Result: PASS. The whole two-file diff is clean under |
aab192a to
abd6dfb
Compare
|
Superseded by #2266. The maintainer stopped all local building and testing after the machine ran out of resource headroom, and directed that the residual campaign pull requests be consolidated into one with verification delegated to GitHub Actions CI. This unit's net diff is carried into #2266 as its own squashed commit, so its issue keeps a separate acceptance boundary, rollback unit, and failure attribution inside the shared pull request. Closing this one. The branch is left in place; nothing is deleted. |
Fixes #2082
Follow-up to the merged #2093 implementation. On Windows, a junction can expose the same physical directory with a different
stat.dev, so the former inode-only traversal key accepted a parent junction cycle and emitted output. This candidate records both the inode identity and canonical realpath, and uses UTF-8 byte ordering for deterministic alias diagnostics.Verification completed locally before this claim:
Campaign gate: this draft is not merge-ready until its current-base prospective gate and the exact merged-SHA gate both pass under the frozen manifest. Actions for this exact branch SHA are cancelled and recorded under the campaign policy.