Skip to content

Make the build pass again: formatting, a lint, and two broken tests - #35

Merged
ymote merged 4 commits into
mainfrom
fix/ci-green
Sep 21, 2026
Merged

ymote merged 4 commits into
mainfrom
fix/ci-green

Conversation

@ymote

@ymote ymote commented Sep 21, 2026

Copy link
Copy Markdown
Collaborator

CI has been red on main since at least 20 September. cargo fmt --check is the
first step of the job, so everything after it went unseen. Four separate
problems were stacked behind it.

Formatting had drifted across the workspace and the fuzz targets, 121 diffs.
Applied with the same commands the workflow runs: stable for the workspace,
nightly for fuzz/.

A lint. initial_origin checked two options with is_some and then
unwrapped one, which clippy::unnecessary_unwrap rejects under -D warnings.
It now matches both at once. Same behaviour.

A test that cannot compile anywhere. tests/live_news.rs included its card
from ../../../../tools/octoscript-research/live-news.card — a path outside the
repository, pointing at a directory that exists in no checkout. The file really
lives in Octoscript-AppCard under an older directory name. The card is now a
fixture in tests/fixtures/, beside weather.card, news.card and the rest,
which is how every neighbouring test already loads one.

A needless borrow in tests/nav_waypoint.rs.

Verified locally with the workflow's own commands:

  • cargo fmt --check
  • cargo +nightly fmt --manifest-path fuzz/Cargo.toml --check
  • cargo clippy --workspace --all-targets --all-features -- -D warnings

all pass. The Linux-only steps (sandbox cross-target checks, the bubblewrap and
cgroup tests) cannot run on macOS, so this pull request is where they get their
first look in days.

ymote and others added 4 commits September 21, 2026 15:02
CI has been red on main since at least 20 September, and because `cargo fmt
--check` is the first step of the job, everything after it went unseen. Four
separate problems were stacked behind it.

Formatting had drifted across the workspace and the fuzz targets, 121 diffs in
all. Applied with the same commands the workflow runs, stable for the workspace
and nightly for fuzz.

`initial_origin` checked two options with `is_some` and then unwrapped one,
which `clippy::unnecessary_unwrap` rejects under `-D warnings`. It now matches
both options at once, which is the same behaviour.

`tests/live_news.rs` included its card from
`../../../../tools/octoscript-research/live-news.card`, a path outside the
repository pointing at a directory that does not exist in any checkout; the file
actually lives in Octoscript-AppCard under an older name. The card is now a test
fixture beside the others in `tests/fixtures/`, which is how every neighbouring
test already loads one, so the test compiles anywhere.

`tests/nav_waypoint.rs` took a reference the compiler immediately dereferenced.

Verified locally with the workflow's own commands: `cargo fmt --check`,
`cargo +nightly fmt --manifest-path fuzz/Cargo.toml --check` and
`cargo clippy --workspace --all-targets --all-features -- -D warnings` all pass.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Both linux_network_broker tests failed on every run with "path must be shorter
than SUN_LEN". The broker appends `.octoscript-network-<32 hex>/broker.sock` to
whatever directory it is given, 64 bytes, and a Unix socket path cannot reach
108. The test directory name spent 48 bytes on its own, so the bind could never
succeed.

Shortened to `octoscript-nb-<pid>-<n>`, which leaves the worst case at 93 bytes.
Test code only; the broker's own naming is untouched.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
`the_source_catalog_matches_the_toml_spec` and
`the_field_vocabularies_match_the_toml_spec` both failed: Rust declares 32
capabilities and docs/ui-l0-constructors.toml described 29.

The TOML is what the agent-facing catalog is generated from, so a capability
that lives only in Rust is one the model writing cards never sees, and a card
naming its fields would be refused for using documentation that was never
offered. That is the drift these tests exist to catch, and it had happened to
sys.news_digest, sys.news_status and sys.dataset.

Each now carries its arguments, its answerable fields and a note on what it is
for and why its shape differs from its neighbours.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
`cargo test -p makepad-script` aborted with a stack overflow in math_aot's
batch test. It is not a flaky limit: raising RUST_MIN_STACK to 32 MB does not
help, because the depth follows the number of points in a chunk, and the same
test passes in makepad's own workspace at the very same commit.

The difference is a profile. makepad's root manifest carries
`[profile.test.package.makepad-stitch] opt-level = 1`, and we build the same
crate without it. makepad-stitch is a WebAssembly interpreter; unoptimised its
frames are large enough that one chunk of a batched expression, 5461 points for
a vec3, runs the test thread out of stack. The passing neighbour test uses 4097
points and stays under the cliff, which is why only one test showed it.

Mirrors upstream rather than inventing a workaround.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@ymote
ymote merged commit 973bf7e into main Sep 21, 2026
8 checks passed
@ymote
ymote deleted the fix/ci-green branch September 21, 2026 22:25
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.

1 participant