Skip to content

fix(design): renumber colliding ledger ids DL-327..330 to DL-334..337 - #926

Closed
rigel-mintaka wants to merge 1 commit into
mainfrom
compass-server/ledger-id-collision
Closed

fix(design): renumber colliding ledger ids DL-327..330 to DL-334..337#926
rigel-mintaka wants to merge 1 commit into
mainfrom
compass-server/ledger-id-collision

Conversation

@rigel-mintaka

@rigel-mintaka rigel-mintaka commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

This PR is part of a stack containing 2 PRs:

  1. main
  2. "fix(design): renumber colliding ledger ids DL-327..330 to DL-334..337" (this PR)
  3. chore(secrets): bump secretspec to v0.20, thread an audit reason, and stage an age-capable CLI (RIG-3320) #916

main is red on design-ledger-gate:check: the delivery→EventFabric cutover
record's ledger block (merged as #905) claimed DL-327..333, but four of those
ids were already taken by records that merged first, so the ledger carries four
duplicates and the gate fails on every branch rebased onto current main.
Because the pre-push gate runs moon ci, this blocks every lane's submit — and
a stale clone still reads green, so it is easy to miss.

The four cutover rows move to the free tail; the earlier claimants keep their
ids because already-merged records cite them and other lanes implement from
those citations.

id kept by cutover row moved to
DL-327 SubjectService token principal (#868) DL-334 (OQ-1 ack timing)
DL-328 gateway-credentials at-rest encryption (#859) DL-335 (OQ-2 callback)
DL-329 compass-stack supervision DL-336 (OQ-3 p1 DB role)
DL-330 apple-container macOS runner DL-337 (OQ-3 p2 recovery)

DL-331/332/333 were already unique and keep their ids, so the cutover block is
now contiguous at DL-331..337. Its record's Ledger-impact line and the four
in-prose references are updated to match, including the DL-333 row's own
citation of the reconnect trigger it rests on (DL-330 → DL-337).

No ruling is altered — this is an identifier reconciliation. Same shape as the
earlier DL-319/DL-320 → DL-322/DL-323 reconciliation.

Verified: moon run design-ledger-gate:check passes, and the ledger parses to
304 rows with zero duplicate ids (it previously reported four).

Ledger-impact: renumbers DL-327..330 to DL-334..337; no ruling changes.

Refs RIG-3107

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

`main` is red on `design-ledger-gate:check`: the delivery→EventFabric cutover
record's ledger block (merged as #905) claimed DL-327..333, but four of those
ids were already taken by records that merged first, so the ledger carries four
duplicates and the gate fails on every branch rebased onto current `main`.
Because the pre-push gate runs `moon ci`, this blocks every lane's submit — and
a stale clone still reads green, so it is easy to miss.

The four cutover rows move to the free tail; the earlier claimants keep their
ids because already-merged records cite them and other lanes implement from
those citations.

| id | kept by | cutover row moved to |
| --- | --- | --- |
| DL-327 | SubjectService token principal (#868) | DL-334 (OQ-1 ack timing) |
| DL-328 | gateway-credentials at-rest encryption (#859) | DL-335 (OQ-2 callback) |
| DL-329 | compass-stack supervision | DL-336 (OQ-3 p1 DB role) |
| DL-330 | apple-container macOS runner | DL-337 (OQ-3 p2 recovery) |

DL-331/332/333 were already unique and keep their ids, so the cutover block is
now contiguous at DL-331..337. Its record's `Ledger-impact` line and the four
in-prose references are updated to match, including the DL-333 row's own
citation of the reconnect trigger it rests on (DL-330 → DL-337).

No ruling is altered — this is an identifier reconciliation. Same shape as the
earlier DL-319/DL-320 → DL-322/DL-323 reconciliation.

Verified: `moon run design-ledger-gate:check` passes, and the ledger parses to
304 rows with zero duplicate ids (it previously reported four).

Ledger-impact: renumbers DL-327..330 to DL-334..337; no ruling changes.

Refs RIG-3107

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

linear-code Bot commented Sep 6, 2026

Copy link
Copy Markdown

RIG-3107

@trunk-io

trunk-io Bot commented Sep 6, 2026

Copy link
Copy Markdown

Merging to main in this repository is managed by Trunk.

  • To merge this pull request, check the box to the left or comment /trunk merge below.

After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here

@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown

Compass engineering docs preview: https://compass-server-ledger-id-col.compass-eng-docs.pages.dev

Deployed from compass-server/ledger-id-collision at fc79980.

Changed pages:

@rigel-mintaka

Copy link
Copy Markdown
Contributor Author

Superseded by #927 — closing in favor of it.

Both PRs carry a byte-identical ledger renumber (same md5 over the changed DL- rows; both yield zero duplicates with all 304 rows preserved, Ledger-impact restated to DL-331..337, A-side ids untouched, and the DL-333(DL-337) internal cross-reference carried).

#927 additionally handles the fact that #905 merged at 04:10Z, so its record is frozen: it adds a post-freeze annotation carrying the id mapping and leaves the in-body DL-327..333 citations reading point-in-time, per the annotate-don't-rewrite precedent in fab4a67f (#851). This PR rewrote the range without that note, which would leave a future reader of #905 hitting DL-327 in the body with no explanation.

No defect in this PR — it executed the routed instruction, which omitted the freeze consideration. Structural follow-up for the recurring collision is RIG-3364.

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