From 45d438ccb332a413782b6fedc26608faad299353 Mon Sep 17 00:00:00 2001 From: Levi Neuwirth Date: Sat, 29 Aug 2026 16:59:10 +0200 Subject: [PATCH] docs(ci-reds): R7 sixth occurrence, and a gate run that is not a result The gpu stage failed with all three of R7's required fragments --- `transient sequence must attach`, `Handshake(Io(`, `BrokenPipe` --- at pmacs-gpu/src/attach.rs:1889, 283 passed and 1 failed. Isolated selector green three times afterwards, which is this row's established control. The tree exclusion is as strong as the fifth occurrence's: this lane's entire diff is src/async_runtime.rs, tests/m4_acceptance.rs and two docs. No pmacs-gpu file is touched, and the change is two assert! message strings. Records the run's other half honestly. The gate was in a background task killed at 314s and 07-sweep.log ends in Terminated, so the run is NOT a gate result. Stage 6 is evidence because it completed and reported; stage 7's absence is evidence of nothing. Distinguishing those is the same rule the handoff already carries about timeout-wrapped gates. Causal status unchanged: UNRESOLVED. A sixth lane touching a sixth unrelated surface saw the same three fragments, which strengthens "not lane-correlated" and settles nothing else. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_016bqGA6s9tTUFzYpbeW3tai --- docs/active-work.md | 10 ++++++++++ docs/ci-red-signatures.md | 31 ++++++++++++++++++++++++++++++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/docs/active-work.md b/docs/active-work.md index faeb276..abd8c36 100644 --- a/docs/active-work.md +++ b/docs/active-work.md @@ -311,6 +311,16 @@ from #171 and #215. wide enough to be complete also catches `Instant::now() < deadline` loop guards and `eval::` turbofish, and a sweep narrow enough to be accurate proves nothing about completeness. +- **GATE RUN 1 IS NOT A RESULT.** It ran in a background task that was + killed at 314s; `07-sweep.log` ends in `Terminated`. Stages 1–5 and 8 + were green and stage 6 (`gpu`) genuinely failed — that one completed + and reported — but the run as a whole proves nothing and must not be + read as a gate outcome. +- **That `gpu` failure is R7's SIXTH occurrence**, recorded in + `docs/ci-red-signatures.md`. All three required fragments, isolated + selector green three times, and **this lane touches no `pmacs-gpu` + file at all** — its whole diff is two `assert!` message strings and + two docs. - **Still owed, separately:** `workflow_dispatch` on `ci.yml`, and U9's discriminating control — pin test-binary concurrency to 1, then load a lone `--lib` binary — which has been named since 2026-08-09 and diff --git a/docs/ci-red-signatures.md b/docs/ci-red-signatures.md index 7c7a7f7..ec84773 100644 --- a/docs/ci-red-signatures.md +++ b/docs/ci-red-signatures.md @@ -496,12 +496,41 @@ Stage 4; the lane touches no `pmacs-gpu` code at all. | **selector** | `-p pmacs-gpu attach::tests::managed_retry_survives_transients_and_uses_the_successful_stream` | | **job / flavor** | local (Linux), `cargo test --workspace --features crdt --no-fail-fast`, i.e. under full-sweep load | | **required fragments** | `transient sequence must attach` + `Handshake(Io(` + `BrokenPipe` (or `code: 32`) | -| **status** | **FIFTH OCCURRENCE 2026-08-15 — causal status still UNRESOLVED.** The fifth carries the strongest tree exclusion this row has had: a **documentation-only diff** | +| **status** | **SIXTH OCCURRENCE 2026-08-29 — causal status still UNRESOLVED.** The fifth carries the strongest tree exclusion this row has had: a **documentation-only diff** | | **what IS established** | **three** occurrences at `pmacs-gpu/src/attach.rs:1680`, the second and third with all three fragments **verified** rather than inferred; the test drives a scripted transient-then-success sequence over a real socket pair. **The added GPU test is not the mechanism** — see the third-occurrence control below | | **what is NOT** | whether the broken pipe is the *fixture's* writer closing early or a real retry-path defect. **This row is not a claim that it is harmless** | | **rerun evidence** | occurrence 1: 6 isolated runs green, plus a full `--workspace --features crdt` sweep green (113 targets). Occurrence 2: **30 green on the observing branch** (15 isolated selector, 15 full `-p pmacs-gpu`) **plus a 15-run merge-base control, also green**. Occurrence 3: 5 isolated selector runs green, 10 full `-p pmacs-gpu` runs green **with** the added test, and **1 failure in 10 with the added test `#[ignore]`d** — the first rerun in this row's history that reproduced anything. Per the rerun rule the green runs establish intermittence only; the red control run is what carries the exclusion | | **retirement** | hardening that removes the named mechanism plus a discriminating witness — or a diagnosis showing the fixture, not the code, closes the pipe | +**Sixth occurrence — the parse-budget diagnosability lane, 2026-08-29, +local (Linux), `gpu` step.** All three required fragments present in the +durable log +(`pmacs-parse-budget-9c27ecfe/gate-logs/20260829T144541Z-350549/06-gpu.log`): + +``` +transient sequence must attach: Attach(Handshake(Io(Os { code: 32, +kind: BrokenPipe, message: "Broken pipe" }))) +``` + +at `pmacs-gpu/src/attach.rs:1889`, `283 passed; 1 failed`. + +* **The tree exclusion is as strong as the fifth's.** The observing + lane's entire diff is `src/async_runtime.rs`, + `tests/m4_acceptance.rs` and two docs — **no `pmacs-gpu` file, and no + file `pmacs-gpu` links against beyond the workspace it always did.** + The change is two `assert!` message strings. +* **Rerun: isolated selector green three times** (`1 passed`, 0.01 s + each), which is this row's established control shape. +* **THE SAME RUN'S `sweep` STAGE WAS TRUNCATED, and is not evidence.** + The gate was running in a background task that was killed at 314s; + `07-sweep.log` ends in `Terminated`. That stage's absence says + nothing, and the run as a whole is **not** a gate result. Only the + `gpu` stage's failure is, because it completed and reported. +* **Causal status: still UNRESOLVED**, and this occurrence does not + change it. It adds one more data point to "not lane-correlated" — a + sixth lane, touching a sixth unrelated surface, seeing the same + three fragments. + **Fifth occurrence — panel cell-mapping generation (§5b) framing, 2026-08-15, local (Linux).** The `scripts/gate` **`gpu` step** again, the same flavor as occurrence 2, inside a `--protocol` run