diff --git a/docs/active-work.md b/docs/active-work.md index 21c9f7b..234bb02 100644 --- a/docs/active-work.md +++ b/docs/active-work.md @@ -270,7 +270,33 @@ hazard in a shape that looks committed. **A documented error message that never appears is worse than no documentation**, because the reader waits for a signal that is not coming. -## Panel cell-mapping generation (v25) — REBASED, FULL GATE GREEN, review round 4 fixed +## Panel cell-mapping generation (v25) — MERGED as #242 (`47b5463`) + +- **MERGED 2026-08-20T17:25:01Z** at approved head `61f0faf`, merge + commit `47b5463`, via `--match-head-commit` so the merge is provably + of the reviewed head. **14/14 CI green on that exact head**, and the + full 16-stage local gate green on it too (log + `20260820T163107Z-879828`), with `HEAD` and a clean worktree captured + before and after the run. +- **`PROTOCOL_VERSION` is now 25.** `PANEL_MAPPING_MIN_VERSION` is a + literal 25; `ADVERTISED_PROTOCOL_VERSION` stays pinned at **20**. GUI + arc 1e's `OpenTarget` moved to **v26**, corrected in + `docs/gui-stage1-input-framing.md` by the slice itself. +- **Replay effects remain `panel-pointer-replay`'s** — this slice + shipped the trigger and the state, not the effects. That lane is now + unblocked and is the next step in the arc. +- **Review round 4 fixed one functional defect**: both inbound arms + discarded the dispatcher's bool and updated the accepted-gesture + latch unconditionally, so a rejected `Down` armed and a rejected `Up` + consumed a real gesture. Both arms now gate on the return, and + `dispatch_semantic_panel_pointer` is `#[must_use]` so a future + discarded answer is a clippy failure. Four rows cover it, each with a + positive control, and three mutations each bite their named rows. +- **`docs/ci-red-signatures.md` gained U10** from this lane's gating. +- **U11 is recorded below from PR #242's comment**, per the deferral + agreed during review. + +### Superseded lane state, kept only for the record - **BASE IS `5f2015c`**, current `githubsucks/main`. Rebased there cleanly, no conflicts; the two commits picked up are docs-only (the @@ -1275,7 +1301,19 @@ from #171 and #215. an otherwise unchanged gate, a distinct `error` outcome, and a non-Linux-unix statement. -## `scripts/gate` TMPDIR isolation — PR #240 OPEN +## `scripts/gate` TMPDIR isolation — MERGED as #240 (`72da24a`) + +- **MERGED 2026-08-13T20:12:58Z** at head `cf09f5a`, merge commit + `72da24a`. Absorbed 2026-08-20; the block below was written while the + PR was open and is kept for its reasoning, not its status. +- **Its isolation earned itself back during §5b review round 4.** Two + `m4_24_*` base-resolution rows were reported as pre-existing local + failures that only CI could arbitrate. They were neither: the sweep + had been run BY HAND, outside `scripts/gate`, so it inherited + `TMPDIR=/tmp` — and `/tmp/.git` exists on that machine, which project + detection walks up into. Run through the gate, both rows pass. **The + hazard this lane fixed is exactly the one that reappeared the moment + the gate was bypassed.** **Written with the branch's first commit**, per the standing correction from #171 and #215. @@ -1368,7 +1406,11 @@ from #171 and #215. - **Out of scope, deliberately:** the overdue absorption of #239. This lane is the gate fix and nothing else. -## GUI arc Stage 1a — `TextInput` at v24 — PR #239 OPEN +## GUI arc Stage 1a — `TextInput` at v24 — MERGED as #239 (`ca92796`) + +- **MERGED 2026-08-13T13:00:14Z** at head `36a3296`, merge commit + `ca92796`. Absorbed 2026-08-20; the block below was written while the + PR was open and is kept for its reasoning, not its status. **Written with the branch's first commit**, per the standing correction from #171 and #215. diff --git a/docs/ci-red-signatures.md b/docs/ci-red-signatures.md index e5acbbc..fdf1360 100644 --- a/docs/ci-red-signatures.md +++ b/docs/ci-red-signatures.md @@ -929,3 +929,37 @@ binary — and it remains unrun. Until it runs, this family should not consume another review round. **Widening a budget is not the fix**, and R1 already rejected it. + +### U11 — `dispatch_parse_round_trips_a_rust_source_file`, macOS `lua54`, one occurrence, green on rerun + +Recorded from PR #242, 2026-08-20, on head `61f0faf` — the head that +merged as `47b5463`. **Deferred to post-merge absorption by decision**, +so that no docs commit would invalidate that PR's head-exact gate +evidence; the fragments lived in +[PR #242's comment](https://github.com/levineuwirth/pmacs/pull/242#issuecomment-5359360750) +in the interim, because the raw job log is machine-local and **not +portable evidence**. + +| field | value | +| --- | --- | +| **selector** | `--lib async_runtime::tests::dispatch_parse_round_trips_a_rust_source_file` | +| **job / flavor** | `Test (macos-latest / lua54)`, run `32393462318` | +| **required fragment** | `trivial parse should be fast`, panicking at `src/async_runtime.rs:3328` | +| **counts** | `1960 passed; 1 failed; 3 ignored`, finished in 64.49s | +| **attempt 1** | job `96504773333` — **failure** | +| **attempt 2, rerun** | job `96511228345` — **success** | +| **status** | **one occurrence, not reproduced** | +| **THE MARGIN IS UNRECOVERABLE** | the assertion is `assert!(duration_ms < 100, "trivial parse should be fast")` — a 100ms wall-clock budget on a 30-byte source, **with `duration_ms` omitted from the message**. The red cannot say whether it missed by 1ms or by 900ms, and **no future occurrence can be compared against this one**. This is a property of the assertion, not of the observation | +| **what IS established** | **non-determinism across these observations, and nothing more.** Four passes of the same selector on the exact head in local gate `20260820T163107Z-879828` — one each in `03-lib`, `04-lib-crdt`, `13-sweep`, `15-sweep-crdt`. Two `Test (macos-latest / luajit)` greens on the same commit and OS, jobs `96504773331` and `96511275402`. `src/async_runtime.rs` **byte-identical to `main`**, blob `9310ce3fca8c5fd8ebd39a68c29ad6985e256049` on both sides — not merely an empty diff | +| **what is NOT** | environmental cause, or harmlessness. The luajit greens narrow the red below "macOS at this commit"; they do not explain it. **A green rerun establishes intermittence only** | +| **relation to U10** | **not U10.** Different selector, different fragment, different subsystem, and remote rather than local. Filed separately for the same reason U10 was filed apart from U6 and U7 | + +**A recurrence is not another instance of this row.** Because the margin +was never captured, a second red cannot be compared with the first, so +it owes a **merge-base control** before any claim is made about the +tree. + +**The one-line fix that would make this family diagnosable** — include +the measured `duration_ms` in the assertion message — is **owed its own +small lane**. It was deliberately kept out of #242, whose diff does not +touch `src/async_runtime.rs`.