docs: correct Stage 1b gate evidence

Narrow U21 to same-run intermittence without excluding an intermittent
tree effect, and preserve the empty-stdout mechanism boundary from U2.

Correct the shell-status explanation, record the exit-143 sweep
termination, and mark the full pre-PR gate complete.
This commit is contained in:
Levi Neuwirth 2026-09-02 16:06:09 +02:00
parent 9a3a78f222
commit 3a2816b019
No known key found for this signature in database
2 changed files with 33 additions and 14 deletions

View File

@ -322,7 +322,8 @@ lifetime tables made frontend-specific. **The both-axis effect witness
is no longer owed**; see the completion note below, which is the
authority on what this lane still has outstanding.
**Landed so far** (latest verified code head `9ec4ff1`; **full gate green at `04ebd2f`**)**:** B1's per-target fractional
**Landed so far** (latest verified code head `9ec4ff1`; **full gate green
at `04ebd2f`**, run `20260902T125049Z-4162684`, all 16 steps)**:** B1's per-target fractional
wheel residual (the producer), B2's daemon-side horizontal panel leg,
B3/B7's shared `scroll_window_columns` with its saturated bound and wrap
pin, B4's middle-click PRIMARY paste, **B6's minimap wheel routing**,
@ -499,7 +500,8 @@ L8b–L8e, and that bullet's GPU half described the latch that no longer
exists.
**Owed outright: nothing. The implementation and its evidence are
complete**, and the lane's next step is the full pre-PR gate.
complete.** The full pre-PR gate is green at `04ebd2f`; the lane is
held immediately before opening its PR.
The last three closed in order:
@ -527,7 +529,8 @@ The last three closed in order:
local document scroll beside the panel event fails on the completion
transcript. The focused row is green outside the socket-restricted
sandbox; package-wide all-target clippy, fmt and `git diff --check`
are clean. The full pre-PR gate remains next.
are clean. The code later passed the full pre-PR gate at `04ebd2f`;
no further gate is owed before the PR.
- **R4 and R5** (`e5ab16c`).
- **B1's disposal half** (`241e82e` for panels, `a7006fa` for
terminals) — and it needed mechanism, not just a row. `BufferId` keying distinguishes panel A from panel B for
@ -603,10 +606,25 @@ produces: nothing. Fifteen minutes of silence read as progress. The
question to ask before arming any watch is *if this process died right
now, would my filter emit anything?*, and here the answer was no.
**A trailing `; echo` in the same launch also swallowed the exit code.**
`./scripts/gate … > log 2>&1; echo "exit=$?"` reports the *echo's*
status, so the harness recorded exit 0 for a gate that failed at step
03. Read the gate's own summary line, never the wrapper's.
**A trailing `; echo` in the same launch also hid the exit code from
the caller.** In
`./scripts/gate … > log 2>&1; echo "exit=$?"`, `$?` is expanded before
`echo` runs, so the text printed is the **gate's** status. The compound
shell command itself, however, returns the later **echo's** status —
normally zero — so the harness recorded exit 0 for a gate that failed
at step 03. Preserve and re-emit the status explicitly, or read the
gate's own summary line; do not treat the wrapper's status as the
gate's.
**A later attempt was terminated by the harness, not by a test red.**
Run `20260902T124755Z-4122046` reached step `15-sweep`; that stage's log
contains two compilation lines followed by `Terminated`, with **zero
`test result:` lines**, and the gate reported `FAILED (exit 143)`.
The preceding fourteen stages had run successfully, but the sweep had
not executed a test. This is evidence that the harness's background
lifetime expired, not evidence about the tree. A monitor must observe
process exit as well as filtered gate output, and the launch mechanism
must outlive the full gate.
### A local false compile red from the shared target directory

View File

@ -1136,19 +1136,20 @@ either** — see the relation cells below, which are the point of the row.
| **required fragments** | ``canonical mode should leave echo enabled (no `-echo` flag); stty -a output was: ""`` |
| **NOT fragments** | the `:LINE` suffix (`src/process.rs:3981` at this head) and the pass/fail counts — both occurrence-specific |
| **status** | **one occurrence**, `2008 passed; 1 failed; 3 ignored` |
| **what IS established — an IN-RUN control, the strongest kind** | the same selector **passed in step `04-lib-crdt` and step `15-sweep` of the SAME gate run**, on the same tree, minutes apart. The tree is therefore excluded as a cause without relying on a later rerun at different conditions. Also green in three subsequent full `--lib` runs and once isolated (`1 passed`, 0.01s) |
| **what IS established — two IN-RUN repetitions** | the same selector **passed in step `04-lib-crdt` and step `15-sweep` of the SAME gate run**, on the same tree, minutes after the step-03 red. This establishes within-run intermittence and excludes a deterministic failure on that tree. It does **not** exclude the tree as a cause of an intermittent failure or a changed failure rate. Also green in three subsequent full `--lib` runs and once isolated (`1 passed`, 0.01s) |
| **what is NOT** | cause. **The load confound is once again not measured at the moment of failure** — the readings that exist were taken afterwards: 1-minute 4.15, 4.38, 6.43, 6.54 with the 5-minute figure at 9.6–10.0, i.e. a genuinely busy machine, but *after* the fact. This is the same gap U15 exists to close and it is still open |
| **relation to U2 — same family, different selector** | U2's fragment is identical (`stty -a output was: ""`) but its selector names `m6_1_pty_raw_mode_disables_kernel_echo`. Raw passed here |
| **relation to U9 — the closest row, and still not a match** | U9's selector requires the canonical PTY test **and** `composition_overhead_under_ten_percent` failing together in `11-sweep`. Here the PTY test redded **with no companion at all**, in `03-lib`, and the composition test passed. U9's own framing distinguishes "canonical alone" from *raw*; this is canonical alone from *everything*, which no existing row has shown |
**What this adds to the family is the isolation.** Every prior
occurrence of this fragment came paired — raw with canonical (U2's
second), or canonical with a budget test (U9). A single PTY assertion
failing by itself, in the narrowest step, with two green runs of the
same selector bracketing it in the same gate, is the cleanest evidence
yet that the fragment reports **a delivery or collection failure rather
than anything about termios** — which is exactly what U2 says the
fragment can and cannot show.
second), or canonical with a budget test (U9). Here one PTY assertion
failed by itself in the narrowest step, then the same selector passed
twice later in the same gate. The fragment establishes only that **the
supervisor collected empty stdout**; it shows no incorrect termios
state and does not distinguish among {the child never wrote, PTY
delivery lost the bytes, event collection missed them}. That is the
same evidence boundary U2 records.
**Do not fold this into U2 or U9.** Both rows exist because their
authors resisted the same pull, and each records a combination the