backlog: file #1220 -- ENGINE_UI_SEAM collides silently and the golden gate agrees - #329
Merged
Conversation
… gate agrees Found by the coordinator's independent verification of two of my held branches; I reproduced every load-bearing fact before filing. origin/main ENGINE_UI_SEAM = 18 w3-log-write-failure ENGINE_UI_SEAM = 19 (SystemStatus.log_sinks) w3-store-privilege-preflight ENGINE_UI_SEAM = 19 (SecurityPosture.store_privilege) Both share merge-base 751ca08. The seam is a version integer that must be unique per console-contract change, and two unlanded branches took the same value. THE CONFLICT GIT RAISES IS THE COSMETIC HALF. Trial-merging conflicts in _ui_seam.py ONLY, and only in the adjacent COMMENT blocks. Meanwhile tests/golden/webconsole_seam.snapshot AUTO-MERGES CLEAN -- I verified the merged tree myself: it carries BOTH log_sinks and store_privilege with ZERO conflict markers, and SUPPORTED_ENGINE_SEAMS={19} accepts it. So a reviewer who resolves the visible conflict CORRECTLY still ships the defect. Seam 19 ends up describing two independent contract changes, and the gate whose entire job is catching seam contract changes agrees. Whichever branch lands second must re-bump to 20 and nothing enforces it. That is why this is the nastiest keep-both-sides instance recorded here: the usual defence is 'git will conflict and someone will look', and git DOES conflict -- at the wrong half. A predicted conflict is not a control when it points somewhere else. Scope offers two directions rather than one, because I do not think the choice is obvious: derive the seam from a hash of the contract surface so collision is impossible by construction, or gate the integer against every value reachable from origin/main. I argued for the derived form if it is cheap, since a gate on a hand-maintained integer is one more thing to remember and this collision happened between two sessions that were each individually careful. The item also names the reproduction, so a fix can be shown to work: both branches are unlanded and anchored, so 'git merge-tree --write-tree w3-log-write-failure w3-store-privilege-preflight' reproduces it on demand. A fix that does not red on that pair has not been demonstrated. Gates: 485 items each declaring exactly one status; ledger_check clean. cp1252 dogfood on my own added lines: 21 added, 1 non-ASCII, and it is U+1F522 -- the sanctioned banner glyph, which is exactly the exemption recorded under #1030.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Files BACKLOG #1220 -- a seam-version collision that the golden gate agrees with.
Two unmerged branches each bump
ENGINE_UI_SEAM18 -> 19, for two different contract changes(
SystemStatus.log_sinksandSecurityPosture.store_privilege), off the same merge-base.The conflict git raises is the cosmetic half. Trial-merging the pair conflicts in
messagefoundry/api/_ui_seam.pyonly, and only in the adjacent comment blocks -- whiletests/golden/webconsole_seam.snapshotauto-merges clean: 196 lines, zero conflict markers, carryingBOTH fields at seam 19. So the natural keep-both-comments resolution yields seam 19 describing two
independent contract changes, the gate whose entire purpose is catching seam contract changes agrees,
and
SUPPORTED_ENGINE_SEAMS={19}accepts it.A reviewer who resolves the visible conflict correctly still ships the defect. Whichever branch lands
second must re-bump to 20, and nothing enforces that today.
The general shape: a monotonic counter shared across branches is not protected by conflict detection.
Git conflicts on the line, and both sides wrote the same line --
= 19. Two sides agreeing on a value isindistinguishable from two sides making the same change.
The item names its own reproduction: both branches are unlanded and anchored, so
merge-treeon thatpair reproduces it on demand, and a fix that does not red on that pair has not been demonstrated.
Ledger-only. Verified:
#1220free in the live ledger and the archive, merges clean onto currentmain.