chore(toolchain): align rust-toolchain.toml to fleet 1.97.1 - #65
Merged
Conversation
added 2 commits
August 15, 2026 22:37
zetesis pinned 1.85 while kanon (the control plane whose lint behaviour every other repo inherits) pins 1.97.1, so the two repos did not compile the same language -- a lint stabilised after 1.85 fires in one and is inert in the other. Matches kanon's shape (channel + rustfmt/clippy components). Also updates the two stray restatements of the old pin (gate-attestation.yml comment, AGENTS.md's example Gate-Passed trailer) so neither goes stale against the new SSOT. Refs kanon#3489
…g it clippy::derivable_impls newly fires under 1.97.1 (it did not on the 1.85 pin this repo carried before): the manual `impl Default for FreshnessPolicy` was a pure single-arm mapping clippy can generate directly via `#[derive(Default)]` + `#[default]` on the `Strict` variant. No behavior change -- `FreshnessPolicy::default()` still returns `Strict`. Applied clippy's own suggested rewrite rather than suppressing the lint, since it is correct about this impl. Refs kanon#3489
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Defect
rust-toolchain.tomlpinned1.85while kanon — the control plane whose lint behaviour everyother repo inherits — pins
1.97.1. Measured across fifteen fleet repos: five distinct toolchainvalues plus four repos with no pin at all (kanon#3489). A repo pinned at
1.85and one floating onstabledo not compile the same language: a lint stabilised after1.85fires in one and is inertin the other, so "green here" silently stops meaning the same thing across the fleet.
Change
rust-toolchain.toml—channel = "1.85"->"1.97.1", matching kanon's shape exactly(
channel+components = ["rustfmt", "clippy"]).don't silently drift again:
.github/workflows/gate-attestation.yml:19— a comment literally quotedchannel "1.85";dropped the restated value rather than writing a second copy of the new one.
AGENTS.md:44— the worked example told a committer to writeGate-Passed: kanon-ci/local 1.85, which is this repo's own convention for that trailer (confirmed against prior commits,e.g.
e478aafcarries exactly that form with the toolchain version as the payload) — anunpatched example would tell the next committer to stamp a truthful-trailer requirement with a
false version. Bumped to
1.97.1.crates/sylloge/src/freshness.rs— see "Bump fallout" below.Cargo.toml'srust-version = "1.85"(MSRV) is deliberately left untouched — kanon itself keepsits own
rust-version(1.94) decoupled from itsrust-toolchain.tomlpin (1.97.1), so MSRV andCI-toolchain pin are established as two separate facts on the fleet, and bumping MSRV is a
separate, more consequential decision (raises the floor for downstream consumers) not in scope
here.
Bump fallout
Moving
1.85->1.97.1surfaced exactly one new lint under-D warnings:clippy::derivable_implsoncrates/sylloge/src/freshness.rs:92,impl Default for FreshnessPolicy. This is a real, true finding, not a preference — the hand-written impl was apure single-arm mapping (
Strict) that clippy can generate directly. Fixed by taking clippy's ownsuggested rewrite:
#[derive(Default)]on the enum,#[default]on theStrictvariant, manualimplremoved. Behavior-identical —FreshnessPolicy::default()still returnsStrict; theexisting
freshness_policy_defaults_to_stricttest (already present in the same file) exercisesthe same fact both before and after and stayed green throughout. No
#[expect]/#[allow]usedanywhere — the lint was correct, so it was fixed, not suppressed.
Verification
metis (this box) runs
rustc 1.94.0, older than the1.97.1pin, so it cannot build against thistoolchain at all (wrong-compiler or forced-download either way), and separately sits at 1-min load
12-20 against a 7.2 vgate admission limit tonight — no local build was attempted here. Gated on
verda-build instead, which runs
1.97.1as its stable, via~/gate-repo.sh zetesis chore/align-rust-toolchain(two runs: the first caught thederivable_implslint above before thefix, the second is the log this cites).
cargo fmt --check,cargo check --workspace,cargo clippy --workspace --all-targets -- -D warnings, andcargo nextest run --workspace(232/232 passed, 0 skipped) are all clean on1.97.1as of the second run.No
Gate-Passedtrailer on this PR — noted rather than left implicit. The local full gate(
kanon gate --tier full --stamp) still reportsGATE FAILED 1 step(s) failed: kanon lint, butthat step fails on 0 errors / 5 pre-existing warnings unrelated to this diff (unpinned GitHub
Action, two prose findings, two architecture findings) that predate this branch and exist
unchanged on
origin/main. Fixing them is prose + CI-pinning + two architecture calls with norelation to a version-pin change, so it isn't bundled into this PR — evidence posted to kanon#3489
instead of opened as a new issue (mechanical class, existing tracker). This means the fast
trailer-path on CI won't apply; the real fallback build (
fmt/check/clippy/nextestviahybrid-gate.yml) is what grades this PR, and it's exactly what was just run and verified cleanabove.
Negative fixture: none added. This is a version-pin correction plus one clippy-suggested
derive-mechanical rewrite — no new runtime behavior or check, so no negative fixture applies.
Noted explicitly rather than leaving the line out.
Acceptance criteria (kanon#3489, zetesis's line item)
rust-toolchain.tomlmoved from1.85to1.97.1—rust-toolchain.toml:2.channel+components = ["rustfmt", "clippy"]) —rust-toolchain.toml:1-3.rustc 1.97.1), not assertedlocally — fmt/check/clippy/nextest all verified clean; see "Verification" above for the
kanon lint-step caveat (pre-existing, unrelated, tracked separately).clippy::derivable_impls, see "Bumpfallout" above.
Refs kanon#3489