Skip to content

fix(design): renumber colliding ledger ids DL-319/DL-320 to DL-322/DL-323 - #851

Merged
trunk-io[bot] merged 1 commit into
mainfrom
compass-agent/rig-2616-ledger-id-dedup
Sep 3, 2026
Merged

fix(design): renumber colliding ledger ids DL-319/DL-320 to DL-322/DL-323#851
trunk-io[bot] merged 1 commit into
mainfrom
compass-agent/rig-2616-ledger-id-dedup

Conversation

@rigel-mintaka

Copy link
Copy Markdown
Contributor

A concurrent-merge window landed two records claiming the same ledger ids:
#836 (RIG-2616 error/abort surfacing) allocated DL-318/319/320 off a pre-#833
main, but #833 (RIG-3139 embedded-revival), merged first, already held
DL-319/320/321. The double-booked DL-319/320 fail design-ledger-gate:check on
main ("duplicate ledger id"), which fail-fast-cancels the whole moon(bun)
battery and blocks every open PR in the repo.

Renumber this record's two rows to the next free ids (max on main is 321):
DL-319 to DL-322 (emit rule), DL-320 to DL-323 (FrameSink never-drop routing).
DL-318 is unchanged; #833's ids are load-bearing supersede pointers and stay
put. Also annotates the frozen record header with the mapping
(annotate-don't-rewrite house rule). Byte-identical to the ledger hunks already
carried by #850 (RIG-2616 T2); landing it standalone on main unblocks the fleet
ahead of the stack.

Ledger-impact: renumber DL-319 to DL-322 (emit rule) and DL-320 to DL-323 (FrameSink never-drop routing); no new rows.

Co-authored-by: Matt Wilkinson matt@rigel.build

…-323

A concurrent-merge window landed two records claiming the same ledger ids:
#836 (RIG-2616 error/abort surfacing) allocated DL-318/319/320 off a pre-#833
main, but #833 (RIG-3139 embedded-revival), merged first, already held
DL-319/320/321. The double-booked DL-319/320 fail design-ledger-gate:check on
main ("duplicate ledger id"), which fail-fast-cancels the whole moon(bun)
battery and blocks every open PR in the repo.

Renumber this record's two rows to the next free ids (max on main is 321):
DL-319 to DL-322 (emit rule), DL-320 to DL-323 (FrameSink never-drop routing).
DL-318 is unchanged; #833's ids are load-bearing supersede pointers and stay
put. Also annotates the frozen record header with the mapping
(annotate-don't-rewrite house rule). Byte-identical to the ledger hunks already
carried by #850 (RIG-2616 T2); landing it standalone on main unblocks the fleet
ahead of the stack.

Ledger-impact: renumber DL-319 to DL-322 (emit rule) and DL-320 to DL-323 (FrameSink never-drop routing); no new rows.

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@linear-code

linear-code Bot commented Sep 3, 2026

Copy link
Copy Markdown

RIG-2616

@trunk-io

trunk-io Bot commented Sep 3, 2026

Copy link
Copy Markdown

😎 Merged successfully - details.

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

Compass engineering docs preview: https://compass-agent-rig-2616-ledge.compass-eng-docs.pages.dev

Deployed from compass-agent/rig-2616-ledger-id-dedup at e064779.

Changed pages:

@mattwilkinsonn

Copy link
Copy Markdown
Contributor

/trunk merge

@trunk-io
trunk-io Bot merged commit fab4a67 into main Sep 3, 2026
15 checks passed
@trunk-io
trunk-io Bot deleted the compass-agent/rig-2616-ledger-id-dedup branch September 3, 2026 18:34
trunk-io Bot pushed a commit that referenced this pull request Sep 6, 2026
… (RIG-3107) (#927)

* fix(design): renumber colliding ledger ids DL-327..330 to DL-334..337 (RIG-3107)

A concurrent-merge window landed five records claiming overlapping ledger ids.
This record (#905, RIG-3107 delivery cutover) allocated DL-327..333 off a main
whose tail was DL-326, but four earlier-dated records merged first and already
held the low four:

- DL-327 — SubjectService token principal (#868, compass-server)
- DL-328 — gateway-credentials at-rest encryption (#859, compass-server)
- DL-329 — compass-stack supervision (#872, platform)
- DL-330 — apple-container macOS runner (platform)

The double-booked ids fail design-ledger-gate:check on main ("duplicate ledger
id" x4), which blocks every lane's pre-push moon ci until it lands.

Renumber this record's four rows to the next free ids (max on main is DL-333):
DL-327 to DL-334 (OQ-1 held-deliver ack timing), DL-328 to DL-335 (OQ-2
callback-direct dispatch), DL-329 to DL-336 (OQ-3 part 1 DB-role split), DL-330
to DL-337 (OQ-3 part 2 publish-side recovery trigger). DL-331/332/333 are
uniquely this record's already and stay put.

The earlier claimants' ids do NOT move, per the DL-319/320 precedent (fab4a67,
#851): the later claimant renumbers. Those ids are cited by merged frozen
records other lanes implement from (DL-327 in 6 files, DL-328 in 4), and both
the stack-supervision and apple-container records carry prose deriving their
own id from main's then-current tail ("main's ledger tail was DL-328 ... so
DL-329 is the first free number") — reasoning that stays correct precisely
because only this record's rows move.

DL-333's Decision cell cites the reconnect hook by id, so its internal
DL-330 reference is retargeted to DL-337 in the same pass; the ledger's
decision prose is otherwise byte-identical (verified: 304 rows before and
after, diff empty once ids are masked).

Annotates the frozen record header with the mapping and restates its
Ledger-impact line as DL-331..337 (annotate-don't-rewrite house rule); the
in-body citations read as point-in-time, with the ledger rows canonical.

Standalone on purpose: main is red for every lane until this lands, so it is
not bundled into the T3 implementation stack.

Co-authored-by: Matt Wilkinson <matt@rigel.build>

* docs(design): state the DL-333 citation retarget in the ledger-id note (RIG-3107)

---------

Co-authored-by: Matt Wilkinson <matt@rigel.build>
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.

2 participants