Skip to content

docs(adr): renumber chat-message-store ADR to 0020 to resolve collision#118

Merged
variablefate merged 1 commit into
mainfrom
chore/renumber-adr-chat-message-store
May 12, 2026
Merged

docs(adr): renumber chat-message-store ADR to 0020 to resolve collision#118
variablefate merged 1 commit into
mainfrom
chore/renumber-adr-chat-message-store

Conversation

@variablefate
Copy link
Copy Markdown
Owner

Summary

Resolves the duplicate-numbering at decisions/0018-* introduced when PR #114 (ChatMessageStore extraction) landed without rebasing against commit 4a28f57 — that commit renumbered the original 0011-coordinator-boundary.md to 0018-coordinator-boundary.md, and PR #114 picked 0018 for chat-message-store independently.

  • Rename: `decisions/0018-chat-message-store.md` → `decisions/0020-chat-message-store.md`
  • Update title `# ADR-0018:` → `# ADR-0020:`
  • Update six in-body `ADR-0011` references (which were already stale after 4a28f57) → `ADR-0018` (now pointing correctly at the renumbered coordinator-boundary file)

Why this side of the collision

Lower churn:

  • `decisions/0018-coordinator-boundary.md` is referenced from `decisions/0015-kind-30173-vehicle-subscription.md` (4 mentions) and `decisions/0019-roadflared-url-scheme.md` (1 mention) — moving it would require updating all of those.
  • `decisions/0018-chat-message-store.md` has no external in-repo references (no Swift code, no other ADRs cite it). Renaming it touches only itself.

Test plan

  • `ls decisions/ | grep -oE '^[0-9]{4}' | sort | uniq -d` returns no output (no duplicate prefixes)
  • No Swift code touched; no test or build impact
  • Verified the six "ADR-0011" → "ADR-0018" updates are correct: the renumbered file is `decisions/0018-coordinator-boundary.md` (the one ADR-0011 mentions were always semantically pointing at)

Related: #114 (introduced the collision); commit 4a28f57 on main (did the prior 0011/0012 renumber).

Commit 4a28f57 renumbered the original 0011-coordinator-boundary.md to
0018-coordinator-boundary.md on main, but PR #114 (merged after that)
introduced 0018-chat-message-store.md without rebasing against the new
numbering, creating a fresh duplicate at slot 0018.

Rename the chat-message-store ADR (lower-churn side of the collision —
0018-coordinator-boundary is referenced from 0015 and 0019, while
0018-chat-message-store has no external in-repo references) to the
next free slot 0020. Update the title and the six in-body references
to "ADR-0011" — which were already stale after the 4a28f57 renumber —
to point at the correct "ADR-0018".

decisions/ now has unique four-digit prefixes across all files.
@variablefate
Copy link
Copy Markdown
Owner Author

Code review

No issues found. Checked for missed stale references, duplicate prefixes, and CLAUDE.md compliance.

One finding from the review agent (claim that `0019-roadflared-url-scheme.md:107` mis-attributes "AppState as single facade for view data") was verified as a false positive: the reference targets the concept's source (the coordinator-boundary refactor, now ADR-0018) — `0011-presentation-projection-layer.md` itself attributes the phrase to "the coordinator-boundary refactor (ADR-0001, PR #58)", so the verbatim phrase living in 0011 is a quotation of the 0018 concept, not its definition.

🤖 Generated with Claude Code

@variablefate
Copy link
Copy Markdown
Owner Author

Code review (full ritual)

No issues found. 5-agent pass:

  • CLAUDE.md compliance: clean (ADR guidance explicitly exempts "doc updates").
  • Shallow bug scan: no stale references, no orphaned old-path refs, title matches new number.
  • Git history vs commit 4a28f57: this PR's ADR-0011 → ADR-0018 retargets are correct; no other stale ADR-0011 refs remain anywhere in the repo.
  • Prior PR feedback: nothing applicable beyond the in-flight-branch reminder from PR docs(tests): retarget stale ADR-0012 ref to ADR-0019 #116, which doesn't apply here.
  • Doc-vs-code: every ADR-0018 cross-reference inside the renamed file accurately quotes the renumbered coordinator-boundary ADR.

🤖 Generated with Claude Code

@variablefate variablefate merged commit ae8b338 into main May 12, 2026
@variablefate variablefate deleted the chore/renumber-adr-chat-message-store branch May 12, 2026 09:28
variablefate added a commit that referenced this pull request May 12, 2026
…AppendOutcome (#121)

The .inserted associated value was added to support a haptic-decision use
case that turned out not to need it. ChatCoordinator.handleChatEvent only
ever pattern-matches on `case .inserted` for the haptic — it never reads
the payload. Tests that exercised the unread side effect also assert
store.unreadCount directly (the canonical source).

Drop the payload. The enum becomes:
  case duplicate
  case inserted

Updated ADR-0020 rationale + alternatives.

(Re-opens the auto-closed PR #119; rebased onto main after PR #118 merged.)
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