Record PR 187 and its review state

Advance the canonical landed-base anchors through the docs-only main
updates, give PR 187 a complete volatile lane, and stop calling Stage
2B-2 the next unstarted slice in the durable handoff.

Record both review rounds, the round-2 code checkpoint, verification,
and exact cross-machine recovery.
This commit is contained in:
Levi Neuwirth 2026-07-28 21:59:43 -04:00
parent bfaaf2bff6
commit 61202d50c1
2 changed files with 82 additions and 27 deletions

View File

@ -38,16 +38,17 @@ is gone again and its durable lesson is in `docs/agent-handoff.md` §5;
machine-local: `origin` may name this canonical URL, a release mirror, machine-local: `origin` may name this canonical URL, a release mirror,
or something else, and therefore has no authority by name alone. or something else, and therefore has no authority by name alone.
- Canonical base at this snapshot: - Canonical base at this snapshot:
`githubsucks/main` @ `0442d78` (the M4 config-sink race fix #174, atop `githubsucks/main` @ `7586905` (the docs-only coherence listview
bottom-panel Stage 2B-1 #184, the Journey/GPU directory-target ratchet correction #189, atop the docs-only landed-state refresh #185, the M4
#183, Journey Stage 1a #182 and the previously recorded landed work). config-sink race fix #174, bottom-panel Stage 2B-1 #184, the
Journey/GPU directory-target ratchet #183, Journey Stage 1a #182 and
the previously recorded landed work).
**Protocol schema support is **Protocol schema support is
`v6..=v21`; the production server-first `Hello` still advertises `v6..=v21`; the production server-first `Hello` still advertises
v20** — two different facts, and #184 landed only the first. The v20** — two different facts, and #184 landed only the first. The
previous snapshot named `7fd646d`, and **the previous snapshot named `0442d78`, and **the
recovery floor advances with it**: the check below now requires recovery floor advances with it**: the check below now requires
`0442d78` or newer, so a tree at `7fd646d` — or at `6bee09d` — no `7586905` or newer, so a tree at `0442d78` no longer passes. That is
longer passes. That is
deliberate — the floor moves with the base, because a check that deliberate — the floor moves with the base, because a check that
accepts an older commit than the declared base passes on a tree the accepts an older commit than the declared base passes on a tree the
rest of this file does not describe. rest of this file does not describe.
@ -86,7 +87,7 @@ git worktree list
git status --short --branch git status --short --branch
``` ```
The `git log` command must expose `0442d78` — the base named above — or a The `git log` command must expose `7586905` — the base named above — or a
newer intentional main. Keep this threshold and the canonical-base line in newer intentional main. Keep this threshold and the canonical-base line in
step: a recovery check that accepts an older commit than the base it step: a recovery check that accepts an older commit than the base it
declares canonical will pass on a tree the rest of this file does not declares canonical will pass on a tree the rest of this file does not
@ -228,17 +229,18 @@ If it does not, stop and repair the remote/fetch configuration.
never been enforced. Any CI job that compiles the `crdt` targets has to never been enforced. Any CI job that compiles the `crdt` targets has to
fix them first or it will be red on arrival. fix them first or it will be red on arrival.
## Bottom-panel lane (Arc 7) — 2B-1 MERGED; 2B-2 IN FLIGHT ## Bottom-panel lane (Arc 7) — 2B-1 MERGED; 2B-2 PR #187 OPEN
Stage 1, the Stage 2 framing, Stage 2A, and **Stage 2B-1 are all on Stage 1, the Stage 2 framing, Stage 2A, and **Stage 2B-1 are all on
`main`**. Framing revision 5's three-way split of 2B was explicitly `main`**. Framing revision 5's three-way split of 2B was explicitly
approved on 2026-07-27; revision 6 records PR #184's review correction. approved on 2026-07-27; revision 6 records PR #184's review correction.
**2B-2 — the daemon panel projection and epoch machine — is under way** **2B-2 — the daemon panel projection and epoch machine — is open as
on branch `bottom-panel-stage2b2`, worktree `../pmacs-bp-stage2b2`, [PR #187](https://github.com/levineuwirth/pmacs/pull/187)** on branch
branched fresh from `githubsucks/main` @ `6bee09d`. It is *not* stacked `bottom-panel-stage2b2`, worktree `../pmacs-bp-stage2b2`. It branched
on the 2B-1 branch, which is the rule for every slice in this arc. Note fresh from landed 2B-1 rather than stacking on its feature branch, and
that `main` has since advanced to `0442d78`; the only difference is the has since integrated landed main through `7586905` (#174, #185, and
test-only #174, so the slice's integration surface is unchanged. #189). The exact pre-round-2 reviewed head was merge checkpoint
`0dba358`; the round-2 code-and-test checkpoint is `bfaaf2b`.
**2B-2's boundaries, restated because they are easy to overrun:** the **2B-2's boundaries, restated because they are easy to overrun:** the
production `Hello` stays at v20 and `panel_capable` stays `false`. The production `Hello` stays at v20 and `panel_capable` stays `false`. The
@ -247,6 +249,53 @@ activation, the GPU band, and the negotiated capability flip are all
2B-3's, and 2B-3 may **not** simply change the unsolicited `Hello` to 2B-3's, and 2B-3 may **not** simply change the unsolicited `Hello` to
21. 21.
- **What PR #187 ships, dark by construction:** the semantic daemon's
`FrontendCellGeometry` epoch machine; one reconciled panel grid
derivation; `PanelFrame::{Present, Absent}` projection on both document
and terminal semantic paths; stable presentation epochs; resize and
pointer validation against the live window/buffer/epochs; the panel's
own statusline context; and pre-drain semantic panel-terminal resize.
It does not add the GPU consumer or enable the capability.
- **Review round 1 closed five findings plus one sweep result at
`3ecb03d`.** The wire-area clamp became durable hide state; a stale
same-buffer reopen can no longer retain input authority; semantic panel
terminals resize before child drain; `NoMessage` retains a published
band baseline while `Invalidated` clears it; wheel activation follows
the terminal-only focus rule; and legally wide panels clamp their PTY
content without disappearing.
- **Review round 2 closed two findings at `bfaaf2b` plus this ledger
commit.** Side affinity can replace the buffer while preserving the
`WindowId`, so retained panel statusline segments are now keyed by the
full `(WindowId, BufferId)` presentation. Every authoritative `Absent`
also clears that baseline, including duplicate-suppressed `Absent`, so
a later `Present` under `NoMessage` cannot resurrect peer state that
was already cleared. Two acceptance tests bite those exact transitions.
This lane and `docs/agent-handoff.md` now name the open PR, current
landed base, checkpoint, and 2B-3 ordering instead of calling 2B-2
merely “next.”
- **Round-2 verification at code checkpoint `bfaaf2b`:** formatting and
strict workspace Clippy; library **1,863 passed + 3 ignored** default
and **2,048 passed + 4 ignored** CRDT; bottom-panel Stage 1 / 2A /
2B-1 / 2B-2 **46 / 17 / 16 / 28**; statusline **8 CRDT**; semantic
routing **2 CRDT**; M4 **121 passed + 3 ignored + 1 filtered**;
required GPU **202/202**; isolated-config full workspace sweep; and
`git diff --check`. The first workspace sweep had one GPU rendering
failure in `failures_and_display_math_render_as_source`; that test had
passed in the immediately preceding required-GPU run, passed alone,
and the complete workspace rerun passed. Real-daemon and managed-attach
cases were rerun outside the tool sandbox after its local-socket policy
produced `Operation not permitted`; the authoritative reruns passed.
- **Cross-machine recovery (fresh clone):**
```sh
git fetch githubsucks --prune
git switch --track -c bottom-panel-stage2b2 githubsucks/bottom-panel-stage2b2
git rev-parse HEAD
```
Require the remote branch to contain `bfaaf2b` or newer and confirm
PR #187's exact-head checks before resuming. Do not start 2B-3 until
#187 lands.
- **Stage 2B-1 MERGED as #184** (`main` @ `6bee09d`, 2026-07-28; all - **Stage 2B-1 MERGED as #184** (`main` @ `6bee09d`, 2026-07-28; all
twelve checks green on the reviewed head `5539b6e`; two review rounds twelve checks green on the reviewed head `5539b6e`; two review rounds
plus a gate-found follow-up). Branch plus a gate-found follow-up). Branch

