docs(ci-reds): U19 WAS rerun, and three more overstatements withdrawn

U19 said "no rerun was performed on this selector". The very next gate
run was one: it passed in `03-lib`, `04-lib-crdt` and the exact
`07-sweep` context it failed in, at ea786a2. So did U16's selector,
after its second occurrence. Both rows now record those passes and
classify as intermittent. Writing "no rerun was performed" in the same
commit whose gate reran it is the kind of claim this file exists to
catch.

U19 also overstated three things. The evidence shows no bell was
OBSERVED within five seconds --- not that one "never comes", and not
that scheduling cannot explain it. "Three orders of magnitude of slack"
does not hold against the 200ms budget it cited: 5s is 5000x of 1ms but
only 25x of 200ms, so the distinction from the budget family is one of
degree. And adding an elapsed value later cannot make a future margin
comparable with THIS unmeasured one --- that margin is gone for good; it
only makes future failures comparable with each other.

R7 kept a sentence reconstructed before the renumbering: its "prior five
spread across lanes and months" were eight, and not evenly spread ---
three of them fall on one branch on 2026-08-15. The line census skipped
occurrence five, whose block never captured a line; it is now marked
unrecorded rather than guessed or omitted.

U16's introduction still said it was "worth more than its one
occurrence" while its status said second.
This commit is contained in:
Levi Neuwirth 2026-08-31 20:17:45 +02:00
parent ea786a2878
commit 03204cc8af
No known key found for this signature in database
2 changed files with 58 additions and 27 deletions

View File

@ -432,14 +432,19 @@ U17, U18 and U19. *(This heading said "four" while listing more; corrected.)*
"the window is narrow" was wrong to claim from eight green runs, and
the failure returned within the day. The child-inheritance chain
stays a candidate; this occurrence demonstrates it no more than the
first did.
first did. **It then passed in all three stages of the next gate
run** — two reds and many greens across two days, intermittent at a
rate nothing has measured.
- **U19, new** — `terminal_bell_baseline_…` timed out on a **5-second**
poll for a bell that never arrived, in the same run as U16's second.
A deadline but **not** the budget family's kind — those assert work
finishes in 1ms or 200ms; this asserts an event arrives at all inside
five seconds. Like R1, **its assertion reports no elapsed value**, so
the margin is unrecoverable and a future occurrence will not be
comparable to it.
poll, in the same run as U16's second. The evidence is that **no bell
was observed within five seconds** — not that one never came, and not
that scheduling cannot explain it. A much slacker deadline than the
budget family's (5000× the 1ms budget, but only **25×** the 200ms
one), so the distinction is of degree rather than kind. Like R1, **its
assertion reports no elapsed value**, so **this** margin is gone for
good; adding it later would make future occurrences comparable **to
each other**, not to this one. **It passed in all three stages of the
next gate run**, so it is intermittent.
- **U18, new** — `Test (ubuntu-latest / luajit)` died in **toolchain
setup**, before any `cargo` command ran: `go install gopls@v0.16.2`
hit `INTERNAL_ERROR` from `sum.golang.org` while verifying

View File

