The post-merge canary tested main at 40e3aaaf8 and it is red.
This names the commit that was tested, not the commit that broke the tree.
This run did not check 40e3aaaf8's parent, so the break may be older —
possibly by many merges. Confirm before reverting anything: re-run the failing
check on 40e3aaaf8^ and walk back while it still fails.
Failing: lockfile-sync, compile
lockfile-sync
check-lockfile-sync: FAIL — Cargo.lock is out of sync with the manifests.
check-lockfile-sync:
check-lockfile-sync: cargo said:
check-lockfile-sync: Updating crates.io index
check-lockfile-sync: error: cannot update the lock file /home/runner/work/stella/stella/Cargo.lock because --locked was passed to prevent this
check-lockfile-sync: help: to generate the lock file without accessing the network, remove the --locked flag and use --offline instead.
check-lockfile-sync:
check-lockfile-sync: Fix it by regenerating the lock and committing it:
check-lockfile-sync:
check-lockfile-sync: cargo metadata --format-version 1 >/dev/null # or: cargo check --workspace
check-lockfile-sync: git add Cargo.lock
check-lockfile-sync:
check-lockfile-sync: Cargo.lock is tracked and install.sh builds --locked, so this reaches
check-lockfile-sync: people installing from source, not only CI. Commit the regenerated lock
check-lockfile-sync: in the same PR as the manifest change that moved it (#3332).
compile
�[1m�[91merror�[0m: cannot update the lock file /home/runner/work/stella/stella/Cargo.lock because --locked was passed to prevent this
help: to generate the lock file without accessing the network, remove the --locked flag and use --offline instead.
Why this was not caught before the merge
These checks are enforced against a shared cell — something every PR of a
given shape must write. Usually that is a file (Cargo.lock,
scripts/file-size-baseline.txt); it can equally be a seam two branches
each redesign in good faith (#3659). Either way, two branches can each be
correct, pass every check, and still compose into a broken tree once both
land. No pre-merge check has both halves in front of it, which is why this
canary exists (#3332).
How to fix
git checkout main && git pull
...then, per failing check:
lockfile-sync
cargo metadata --format-version 1 >/dev/null # regenerates Cargo.lock
git add Cargo.lock
compile
cargo check --workspace --all-targets --locked
Land it on its own from a fresh main — do not fold it into an unrelated PR,
for the reason AGENTS.md gives about the file-size baseline.
Definition of done
Tick these on the repair PR's own tree — each is a command you can run before
you merge. The canary closes this issue itself on its next green run, so a box
nobody ticks costs the issue nothing; SCR-003's gate is what reads them, and it
runs on the PR.
Blast radius while this is open
A red main reds every open PR, so the next contributor inherits a failure
they did not cause and may spend their session on it.
If compile is among the failures, nothing builds: the whole test suite and
the release binary are down, not one crate. If lockfile-sync is, everything
that passes --locked breaks — the MSRV check, the stella-serve container
build, and install.sh, which reaches people installing from source rather
than only CI.
The post-merge canary tested
mainat40e3aaaf8and it is red.This names the commit that was tested, not the commit that broke the tree.
This run did not check
40e3aaaf8's parent, so the break may be older —possibly by many merges. Confirm before reverting anything: re-run the failing
check on
40e3aaaf8^and walk back while it still fails.Failing: lockfile-sync, compile
lockfile-synccompileWhy this was not caught before the merge
These checks are enforced against a shared cell — something every PR of a
given shape must write. Usually that is a file (
Cargo.lock,scripts/file-size-baseline.txt); it can equally be a seam two brancheseach redesign in good faith (#3659). Either way, two branches can each be
correct, pass every check, and still compose into a broken tree once both
land. No pre-merge check has both halves in front of it, which is why this
canary exists (#3332).
How to fix
git checkout main && git pull...then, per failing check:
lockfile-synccompileLand it on its own from a fresh
main— do not fold it into an unrelated PR,for the reason AGENTS.md gives about the file-size baseline.
Definition of done
lockfile-syncpasses on a freshmainwith the fix appliedcompilepasses on a freshmainwith the fix appliedmain, not folded into anunrelated PR.
Tick these on the repair PR's own tree — each is a command you can run before
you merge. The canary closes this issue itself on its next green run, so a box
nobody ticks costs the issue nothing; SCR-003's gate is what reads them, and it
runs on the PR.
Blast radius while this is open
A red
mainreds every open PR, so the next contributor inherits a failurethey did not cause and may spend their session on it.
If compile is among the failures, nothing builds: the whole test suite and
the release binary are down, not one crate. If lockfile-sync is, everything
that passes
--lockedbreaks — the MSRV check, thestella-servecontainerbuild, and
install.sh, which reaches people installing from source ratherthan only CI.