Retire claims that have since shipped - #79
Merged
Conversation
CLAUDE.md loads into context every session, so a stale "what remains" is not a tidy-up — it is a wrong instruction delivered on every turn. Three of them: - ADR-0017's paragraph said the `WKWebView`, the message handler and the native unavailable state were still to build. They shipped in `familiar-apple` #43, and #53 brought the surface to the phone. - ADR-0018's said "`0018` ships without Discover if `0019` is not accepted". Both are accepted and shipped. - ADR-0022's said accepting it makes #76 reversible via a third bridge message. It did not go that way: `/library/discover/prompts` was already generated, so Listening Ideas came back natively and **the bridge stays at two messages**. That sentence would have steered the next session into building the thing we deliberately did not build, which is the worst kind of stale. ADR-0017's own Implementation block carried the same claim — an accepted ADR is a living record, and rule 6 protects the Decision, not the record of what shipped. It now also lists the three defects that surface has produced, all one shape: an affordance whose destination is not mounted, failing silently. ADR-0022 gains its Implementation block: what shipped, the three places the server did not match its documentation, and the empty-line SSE bug the ADR's own recorded tradeoff predicted. Also: the Music Map ordering note is spent, so it now records that the map's interaction is still half-wired — the footer advertises scroll-to-zoom that was never implemented, `zoomed(by:toward:)` is reachable only through `stepped()`, and the drag gesture competes with click-to-focus. Verified against the source, not from memory. Key Files gains rows for the web chat and the embedded surface, neither of which had a pointer. Every PR number, path and claim re-checked (rule 4). `useChatAvailability.ts` was dropped from Key Files because it exists only in the open #78, and the two open PRs are marked as open rather than described as shipped. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014P9p2fvFnyiywBxGkv4gfW
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CLAUDE.md loads into context every session, so a stale "what remains" isn't a tidy-up — it's a wrong instruction delivered on every turn.
Three stale claims
familiar-apple: theWKWebView, theWKScriptMessageHandler… and the native unavailable state"familiar-apple#43; #53 brought the surface to the phone0018ships without Discover if0019is not accepted"0022is what makes #76 reversible, since0020point 3's bar for a third bridge message is cleared"That third one is the one worth flagging.
/library/discover/promptsturned out to be on the already-generatedlibrarytag, so Listening Ideas came back natively and the bridge stayed at two messages. Left as written, that sentence would have steered the next session into building the exact thing we deliberately chose not to build. It now says so explicitly: "The bridge stays at two messages. Do not add a third for this."The ADRs carried it too
ADR-0017's ownImplementation:block still read "Not yet built: theWKWebViewhost…". An accepted ADR is a living record — rule 6 protects the Decision, not the record of what shipped — so it's updated, and now also lists the three defects that surface has produced, all one shape: an affordance whose destination isn't mounted, failing silently (#70 zero-height lists, #74 the spinner, #76 Listening Ideas). That pattern is the useful thing to know before touching the embedded page again.ADR-0022had noImplementation:block at all. It gains one: what shipped, the three places the server didn't match its own documentation, and the empty-line SSE bug that its own recorded tradeoff predicted.Also
MusicMapView.swift:370, and zero scroll handling in the file),zoomed(by:toward:)has exactly one caller (stepped()), andDragGesture(minimumDistance: 1)competes with click-to-focus. Verified against the source, not from memory.Verification
Every PR number, path and claim re-checked (rule 4). Two things that caught:
useChatAvailability.tswas dropped from Key Files — it exists only in the open Don't offer chat when the server has no provider #78, so referencing it would have recreated exactly the staleness this PR removes.🤖 Generated with Claude Code
https://claude.ai/code/session_014P9p2fvFnyiywBxGkv4gfW