Skip to content

chore: ledgers merge by union; land the 2026-08-13 Muse Glimmer journal - #65

Merged
mazze93 merged 4 commits into
mainfrom
chore/ledger-union-and-glimmer-journal
Sep 9, 2026
Merged

mazze93 merged 4 commits into
mainfrom
chore/ledger-union-and-glimmer-journal

Conversation

@mazze93

@mazze93 mazze93 commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Lands the three journal commits that had been stranded at 3-ahead / 20-behind since 2026-08-13, plus the .gitattributes union rule that made the rebase tractable.

Why this was stuck

Two independent blockers, both now diagnosed:

  1. add/add conflicts on all three journal files. The merge base had no docs/journal/; both sides created it independently. Nothing could fast-forward.
  2. main requires verified signatures, and this machine has none. The account has zero SSH signing keys registered (GET /user/ssh_signing_keys returns empty). The local key exists and signs correctly — git log --format=%G? reports G on all four commits — but GitHub cannot verify it, so every commit reads Unverified and the ruleset rejects a direct push. A direct git push from this clone could never have succeeded, which is most of why these commits sat for three weeks. Squash-merging this PR sidesteps it, because the resulting commit is signed by GitHub.

Follow-up for the account owner, outside this PR: register ~/.ssh/id_ed25519.pub (titled "commit signing 2026-08-30", SHA256:u/YX5OMJo+IAT4nTNgydwknMkcuBwV0hf0buJNVvN7g) under Settings → SSH and GPG keys → Signing keys. Until that happens, every commit authored on this machine since 2026-08-30 is unverified across the whole fleet, not just here.

The union rule

.gitattributes marks docs/journal/DECISIONS.md as merge=union and deliberately marks CHECKPOINT.md and PLAN.md as -merge. The discrimination is the point: union is only safe for a ledger appended at the bottom and never edited above the last entry. CHECKPOINT.md is a projection that gets rewritten (union would duplicate checklist items and resurrect ticked boxes) and PLAN.md is edited in place.

Verified on this repo's own real divergence rather than a synthetic case:

file rule result
DECISIONS.md merge=union auto-merged, 437 lines = 395 upstream + 42 local, zero conflict markers, and zero lines lost from either side — verified by set-difference, not by eyeballing the diff
CHECKPOINT.md -merge conflicted as intended, hand-resolved
PLAN.md -merge conflicted as intended, hand-resolved

How the two conflicts were resolved

Chronologically, with both sides preserved verbatim. Upstream's content (the 2026-08-04 session) stays as the document body; the divergent branch's content (the 2026-08-13 Muse Glimmer session) is appended below an HTML-comment seam recording its provenance, with its H1 demoted to H2 so each file keeps exactly one top-level heading.

Line accounting: CHECKPOINT.md 68 + 25 + 9 seam = 102. PLAN.md 63 + 93 + 6 seam = 162. Nothing dropped.

One incidental change

.claude/settings.local.json was deleted upstream in #44 and is no longer tracked. A local modification to it existed in the working tree; this PR accepts the upstream untracking (git rm --cached) and leaves the file on disk. Note it is not in .gitignore, so it will keep reappearing as untracked — worth adding, separately.

Verification

  • The rebase completed clean after the single hand-resolution; the two follow-on commits replayed with no further conflict.
  • All four commits sign locally (%G? = G).
  • No conflict markers anywhere under docs/journal/.
  • Not checked by this PR: CI/CodeQL results (running now), and the 5 high Dependabot advisories currently open on main — pre-existing and unrelated to this change.

DECISIONS.md gets merge=union; CHECKPOINT.md and PLAN.md are marked -merge deliberately, so a divergence stays a human decision rather than a silent concatenation. Verified on this repo's own 3-ahead/20-behind divergence: DECISIONS.md auto-merged to 437 lines (395 upstream + 42 local) with zero lines lost from either side; CHECKPOINT.md and PLAN.md conflicted as intended and were hand-resolved chronologically.
@mazze93
mazze93 marked this pull request as draft September 9, 2026 14:40
@mazze93
mazze93 marked this pull request as ready for review September 9, 2026 14:40
@mazze93
mazze93 merged commit 5f068ae into main Sep 9, 2026
9 checks passed
@mazze93
mazze93 deleted the chore/ledger-union-and-glimmer-journal branch September 9, 2026 14:42
@mazze93
mazze93 restored the chore/ledger-union-and-glimmer-journal branch September 16, 2026 11:11
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