Skip to content

Declare the dashboard MergeReady semantic-admissibility rung drop - #10157

Merged
gunbai-bot[bot] merged 2 commits into
mainfrom
fix/9969-ledger-regen-v2
Sep 3, 2026
Merged

gunbai-bot[bot] merged 2 commits into
mainfrom
fix/9969-ledger-regen-v2

Conversation

@briansrls

@briansrls briansrls commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

Supersedes #10039, which is CONFLICTING and carried two hunks against a derived surface that no longer exists.

What this is

Three authored lines in dag/gunbc/rung_drop.dag: the dashboard_merge_ready_semantic_admissibility row and its roster entry.

Why #10039 could not simply be updated

#10039 carried three hunks. Two were dead:

  • DESIGN.md — that document now states it deliberately does not restate the drop names, because an index derived from the roster is a second projection of the same rows and made DESIGN.md regenerate on every ledger append.
  • docs/design-ledgers.md — split on main into docs/design-failure-modes.md and docs/design-rung-drops.md. The file the hunk edits does not exist.

Only the authority edit was ever real. Rebuilt on current main rather than conflict-resolved, per the side-chat ruling that the obsolete generated-surface hunks be deleted from the candidate.

On the row's own evidence

The row cites git merge-tree --write-tree origin/main cc1f3ff60 returning rc=1 beside a dashboard ready=true. That direction is sound and deliberately so: rc=1 proves a textual conflict exists. The converse would not be sound — merge-tree does not invoke this repository's generated-artifact merge driver, so an rc=0 from it is not evidence that a merge is clean. The row only ever uses the sound direction.

Deliberately NOT in this commit

The regeneration of docs/design-rung-drops.md. It lands with the regen in one commit once that path's window is clear — #10130 and #10154 both hold live regens of the ledger projections, and a third concurrent one would invalidate one of theirs.

Draft until then: a head carrying an authority edit without its projection fails the generated-artifact gate, and it should, so there is nothing here for CI to usefully say yet.

Rebuilt from #10039, which carried two hunks against a derived surface
that no longer exists: DESIGN.md now states it deliberately does not
restate the drop names, and docs/design-ledgers.md was split into
design-failure-modes.md and design-rung-drops.md. Only the authority
edit was ever real.

Projection regeneration is deliberately NOT in this commit: it lands
with the regen once the docs/design-rung-drops.md window is clear.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L9g69G7ZkiCXGCeUUJgo9D
@gunbai-bot gunbai-bot Bot changed the title XL-N Manager Declare the dashboard MergeReady semantic-admissibility rung drop Sep 3, 2026
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review September 3, 2026 03:00
@gunbai-bot
gunbai-bot Bot merged commit 32623a9 into main Sep 3, 2026
7 checks passed
@gunbai-bot
gunbai-bot Bot deleted the fix/9969-ledger-regen-v2 branch September 3, 2026 04:17
briansrls pushed a commit that referenced this pull request Sep 3, 2026
Ruled contender cleared. The conflict was positional, not semantic: this branch
converts rows from `authored:` to `declaration: AuthoredProse { .. }` while
#10157 appended a row in the same tail region, so git conflicted on adjacency
while nothing about the two changes disagreed.

One genuinely new row -- dashboard_merge_ready_semantic_admissibility --
absorbed at main's content byte-for-byte with one new LegacyProseIdentity arm,
which is the whole cost of a prose row arriving during this migration. The other
four rows on main's side of the hunk were already present in this branch,
converted; the spark paragraph was verified identical to the one already carried
rather than assumed.

MAIN HAD ALREADY ROSTERED THE NEW ROW in the auto-merged region, so adding it
again produced a DUPLICATE that the identity join would have refused --
`every_legacy_arm_is_claimed_exactly_once` fails on two claims of one arm as
readily as on zero. Caught by counting occurrences before regenerating rather
than by the witness, but it is the same question, and it is the second time
tonight this file's controls have named a defect I introduced by hand.

The projection was REGENERATED, never resolved: docs/design-rung-drops.md came
back GeneratedArtifactConcurrentDivergence -- unmerged with the ours bytes in
place and no conflict markers -- which is precisely the shape that would let a
picked side pass unnoticed. 28 sections, one per row.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdJu3Xkr9PX3gdBqen9Cdn
@gunbai-bot gunbai-bot Bot mentioned this pull request Sep 3, 2026
6 tasks
gunbai-bot Bot pushed a commit that referenced this pull request Sep 3, 2026
#10154 split floor_cut's trigger into siblings because the original named five
capabilities against an eight-capability loss -- the same class as this PR's own
found-not-fixed item, a trigger asserting less than the capability it restores.
Two lanes independently found instances of one class in one file on one night,
which is evidence the class is common in this carrier rather than a coincidence
about the file, and an argument FOR consolidating it.

Absorbed mechanically: three new prose rows wrapped in AuthoredProse at main's
content byte-for-byte with three new arms, and floor_cut itself re-wrapped after
main rewrote its paragraph. Main had already rostered all three, so no roster
inserts -- the duplicate trap from #10157, checked for this time rather than
discovered.

gunbc.guarantee_stall took main's authority_target_same_expression_equivalence
row beside this branch's prose_declared_rung_drop_stall: two lanes adding
different rows at the same position, both kept. Main's row was drafted as a DROP
on #10154 and moved to the stall carrier on review, for the reason this PR
exists -- a row denying the meaning of the carrier it sits in is a meaning fork,
not a caveat.

THE STALL'S POPULATION WAS RE-SYNCED, NOT LEFT TO DRIFT. It enumerates every
prose identity, so four new prose rows made it silently incomplete -- a bounded
population that has stopped being the population is the failure this row is
about. Population and arm roster now agree exactly, 26 each, checked by set
comparison rather than by count; the header sentence carries 26 instead of 21.

Three defects of mine caught before pushing: a truncated closing brace that made
the corpus unparseable, a roster insert whose anchor only matched once so two
arms went unregistered, and a duplicated population member. Each was found by an
identity or set check rather than by reading.

All four identity assertions re-executed: green. Projection regenerated.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdJu3Xkr9PX3gdBqen9Cdn
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant