You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Report conflicts when two sources provide the same path #470
Personal beats team beats base -- that is the point of the layer tree, and with one repository it is never
exercised. With three sources it happens routinely, and a silent win is indistinguishable from a mistake.
Layer precedence is untested today.cmd/writ/scenario_integration_test.go registers only personal,
so no test has ever had two layers to choose between.
Starting material exists. The retired scripts/setup-test-layers.sh simulated three layers with a
deliberate collision -- team's .config/git/ignore shadowing base's -- which is exactly the fixture this
needs. Harvest that shape as a second checked-in fixture beside testdata/personal-repo; do not
resurrect the script, which copied real content out of ~/Workspace/Personal and filtered secrets by
matching four filenames.
Exit: an overridden path is reported, naming the winning source and the ones it shadowed, proved by a
scenario with base, team and personal registered.
Observed 2026-09-07 on Danoble-MBP-A, every deploy since noblefactor-ops#182: four [△] source collision(s) resolved by layer/specificity lines, one per file that both the base and the personal layer now carry under Home/common/.local/ (Declare-BashScript, its man page, its bash and zsh completions). Personal wins each, correctly; the lines repeat because the plan is rebuilt each run and the situation is unchanged until noblefactor-ops#147 Phase 2 removes personal's copies.
Open, not ruled: severity. This issue asks that an overridden path be reported naming the winner and the shadowed; it does not say at what level. A personal file shadowing a base file is the normal state of a layered system, so a warning glyph on each one, every run, becomes noise once personal deliberately overrides base content. One shape: routine cross-layer shadowing is narrated as a note (and summarized — "4 paths shadowed by personal, --verbose lists them"), and △ is kept for what is actually surprising: a tie within one layer, or a shadowing that flips between runs. The user's reaction to the explanation: "that makes sense." The ruling is theirs.
Activity
David-Noble-at-work commentedon Sep 7, 2026
Observed 2026-09-07 on Danoble-MBP-A, every deploy since noblefactor-ops#182: four
[△] source collision(s) resolved by layer/specificitylines, one per file that both the base and the personal layer now carry underHome/common/.local/(Declare-BashScript, its man page, its bash and zsh completions). Personal wins each, correctly; the lines repeat because the plan is rebuilt each run and the situation is unchanged until noblefactor-ops#147 Phase 2 removes personal's copies.Open, not ruled: severity. This issue asks that an overridden path be reported naming the winner and the shadowed; it does not say at what level. A personal file shadowing a base file is the normal state of a layered system, so a warning glyph on each one, every run, becomes noise once personal deliberately overrides base content. One shape: routine cross-layer shadowing is narrated as a note (and summarized — "4 paths shadowed by personal,
--verboselists them"), and△is kept for what is actually surprising: a tie within one layer, or a shadowing that flips between runs. The user's reaction to the explanation: "that makes sense." The ruling is theirs.