Skip to content

M9: CI-matrix tidy-up (§14.11) — reconcile spec to the actual lanes#33

Merged
guyo13 merged 1 commit into
mainfrom
claude/youthful-hamilton-tncsqv
Jul 1, 2026
Merged

M9: CI-matrix tidy-up (§14.11) — reconcile spec to the actual lanes#33
guyo13 merged 1 commit into
mainfrom
claude/youthful-hamilton-tncsqv

Conversation

@guyo13

@guyo13 guyo13 commented Jul 1, 2026

Copy link
Copy Markdown
Owner

M9 §14.11 — CI-matrix tidy-up (the final M9 build slice)

Docs-only reconciliation. The eight workflows already implement the intended per-PR / nightly / manual matrix — but §14.11 predated the M9 additions (fuzz F1–F4, Miri, !Sync/dir-lock, soak) and no longer described what actually runs. This rewrites §14.11 into a faithful index, with no src/ or workflow behavior change.

The honest outcome of a "tidy-up" slice: the workflows were already right; the spec had drifted. Rather than invent churn, this makes the doc match reality and states plainly what is not yet automated.

What changed

  • Per-PR (blocking) row now enumerates the real ci.yml jobs instead of a stale summary:
    • rustfmt + clippy (-D warnings, all targets)
    • build + test = §14.1 codec/CRC vectors + §14.2 (reduced proptest) + §14.7 zero-alloc assertion + cargo bench --no-run + the §14.6 !Sync compile-fail (tests/ui.rs trybuild) & dir-lock / Send tests — all under cargo test
    • MSRV (1.85) cargo check --all-targets --locked
    • Miri (codec subset) — noting this is the whole Miri-executable surface (file-backed paths use foreign syscalls Miri can't run)
    • fuzz smoke (F1/F2/F3/F4) — BLOCKING (a reproducible crash is a real D1–D11 bug and reds the PR; distinct from the nightly time-boxed lane; never gates an H1 dispatch)
    • §14.4d dir-fsync presence (strace)
    • plus the paths-filtered per-PR gates: m8-macos.yml (H4 Half A), lazyfs.yml, m8.yml
  • Nightly (scheduled) row names each workflow with its staggered cron — bench.yml 03:17 / fuzz.yml 04:17 / m8-dmflakey.yml 04:23 / soak.yml 05:17, all CONTINGENT + dispatch — and honestly flags that full-iteration §14.2/§14.3 and the §14.9 differential are not yet automated nightly (covered at PR granularity by the reduced proptest + the M6 model_oracle suite). No over-claim.
  • FS-matrix honesty note (plan Slice 9): the FS matrix is meaningful only for the durability/metadata-fault gates (§14.4b LazyFS, §14.8 H3-physical, §14.4d); the byte-level codec/CRC/recovery-classifier logic the §14.5 fuzz + §14.6 Miri lanes exercise is filesystem-independent, so those lanes run once and are not multiplied across the matrix. Over-claiming an "all-FS fuzz matrix" would be dishonest.

No gate over-claimed

No long-run gate is marked green: the §14.13 N-CPU-hour fuzz row and the multi-hour soak stay OPEN-pending a dedicated runner; the Miri / !Sync / zero-alloc DoD rows remain DONE.

Verification

Docs-only (CLAUDE.md + docs/wal_design_v6.md). cargo fmt --check, cargo test, cargo clippy --all-targets -D warnings unaffected/green.

M9 status

With this, M9 is feature-complete — F1–F4 ✅, Miri ✅, !Sync/dir-lock ✅, loom removed (characterized) ✅, soak ✅, CI-matrix ✅. The only remaining items are the standing owner / dedicated-runner observations: the F1–F4 N-CPU-hour fuzz gate and the multi-hour soak gate (both infeasible in-session; wired as contingent scheduled/dispatch lanes with loud banners until first observed).

🤖 Generated with Claude Code


Generated by Claude Code

The final M9 slice. Docs-only reconciliation: the 8 workflows already
implement the intended per-PR/nightly/manual matrix, but §14.11 predated the
M9 additions. Rewrite it into a faithful index.

- Per-PR (blocking) row now enumerates the real ci.yml jobs: rustfmt+clippy;
  build+test (§14.1 vectors + §14.2 reduced proptest + §14.7 zero-alloc +
  bench --no-run + the §14.6 !Sync trybuild compile-fail + dir-lock/Send);
  MSRV 1.85; Miri (codec subset); fuzz smoke F1-F4 (BLOCKING — a crash reds
  the PR); §14.4d dir-fsync presence (strace); plus the paths-filtered per-PR
  gates (m8-macos H4 Half A, lazyfs, m8).
- Nightly row names each scheduled workflow with its staggered cron
  (bench 03:17 / fuzz 04:17 / dm-flakey 04:23 / soak 05:17), all contingent,
  and honestly flags that full-iteration §14.2/§14.3 + §14.9 differential are
  not yet automated nightly (covered at PR granularity by reduced proptest +
  the M6 model_oracle suite).
- FS-matrix honesty note (plan Slice 9): the FS matrix matters only for the
  durability/metadata-fault gates (LazyFS/H3/§14.4d); the byte-level
  codec/CRC/recovery-classifier logic the fuzz + Miri lanes exercise is
  filesystem-independent, so those lanes are not multiplied across the matrix
  — over-claiming an "all-FS fuzz matrix" would be dishonest.

No long-run gate marked green: the §14.13 N-CPU-hour fuzz row and the
multi-hour soak stay OPEN-pending a dedicated runner. No src/ or workflow
behavior change (cargo fmt/clippy/test unaffected).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Rpbwt9JT56hQvVXiqTS131
@guyo13 guyo13 merged commit 649faa7 into main Jul 1, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants