# Pinned Rust toolchain for the JellyTau backend. # # TRACES: | DR-206 # # Why pin: the toolchain was unpinned, so the CI builder image (rustc 1.97.1) # and developer machines (as low as 1.92.0) were five releases apart. Clippy's # lint set and rustfmt's output both move between releases, which means a green # `cargo clippy` / `cargo fmt --check` locally proved nothing about CI — and vice # versa. Everything in this file exists to make both sides run the same compiler. # # 🔴 This value MUST match the rustc that Dockerfile.builder installs (see # RUST_VERSION there). If they drift, rustup downloads the pinned toolchain at # job time inside the container — a toolchain install in CI, which is exactly # what CLAUDE.md's "CI installs no system tools" rule forbids. To move the pin: # bump BOTH this file and Dockerfile.builder, then rebuild and push the image # with scripts/build-builder-image.sh before merging. # # No `targets` key on purpose: listing the Android/Windows targets here would # make rustup fetch all of them on every plain `cargo test`, including on # machines that never cross-compile. The builder image already carries them # (`rustup target add` in Dockerfile.builder), and the cross-build scripts add # them locally when needed. [toolchain] channel = "1.97.1" components = ["rustfmt", "clippy"]