From ea786a2878ffe025176bb6edee8ec7fda8a77ec3 Mon Sep 17 00:00:00 2001 From: Levi Neuwirth Date: Mon, 31 Aug 2026 19:47:09 +0200 Subject: [PATCH] docs(ci-reds): U16 reproduced, and U19 is new The gate verifying the R7 renumbering redded twice in `07-sweep`. `cache_survives_across_fetcher_instances` is **U16's second occurrence** --- same selector, same panic site, both required fragments. It is the first time that row has reproduced, and it settles an earlier withdrawal in the right direction: claiming "the window is narrow" from eight green runs was wrong, and the failure came back within the day. The child-inheritance chain stays a candidate; this occurrence demonstrates it no more than the first did. `terminal_bell_baseline_suppresses_history_and_delivers_each_new_bell_once` is new, recorded as U19. It is a deadline but not the budget family's kind: those assert work finishes in 1ms or 200ms, while this asserts an event arrives at all inside FIVE SECONDS. Folding it into that family would blur the one distinction those rows have. Like R1, its assertion has `Instant::now()` in hand at the panic and reports none of it, so the margin is unrecoverable and a future occurrence will not be comparable to this one. That is the second place in this codebase where the same omission costs the same thing. --- docs/active-work.md | 17 ++++++++++++-- docs/ci-red-signatures.md | 47 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 61 insertions(+), 3 deletions(-) diff --git a/docs/active-work.md b/docs/active-work.md index fc07ad3..27afbc9 100644 --- a/docs/active-work.md +++ b/docs/active-work.md @@ -366,8 +366,8 @@ second clippy flavor to `scripts/gate` is a change to shared infrastructure and belongs in its own lane. Recorded so the next lane touching crdt-gated code does not rediscover it at CI. -**EIGHT registry rows moved on this lane** — R7, R6, U6, U14, U15, U16, -U17 and U18. *(This heading said "four" while listing more; corrected.)* +**NINE registry rows moved on this lane** — R7, R6, U6, U14, U15, U16, +U17, U18 and U19. *(This heading said "four" while listing more; corrected.)* - **R7's eleventh and TWELFTH occurrences** — the eleventh is the green/red pair whose heads differ by one markdown file, which excludes @@ -427,6 +427,19 @@ U17 and U18. *(This heading said "four" while listing more; corrected.)* control**, which is the case U11 motivated it for. It came back **green on the macOS legs**, so the inference it could have supplied is **unavailable**; recorded as a null result, as R1's row had to record its own; +- **U16 REPRODUCED** — second occurrence 2026-08-31, same step, same + fragments. It settles the earlier withdrawal in the right direction: + "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. +- **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. - **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 diff --git a/docs/ci-red-signatures.md b/docs/ci-red-signatures.md index 0ddf7d2..ae51aa6 100644 --- a/docs/ci-red-signatures.md +++ b/docs/ci-red-signatures.md @@ -1515,7 +1515,7 @@ which is why it is worth more than its one occurrence. | **selector** | `--lib packages::fetcher::tests::cache_survives_across_fetcher_instances` | | **job / flavor** | local (Linux), `scripts/gate` step `07-sweep` (`cargo test --workspace --no-fail-fast`) | | **required fragments** | `Unable to read current working directory: No such file or directory` + `remote did not send all necessary objects` | -| **status** | **new incident, one occurrence, not reproduced** | +| **status** | **SECOND OCCURRENCE 2026-08-31 — it reproduced, in the same step, with the same fragments** | | **what IS established** | the fragments, captured from the durable stage log at `src/packages/fetcher.rs:929`. `1989 passed; 1 failed`. The test spawns `git` against a `file://` remote in a temp dir | | **what is NOT** | that the mechanism below is what happened. It is a candidate with a citation, not a demonstrated chain | | **the observing tree** | the lane's docs-only commit. It touches `src/packages/` not at all | @@ -1570,6 +1570,16 @@ An earlier version added "and here it also says the window is narrow" — not recur in eight runs. It says nothing about the width of *this candidate's* window, which no measurement here has sized. +**SECOND OCCURRENCE, 2026-08-31, log `20260831T174104Z-3438184`, step +`07-sweep`** — same selector, same panic site `fetcher.rs:929`, both +required fragments, `1988 passed; 2 failed`. **This is the first time +the row has reproduced, and it settles the point above in the right +direction**: withdrawing "the window is narrow" was correct, because +eight green runs had not measured it, and the failure returned within +the day. The candidate mechanism in §"child inheritance" above is +unchanged and still a candidate — nothing in this occurrence +demonstrates the chain either. + **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 @@ -1713,6 +1723,41 @@ would pass is uninteresting — a transient network error is *expected* to pass on retry, and doing so would establish nothing while destroying nothing either. It is left for whoever next pushes to this branch. +### U19 — a terminal bell never arrives within a 5s poll + +Recorded on the CRDT identity-undo lane, 2026-08-31, local (Linux), +`scripts/gate` step `07-sweep`, log `20260831T174104Z-3438184` — the +**same run** that produced U16's second occurrence, and recorded +separately because the selectors and fragments differ. + +| field | value | +|---|---| +| **selector** | `--lib daemon::tests::terminal_bell_baseline_suppresses_history_and_delivers_each_new_bell_once` | +| **job / flavor** | local (Linux), `scripts/gate` step `07-sweep` (`cargo test --workspace --no-fail-fast`) | +| **required fragments** | `initial terminal bell timed out` | +| **status** | **new incident, one occurrence** | +| **what IS established** | panic at `src/daemon.rs:5296`, `1988 passed; 2 failed`. The assertion is a **5-second poll**: `while bell_count(buffer_id) != Some(1) { tick_processes(); assert!(Instant::now() < deadline); sleep(10ms) }` (`src/daemon.rs:5293`–`:5298`) | +| **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. + +**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 +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. + +**No rerun was performed on this selector**, and the row does not claim +intermittence it has not observed. + ### U13 — gate prune-reporting row receives empty child stdout in `sweep` Recorded during PR #244 review, 2026-08-29, on signed head `756c2b8`.