@ -596,7 +596,7 @@ Stage 4; the lane touches no `pmacs-gpu` code at all.
| **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** | **TWELFTH OCCURRENCE 2026-08-31 — causal status still UNRESOLVED.** The eleventh carries the strongest tree exclusion this row has had, and it supersedes the sixth's: two consecutive gate runs on ONE worktree whose heads differ by a single markdown file, the first all-green and the second red. **NOTE: the numbering was wrong twice over.** The row carried TWO blocks labelled "fourth" (D3 on 2026-08-11, TMPDIR isolation on 2026-08-13), and **two further full-fragment occurrences of 2026-08-15 sat in `docs/active-work.md` marked "owed to the registry" and were never absorbed** (logs `20260815T095532Z`, `20260815T100719Z`). Renumbered by date with both defects fixed; the count below is the total |
| **what IS established** | **TWELVE occurrences.** The line moves as `attach.rs` changes and this row treats a `:LINE` suffix as occurrence-specific: occurrences **one through four** report `pmacs-gpu/src/attach.rs:1680`, the sixth through eighth `:1728`, and the ninth through twelfth `:1889`. The second and third carry all three fragments **verified** rather than inferred; so do the seventh and eighth. 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 established** | **TWELVE occurrences.** The line moves as `attach.rs` changes and this row treats a `:LINE` suffix as occurrence-specific: occurrences **one through four** report `pmacs-gpu/src/attach.rs:1680`; the **fifth records no line at all** — its block never captured one, and it is marked unrecorded rather than guessed; **six through eight** report `:1728`; **nine through twelve** report `:1889`. The second and third carry all three fragments **verified** rather than inferred; so do the seventh and eighth. 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 |
@ -717,8 +717,13 @@ failure — so this pair is not confounded by a truncation the way the
ninth was.
**Two consecutive in-gate failures is new for this row**, whose prior
five were spread across lanes and months. It prompted a narrowing, and
the narrowing is the useful part.
**eight** were spread across lanes and weeks — **though not evenly**:
three of the eight fall on 2026-08-15, on one branch and one machine.
*(This sentence said "prior five … across lanes and months" until the
renumbering of 2026-08-31; it was written before the 2026-08-15 pair was
absorbed and before the duplicate "fourth" was found, and it was wrong
about the count and the spread.)* It prompted a narrowing, and the
narrowing is the useful part.
**A THIRD IN-GATE RUN WAS GREEN** (head `68a16f9`, log
`20260829T152024Z-563254`, all eight stages, zero failures anywhere).
@ -1505,10 +1510,11 @@ isolation by U7. Intermittence only, per the rerun rule.
### U16 — a git invocation finds its working directory deleted
Recorded on the CRDT identity-undo lane, 2026-08-31, local (Linux),
`scripts/gate` log `20260831T083021Z-272257`, step `07-sweep`. **Not a
budget row** — nothing here is a clock. It is the only row in this file
that arrives with a **named candidate mechanism inside the test suite**,
which is why it is worth more than its one occurrence.
`scripts/gate` log `20260831T083021Z-272257`, step `07-sweep`, **and
again the same day** — see the second occurrence below. **Not a budget
row** — nothing here is a clock. It is the only row in this file that
arrives with a **named candidate mechanism inside the test suite**,
which is why it was worth recording before it had reproduced.
| field | value |
|---|---|
@ -1580,6 +1586,12 @@ the day. The candidate mechanism in §"child inheritance" above is
unchanged and still a candidate — nothing in this occurrence
demonstrates the chain either.
**And it passed again immediately after**, in all three stages of the
next gate run — `03-lib`, `04-lib-crdt` and the same `07-sweep` context
— at `ea786a2`, log `20260831T174716Z-3535694`. Two reds and many greens
across two days: **intermittent**, at a rate nothing here has
measured.
**Not folded into U14 or U15.** Different selector, different fragments,
different step, and a different kind of failure: those are wall-clock
budgets under load, this is a race over process-global state. U14's
@ -1740,23 +1752,37 @@ separately because the selectors and fragments differ.
| **what is NOT** | whether the bell never arrived or arrived late. The loop cannot tell those apart, and **the panic reports no elapsed value** — R1's complaint about its own assertion, in a second place |
| **the observing tree** | a documentation-only commit |
**It is a deadline, but not the budget family's kind.** U6, U7, U9, U10,
U12 and U15 assert that work finishes *fast* — 1ms, 1.10×, 200ms. This
asserts that an event **arrives at all** inside five seconds, which is
three orders of magnitude of slack. A 4.5% overshoot on a 1ms budget is
a scheduling story; a 5-second wait for a bell that never comes is not
the same shape, and folding it into that family would blur the one
distinction those rows have.
**It is a deadline, but a much slacker one than the budget family's.**
U6, U7, U9, U10, U12 and U15 assert that work finishes *fast* — 1ms,
1.10×, 200ms. This one allows **five seconds** for an event to be
observed at all: 5000× the 1ms budget, but only **25×** the 200ms one.
*(An earlier version said "three orders of magnitude", which does not
hold against the 200ms row it was comparing to.)* Folding this into that
family would still blur a real distinction, but the distinction is one
of degree, not of kind.
**What the evidence supports is narrower than the earlier wording.** It
shows that **no bell was observed within five seconds** — not that the
bell "never comes", and **not that scheduling cannot explain it**. Five
seconds is a long time on an idle machine and a short one on a loaded
one, and nothing here measured which this was.
**What it shares with R1 is the missing measurement.** `Instant::now()`
is in hand at the panic and the message reports none of it, so this
is in hand at the panic and the message reports none of it, so **this**
occurrence's margin is unrecoverable — exactly what R1's row records
about itself, and what U11 cost this project once already. **A future
occurrence would be comparable to this one only if the assertion carried
its elapsed value**, and it does not.
about itself, and what U11 cost this project once already. **Adding the
elapsed value would not make a future occurrence comparable to this
one** — that margin is gone for good. It would make future occurrences
comparable **to each other**, which is the whole of what the change buys
and is still worth having.
**No rerun was performed on this selector**, and the row does not claim
intermittence it has not observed.
**Reruns: it PASSED in all three stages of the next gate run** — `03-lib`,
`04-lib-crdt` and the exact `07-sweep` context it failed in — at
`ea786a2`, log `20260831T174716Z-3535694`. **So it is intermittent.**
An earlier version of this row said "no rerun was performed"; the very
next gate run was one, and the row said otherwise until review caught
it. Per this file's rerun rule, three green runs establish
**intermittence only**.
### U13 — gate prune-reporting row receives empty child stdout in `sweep`