View File

@ -1,9 +1,10 @@
# Agent handoff — cross-machine continuity # Agent handoff — cross-machine continuity
**Last updated: 2026-07-28, after the M4 config-sink race fix (#174) and **Last updated: 2026-07-28, after the docs-only coherence listview
bottom-panel Stage 2B-1 (#184) merged; the canonical landed base is correction (#189) and landed-state refresh (#185) merged; the canonical
`0442d78`. #174 is test-only. #184 is the substantive one — the reserved landed base is `7586905`. The runtime anchor beneath them is the M4
protocol-v21 config-sink race fix (#174) and bottom-panel Stage 2B-1 (#184). #174 is
test-only. #184 is the substantive one — the reserved protocol-v21
bottom-panel wire family, dark by construction, with the production bottom-panel wire family, dark by construction, with the production
handshake deliberately still advertising v20 — following the Journey/GPU handshake deliberately still advertising v20 — following the Journey/GPU
directory-target ratchet (#183), following Journey Stage 1a (#182), directory-target ratchet (#183), following Journey Stage 1a (#182),
@ -51,9 +52,11 @@ commands, read `docs/active-work.md` immediately after this file.
## 1. Where the project stands (2026-07-28) ## 1. Where the project stands (2026-07-28)
- `main` @ `0442d78` (the M4 config-sink race fix #174 — test-only — - `main` @ `7586905` (the docs-only coherence listview correction #189,
atop bottom-panel Stage 2B-1 #184, the Journey/GPU atop the docs-only landed-state refresh #185, the M4 config-sink race
directory-target ratchet #183, Journey Stage 1a #182, incorporating fix #174 — test-only — atop bottom-panel Stage 2B-1 #184, the
Journey/GPU directory-target ratchet #183, Journey Stage 1a #182,
incorporating
terminal configuration + copy terminal configuration + copy
mode landed docs #180, Lean 4 Stage 4b #181, the dired Stage 1 landed mode landed docs #180, Lean 4 Stage 4b #181, the dired Stage 1 landed
docs #169 and the PTY-terminate diagnostic #176, terminal copy mode docs #169 and the PTY-terminate diagnostic #176, terminal copy mode
@ -518,20 +521,23 @@ commands, read `docs/active-work.md` immediately after this file.
`bottom_panel_stage1_acceptance` 46; kill ring 30; compile 67; M4 121; `bottom_panel_stage1_acceptance` 46; kill ring 30; compile 67; M4 121;
required GPU 152; initial-target 14 CRDT; all three vterm suites; folding required GPU 152; initial-target 14 CRDT; all three vterm suites; folding
Stage 2 48. All 12 CI checks green at merge. Stage 2 48. All 12 CI checks green at merge.
- **Stage 2 (the GPU panel band) is FRAMED, and its first two slices - **Stage 2 (the GPU panel band) is FRAMED; its first two slices have
have LANDED** — `docs/bottom-panel-stage2-framing.md` rev 6, four LANDED and its third is open as PR #187** —
`docs/bottom-panel-stage2-framing.md` rev 6, four
framing review rounds, no open framing items; the rev-5 framing review rounds, no open framing items; the rev-5
implementation split was explicitly approved 2026-07-27 and rev 6 implementation split was explicitly approved 2026-07-27 and rev 6
records PR #184's server-first compatibility and gate correction. records PR #184's server-first compatibility and gate correction.
It reserves protocol **v21** and ships as four serial It reserves protocol **v21** and ships as four serial
implementation slices: **2A** classified census routing + implementation slices: **2A** classified census routing +
per-window painter extraction (no wire change, #177), **2B-1** the per-window painter extraction (no wire change, #177), **2B-1** the
wire (#184), **2B-2** the daemon projection and epoch machine, wire (#184), **2B-2** the daemon projection and epoch machine
then **2B-3** the GPU band, compatible v21 activation, and the (implemented but not landed in PR #187), then **2B-3** the GPU band,
compatible v21 activation, and the
negotiated `panel_capable` flip. Production attachment remains v20 negotiated `panel_capable` flip. Production attachment remains v20
through 2B-2. Parent acceptance 3755 remains authoritative. through 2B-2. Parent acceptance 3755 remains authoritative.
Stage 3 is the adopter default flip. **2B-2 is the next slice, and Stage 3 is the adopter default flip. **Do not start 2B-3 until PR
it branches from `0442d78` or newer.** #187 lands.** Its branch, checkpoints, two review rounds, verification,
and exact recovery commands live in `docs/active-work.md`.
- **The §1.3 census is CLASSIFIED, not uniformly redirected.** Only the - **The §1.3 census is CLASSIFIED, not uniformly redirected.** Only the
Projection class (#1#12, #21#22) routes through Projection class (#1#12, #21#22) routes through
`primary_document_window`; focus/input (#13#15, #23), focus chrome `primary_document_window`; focus/input (#13#15, #23), focus chrome