docs(ledger): the lane's PR and CI checkpoint, and the sweep that could not attribute itself
Fills in what could only be filled in after the fact: PR #216, the opening head's CI run, and the four-way sweep table. Both branch totals are exactly +4 on their baseline — the four witnesses, and nothing else moved. **A shared `CARGO_TARGET_DIR` makes a local sweep unattributable, and it bit this lane.** The branch `crdt` sweep first reported seven failures in three suites while the baseline `crdt` sweep was clean. All three spawn the REAL `pmacs` binary out of the target directory, and the failure text named its own cause — "daemon does not advertise required capabilities … start the daemon built with the `crdt` feature". A concurrent `cargo test --workspace` in a DIFFERENT WORKTREE, at default (non-`crdt`) features and the same `CARGO_TARGET_DIR`, had overwritten `target/debug/pmacs` mid-sweep. Confirmed with `pgrep` while it was happening, and discriminated by re-running the same three suites from the same tree with a dedicated target directory: 41/41 green, then the whole configuration swept again there. Recorded in the handoff's standing hazards, beside the feature-blindness rule it rhymes with: a feature-flavored binary is a shared mutable file, not an artifact private to your invocation. The clean re-sweep left ONE failure, and it is recorded rather than rerun away: `lsp_dispatch_seams_acceptance acc33_...`. It is a new incident by the registry's rules, and it is not attributable to this branch on a STRUCTURAL argument rather than on its green rerun — the only Rust change lives in `#[cfg(test)] mod tests`, which compiles into the lib test target alone, so an integration-test binary linking the non-`cfg(test)` lib is exactly what `main` builds. CI's `Test (crdt)` job passed at the same head and runs that suite. The 15/15 repetition set is the weakest of the five points, not the argument. No registry row is opened: the registry judges red CI runs and keys on linked CI occurrences. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
2d9c6787e4
commit
668fc72f23
|
|
@ -186,15 +186,14 @@ already approved. Stage 1 is acceptance 1–5; Stage 2 is acceptance 6–9.
|
|||
`githubsucks/main` @ `12f2970` (the #215 merge). Opened from an
|
||||
**isolated worktree** because the shared checkout was on another
|
||||
lane's branch with clean-but-foreign state; never switch it.
|
||||
- **PR: opened from this branch; the number and its first CI checkpoint
|
||||
land in the follow-up commit** — this block is written *with* the
|
||||
work, before the PR exists, so the row below is filled in rather than
|
||||
invented. **Checkpoints, newest last**, because a lane that records
|
||||
only one head goes stale on the next push:
|
||||
- **PR: <https://github.com/levineuwirth/pmacs/pull/216>**. This block
|
||||
was written *with* the work, before the PR existed, so the row below
|
||||
was filled in rather than invented. **Checkpoints, newest last**,
|
||||
because a lane that records only one head goes stale on the next push:
|
||||
|
||||
| head | CI run | result |
|
||||
|---|---|---|
|
||||
| *(opening head)* | *(pending — filled in once the run exists)* | — |
|
||||
| `2d9c678` | [31003333581](https://github.com/levineuwirth/pmacs/actions/runs/31003333581) | **14/14 green** — the opening head, including **both macOS legs**: R2's job (macOS / lua54) and R4's (macOS / luajit) |
|
||||
|
||||
**The branch tip is authoritative over any row here.** Verify with
|
||||
`git rev-parse githubsucks/ci-signal-hardening` rather than trusting
|
||||
|
|
@ -229,10 +228,62 @@ already approved. Stage 1 is acceptance 1–5; Stage 2 is acceptance 6–9.
|
|||
parallelism) **15/15**.
|
||||
- **Verification:** fmt, diff-check, clippy with and without `crdt`,
|
||||
`--lib` 1897, `--lib --features crdt` 2082, vterm Stage 2 9, m4 149,
|
||||
required GPU 221, and the **full serialized sweep in BOTH feature
|
||||
configurations against a `main` baseline** — the blindness the handoff
|
||||
§5 warns about, which is why the baseline is taken first. Each `--lib`
|
||||
figure is exactly one above #215's (1896 / 2081): the R2 witness.
|
||||
required GPU 221. Each `--lib` figure is exactly one above #215's
|
||||
(1896 / 2081): the R2 witness.
|
||||
- **Full serialized sweep in BOTH feature configurations, baseline
|
||||
first** — the blindness handoff §5 warns about, and the baseline is
|
||||
what makes any failure attributable:
|
||||
|
||||
| tree | config | suites | passed | failed |
|
||||
|---|---|---|---|---|
|
||||
| `main` @ `12f2970` | luajit | 108 | 3691 | 0 |
|
||||
| `main` @ `12f2970` | luajit,crdt | 108 | 3959 | 0 |
|
||||
| branch | luajit | 108 | 3695 | 0 |
|
||||
| branch | luajit,crdt | 108 | 3962 | **1 — see below** |
|
||||
|
||||
**Every total is exactly +4 on its baseline** — 3691→3695 and
|
||||
3959→3963 (3962 passed plus the one failure). Four witnesses, and
|
||||
nothing else moved.
|
||||
- **The one branch-`crdt` failure is recorded rather than rerun away.**
|
||||
`lsp_dispatch_seams_acceptance
|
||||
acc33_apply_edit_still_handled_with_a_response_subscriber` —
|
||||
*"the executeCommand response reaches its one-shot, left: 0, right:
|
||||
1"*. It is a **new incident** by the registry's rules (no row's
|
||||
fragments match), and it is **not attributable to this branch**, on a
|
||||
structural argument rather than on the green rerun:
|
||||
- the only Rust change is inside `#[cfg(test)] mod tests` in
|
||||
`src/process.rs`, which is compiled **only into the lib test
|
||||
target** — an integration-test binary links the non-`cfg(test)`
|
||||
lib, so this suite's artifact is what `main` builds;
|
||||
- the other change is a different test binary entirely;
|
||||
- CI's **`Test (crdt)` job passed at this same head**, and it runs
|
||||
this suite;
|
||||
- it occurred while a **second full workspace sweep** was running
|
||||
concurrently in another worktree, against a deadline-based fake-LSP
|
||||
one-shot;
|
||||
- the suite then ran **15/15 as a repetition set** — which, per this
|
||||
project's own rerun rule, establishes **intermittence only** and is
|
||||
the weakest of these five points, not the argument.
|
||||
|
||||
**No registry row is opened**, because the registry judges red **CI**
|
||||
runs and keys on linked CI occurrences; this is a local observation
|
||||
under known contention. If it appears in CI, it is a first recorded
|
||||
occurrence and gets a row then.
|
||||
- **A SHARED `CARGO_TARGET_DIR` MAKES A LOCAL SWEEP UNATTRIBUTABLE, and
|
||||
it bit this lane.** The branch `crdt` sweep first reported 7 failures
|
||||
in three suites while the baseline `crdt` sweep was clean. All three
|
||||
spawn the **real `pmacs` binary out of the target directory**, and the
|
||||
failure text named its own cause: *"daemon does not advertise required
|
||||
capabilities … start the daemon built with the `crdt` feature"*. A
|
||||
concurrent `cargo test --workspace` in a **different worktree**, with
|
||||
default (non-`crdt`) features and the same `CARGO_TARGET_DIR`, had
|
||||
overwritten `target/debug/pmacs` mid-sweep. Confirmed by `pgrep` while
|
||||
it was happening, and discriminated by re-running the same three
|
||||
suites from the same tree with a **dedicated** `CARGO_TARGET_DIR`:
|
||||
41/41 green, then the whole config swept clean the same way. **Give a
|
||||
sweep its own target directory whenever another worktree is live** —
|
||||
a feature-flavored binary is a shared mutable file, not a build
|
||||
artifact private to your invocation.
|
||||
|
||||
Recovery from a clean checkout:
|
||||
|
||||
|
|
|
|||
|
|
@ -317,6 +317,18 @@ someone forgot.
|
|||
`gpu_invocation_acceptance` tests fail on a missing `pmacs-gpu`
|
||||
binary. `cargo build --workspace --no-default-features --features
|
||||
luajit,crdt` is the invocation that produces both binaries.
|
||||
- **A shared `CARGO_TARGET_DIR` makes a local sweep unattributable.**
|
||||
Every worktree on this machine resolves to the same target directory,
|
||||
so `target/debug/pmacs` is a **shared mutable file**: a concurrent
|
||||
`cargo test --workspace` in another worktree, at default (non-`crdt`)
|
||||
features, overwrites the binary that a running `crdt` sweep is
|
||||
spawning. That produced seven failures in three real-daemon suites
|
||||
during the Stage 2 hardening sweep while the baseline was clean, and
|
||||
the failure text named its own cause — *"start the daemon built with
|
||||
the `crdt` feature"*. Confirmed with `pgrep` and discriminated by
|
||||
re-running from the same tree with a **dedicated**
|
||||
`CARGO_TARGET_DIR`. **Check for other live worktrees before believing
|
||||
a sweep failure, and give the sweep its own target directory.**
|
||||
- **A local sweep is blind to whichever feature configuration it does
|
||||
not build.** Stage 3's census and every verification sweep ran
|
||||
`--features luajit` WITHOUT `crdt`, so no crdt-gated suite was
|
||||
|
|
|
|||
Loading…
Reference in New Issue