Move the toolchain pin to Rust 1.97.1 #38

Merged
dcharlot merged 1 commit from rust-toolchain-1.97.1 into main 2026-07-22 03:05:29 -04:00
Owner

The repo was pinned to 1.96.0 while 1.97.1 is current and installed on the dev box — so every build here ran a compiler two releases behind the one the code is actually developed against. All of PR #31 and #34 were written and verified under 1.97.1 locally, then would have been gated by 1.96.0 in CI. This closes that gap.

What moved

Both toolchain files, and the five workflows that hardcode a toolchain instead of deferring to rust-toolchain.toml:

file was now
rust-toolchain.toml 1.96.0 1.97.1
eoc/eoc-rs/rust-toolchain.toml 1.96.0 1.97.1
wai-conformance.yml (×2 jobs) 1.96.0 1.97.1
wai-neural-e2e.yml 1.96.0 1.97.1
wai-byte-equality.yml 1.96.0 1.97.1
joule-code-conformance.yml "1.96.0" "1.97.1"
jouleclaw-public-surface-documented.yml "1.96" "1.97.1"

The pin stays exact. A pin that drifts is not a pin — the point is that CI and every contributor build the same compiler, and stable would silently move under us.

MSRV deliberately untouched

The rust-version fields across the workspaces (1.85 in mesh/proof, 1.96 elsewhere) are a floor, not a pin: they declare the oldest compiler a crate supports, not the one it is built with. A crate with MSRV 1.85 builds perfectly well under 1.97.1.

Raising them because a build box moved would narrow who can consume these standards as libraries — that is a policy decision about support commitments, not a consequence of upgrading a toolchain. If the intent is to raise the support floor too, that is a separate, deliberate change.

Verified under the new pin

rustc 1.97.1 (8bab26f4f) resolving from the pin in every case — not from an ambient stable:

  • sandbox-proofcargo check exit 0, 15 tests pass
  • eoc-route-learned (the eoc/eoc-rs sub-workspace, which carries its own toolchain file) — 11 + 3 tests pass
  • jouleclaw-corpus --features candle — 19 tests pass; picked deliberately as the heaviest third-party dep tree in the repo (candle + tokenizers), the most likely thing to break on a compiler bump

rustup pulled 1.97.1 on first use, which is the same thing each CI runner will do once on its next build.

Note on CI

Actions is still disabled on this repo (has_actions: false), so these workflow edits will not execute until it is enabled — they are correct-when-turned-on, not verified-by-running.


🤖 Generated with Claude Code

The repo was pinned to **1.96.0** while **1.97.1** is current and installed on the dev box — so every build here ran a compiler two releases behind the one the code is actually developed against. All of PR #31 and #34 were written and verified under 1.97.1 locally, then would have been gated by 1.96.0 in CI. This closes that gap. ## What moved Both toolchain files, and the five workflows that hardcode a toolchain instead of deferring to `rust-toolchain.toml`: | file | was | now | |---|---|---| | `rust-toolchain.toml` | 1.96.0 | 1.97.1 | | `eoc/eoc-rs/rust-toolchain.toml` | 1.96.0 | 1.97.1 | | `wai-conformance.yml` (×2 jobs) | 1.96.0 | 1.97.1 | | `wai-neural-e2e.yml` | 1.96.0 | 1.97.1 | | `wai-byte-equality.yml` | 1.96.0 | 1.97.1 | | `joule-code-conformance.yml` | "1.96.0" | "1.97.1" | | `jouleclaw-public-surface-documented.yml` | "1.96" | "1.97.1" | The pin stays **exact**. A pin that drifts is not a pin — the point is that CI and every contributor build the same compiler, and `stable` would silently move under us. ## MSRV deliberately untouched The `rust-version` fields across the workspaces (1.85 in mesh/proof, 1.96 elsewhere) are a **floor, not a pin**: they declare the oldest compiler a crate supports, not the one it is built with. A crate with MSRV 1.85 builds perfectly well under 1.97.1. Raising them because a build box moved would narrow who can consume these standards as libraries — that is a policy decision about support commitments, not a consequence of upgrading a toolchain. If the intent is to raise the support floor too, that is a separate, deliberate change. ## Verified under the new pin `rustc 1.97.1 (8bab26f4f)` resolving from the pin in every case — not from an ambient `stable`: - **sandbox-proof** — `cargo check` exit 0, 15 tests pass - **eoc-route-learned** (the `eoc/eoc-rs` sub-workspace, which carries its own toolchain file) — 11 + 3 tests pass - **jouleclaw-corpus `--features candle`** — 19 tests pass; picked deliberately as the heaviest third-party dep tree in the repo (candle + tokenizers), the most likely thing to break on a compiler bump rustup pulled 1.97.1 on first use, which is the same thing each CI runner will do once on its next build. ## Note on CI Actions is still disabled on this repo (`has_actions: false`), so these workflow edits will not execute until it is enabled — they are correct-when-turned-on, not verified-by-running. --- 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The repo was pinned to 1.96.0 while 1.97.1 is current and installed on
the dev box, so every build here ran a compiler two releases behind the
one the code is actually developed against. This moves the pin forward.

Both toolchain files (root and the eoc/eoc-rs sub-workspace) and the
five workflows that hardcode a toolchain rather than deferring to
rust-toolchain.toml — wai-conformance, wai-neural-e2e, wai-byte-equality,
joule-code-conformance, jouleclaw-public-surface-documented. Pinning
stays exact, per the repo's convention: a pin that drifts is not a pin.

MSRV is deliberately untouched. The `rust-version` fields across the
workspaces (1.85 in mesh/proof, 1.96 elsewhere) declare the *oldest*
compiler a crate supports, not the one it is built with — a floor, not a
pin. Raising them because the dev toolchain moved would narrow who can
consume these standards as libraries, which is a policy decision about
support commitments, not a consequence of upgrading a build box. A
crate with MSRV 1.85 builds perfectly well under 1.97.1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Transaction-Science/open-standards!38
No description provided.