Commit 3d7e8dc
fix(ci): green the remaining gates and rebuild the config files honestly (#130)
Follow-on to #129. That PR made the two dead gates *run*; this one makes
the remaining four checks *pass*, and replaces four config files that a
sweep had overwritten with generic estate boilerplate.
## Gates
### Rust CI — `clippy -D warnings` (was exit 101)
~32 lints. Most came straight from `cargo clippy --fix`. Two groups
needed judgement:
- **19 × `&[x.clone()]` → `std::slice::from_ref(&x)`** — single-element
slices; drops a needless clone.
- **5 × `clippy::approx_constant` — a false positive.** Every hit is the
literal `3.14` used as arbitrary decimal test data: `abs(-3.14) ==
3.14`, a JSON float round-trip, a channel send/receive. None of them
mean π. Substituting `std::f64::consts::PI` would change what the tests
assert, so the test modules carry a narrowly scoped `#[allow]` with the
reason written beside it.
**This failure was masking three other jobs.** `Cargo audit`, `Cargo
test` and `Coverage` were all `skipped` behind it. Tests now actually
run: **236 pass, 0 fail.**
### Cargo Audit + Security — RUSTSEC-2026-0190
Both were red on the same advisory (unsoundness in `anyhow`'s
`Error::downcast_mut()`).
The plan was a time-boxed `audit.toml` ignore. It turned out not to be
needed: `anyhow` is transitive and **1.0.104 is released**, so this is a
real fix. Bumped `1.0.102 → 1.0.104`; `cargo audit -D warnings` now
exits 0. **No suppression file added.**
### ClusterFuzzLite — `open Dockerfile: no such file or directory`
`.clusterfuzzlite/` holds a `Containerfile` per the estate's
podman-first naming, but ClusterFuzzLite hardcodes
`.clusterfuzzlite/Dockerfile`. Added `Dockerfile` as a **symlink** to
`Containerfile` (git mode `120000`), so the tool finds the name it
demands while the estate convention remains the single source of truth.
## Config files
These carried generic multi-language boilerplate that didn't describe
this repo — and in two cases actively contradicted it.
| File | What was wrong |
|---|---|
| `mise.toml` | `rust = "latest"` **against** `rust-toolchain.toml`'s
deliberate `1.96.0` pin; declared
node/python/go/java/bun/npm/yarn/pnpm/pip — **all BANNED by this repo's
own `.claude/CLAUDE.md`**; `[alias]` chained `cargo test \|\| npm test
\|\| go test ./...` |
| `.tool-versions` | `rust stable` — same contradiction |
| `.editorconfig` | Covered Elixir/ReScript/Zig/Ada; **omitted Lean,
Coq, ocamllex/menhir and `.woke`/`.wl`** |
| `.gitattributes` | Same — absent languages in, present languages out |
| `.gitignore` | Cruft for absent languages; missing `*.olean`,
`*.ilean`, `.lake/`, Idris `*.ttc` |
| `guix.scm` | Licence field that **could never have evaluated** |
Two of these deserve spelling out.
**The `mise.toml` alias block was a fake gate by construction.** `test =
"cargo test || npm test || go test ./..."` converts a genuine `cargo
test` failure into an attempt at two toolchains that don't exist here.
The pin contradiction matters for the same reason: `rust-toolchain.toml`
documents that a drifting `stable` once broke *this very clippy gate*
with lints local clippy couldn't see.
**`guix.scm`'s licence was broken two ways:**
```scheme
(license ((@@ (guix licenses) license) "MPL-2.0" "..."))
```
`@@` reaches into a **non-exported** binding, and the `license` record
constructor takes three fields but was given two. Because guix isn't
installed on the development host, nothing ever evaluated this file and
the fault sat unnoticed. Now `(license mpl2.0)` — what `(guix licenses)`
actually exports. Confirmed the file parses under guile and that the old
form raises `unbound-variable`.
`.gitignore` was checked both directions: no currently tracked file
becomes ignored, and the tracked `examples/math.wasm` fixture is
explicitly re-included.
## Verified locally
```
cargo clippy --workspace --all-targets -- -D warnings PASS
cargo fmt --all -- --check PASS
cargo test --workspace PASS (236 tests)
cargo audit -D warnings PASS
guix.scm parses under guile PASS
all 22 workflows structurally valid for Actions PASS
no tracked file newly ignored PASS
```
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>1 parent 7864eb0 commit 3d7e8dc
15 files changed
Lines changed: 249 additions & 151 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
3 | 5 | | |
4 | 6 | | |
5 | 7 | | |
6 | 8 | | |
7 | | - | |
8 | | - | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
| 12 | + | |
12 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
13 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
2 | 7 | | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
46 | 70 | | |
47 | | - | |
48 | | - | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
25 | | - | |
26 | 24 | | |
27 | 25 | | |
28 | | - | |
29 | | - | |
30 | 26 | | |
31 | 27 | | |
32 | | - | |
33 | 28 | | |
34 | | - | |
35 | 29 | | |
36 | 30 | | |
37 | 31 | | |
| |||
78 | 72 | | |
79 | 73 | | |
80 | 74 | | |
81 | | - | |
82 | 75 | | |
83 | | - | |
84 | | - | |
85 | 76 | | |
86 | 77 | | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
15 | | - | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
16 | 21 | | |
17 | | - | |
18 | | - | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
33 | 24 | | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
400 | 400 | | |
401 | 401 | | |
402 | 402 | | |
403 | | - | |
| 403 | + | |
404 | 404 | | |
405 | 405 | | |
406 | 406 | | |
| |||
0 commit comments