docs: clear three stale references revision 3 left behind

Revision 3 corrected the cache model in section 3.2 and the clipping
rule in 3.4, then failed to propagate either. Internal contradictions in
a framing document are worse than the original errors: a later reader
resolves them by picking whichever statement they read first.

  - Q#D2-4 still summarised the design as "per-variant cache keys",
    contradicting 3.2's corrected one-per-peer model. Now names the
    `peer_knows_minibuffer_rows` producer gate and the single per-peer
    cache, with a parenthetical recording that the sentence was stale
    rather than silently rewriting history.
  - Section 6 still required the cross-version cache test that
    revision 3 removed as unfalsifiable. Replaced with what IS
    assertable --- a v22 and a v23 peer attached simultaneously each
    receive their own variant and only their own --- and the bullet
    says why the other test is absent, so it does not get "restored"
    later by someone who notices the gap.
  - The active-work lane still called the framing revision 2.

Swept for the same class of residue from the other two corrections
("the name must survive", "both frontends render"); the remaining hits
are the notes ABOUT those corrections, which are deliberate.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016bqGA6s9tTUFzYpbeW3tai
This commit is contained in:
Levi Neuwirth 2026-08-09 13:55:17 +02:00
parent b3a6da2416
commit 0e260e0377
No known key found for this signature in database
2 changed files with 15 additions and 7 deletions

View File

@ -275,7 +275,7 @@ from #171 and #215.
tip** — the ref, not a SHA. Recover with tip** — the ref, not a SHA. Recover with
`git fetch githubsucks && git checkout discovery-stage2`. `git fetch githubsucks && git checkout discovery-stage2`.
- **Framing `docs/discovery-stage2-framing.md`, revision 2**, in - **Framing `docs/discovery-stage2-framing.md`, revision 3**, in
review. Scope: `COHERENCE.md` §5's "M-x rows are still bare names". review. Scope: `COHERENCE.md` §5's "M-x rows are still bare names".
Descriptions already exist on `Command` and are already rendered by Descriptions already exist on `Command` and are already rendered by
`help.list-commands`; they are missing at the one moment they would `help.list-commands`; they are missing at the one moment they would

View File

@ -248,14 +248,19 @@ later.
has yet asked to disable is how a registry becomes noise. If somebody has yet asked to disable is how a registry becomes noise. If somebody
wants it off, that is use evidence and a later one-line addition. wants it off, that is use evidence and a later one-line addition.
### Q#D2-4 — older frontends — **RESOLVED in rev 2, in §3.13.2** ### Q#D2-4 — older frontends — **RESOLVED, in §3.13.2**
No longer open, and the revision-1 answer was wrong. "Gate the richer No longer open, and the revision-1 answer was wrong. "Gate the richer
form at `>= 23`" would have **removed the minibuffer entirely** from form at `>= 23`" would have **removed the minibuffer entirely** from
every v12v22 peer, because there would have been only one variant to every v12v22 peer, because there would have been only one variant to
gate. Compatibility requires the legacy shape to still exist and still gate. Compatibility requires the legacy shape to still exist and still
be sent — hence the additive `MinibufferPromptRows` variant, per-peer be sent — hence the additive `MinibufferPromptRows` variant, a
selection, per-variant cache keys, and matched open/close families. per-peer `peer_knows_minibuffer_rows` producer gate, **one per-peer
minibuffer cache**, and matched open/close families.
*(Revision 2 said "per-variant cache keys" here. §3.2 corrected that in
revision 3 — the render state is per peer with its version baked in, so
a cache cannot span two versions — and this sentence was left stale.)*
The `CompletionPopup` gate I proposed copying (`daemon-gated >= 15`) The `CompletionPopup` gate I proposed copying (`daemon-gated >= 15`)
**is** the right precedent for *how to select per peer*; it is not a **is** the right precedent for *how to select per peer*; it is not a
@ -300,9 +305,12 @@ the temptation arrives with the feature.
encoding changes. Two fixtures: an open prompt with candidates and a encoding changes. Two fixtures: an open prompt with candidates and a
selection, and a cleared band — the two shapes the existing semantic selection, and a cleared band — the two shapes the existing semantic
test already covers, so the corpus is not a new judgement call. test already covers, so the corpus is not a new judgement call.
- **The cache key is per variant**: a session that opens for a v23 peer - **No cross-version cache test.** Revision 2 required one; it asserts
and a later one for a v22 peer are not suppressed as duplicates of a condition this architecture makes impossible (§3.2), and a test
each other (§3.2). that cannot fail passes forever while teaching the next reader that
the hazard is real. What *is* asserted is the producer gate: a v22
peer and a v23 peer attached simultaneously each receive their own
variant and only their own.
- **Close matches open**: a `MinibufferPromptRows` session is closed by - **Close matches open**: a `MinibufferPromptRows` session is closed by
its own family, witnessed by the popup actually clearing. its own family, witnessed by the popup actually clearing.
- **The TUI renders `name — description` for the selected candidate** - **The TUI renders `name — description` for the selected candidate**