Summary
.github/workflows/ci.yml resolves the Rust toolchain at run time:
- uses: dtolnay/rust-toolchain@5b842231ba77f5c045dba54ac5560fed2db780e2 # nightly
with:
toolchain: nightly
and runs clippy with -D warnings, so any lint a future nightly introduces fails the workspace with no change in the repository. A recent nightly added recursion_depth_exceeding_limit, and truapi-server trips it:
error: overflow evaluating the requirement
--> rust/crates/truapi-server/src/runtime/pairing_host.rs:2423:5
= help: consider increasing the recursion limit by adding a
`#![recursion_limit = "256"]` attribute to your crate (`truapi_server`)
= note: `-D recursion-depth-exceeding-limit` implied by `-D warnings`
= warning: this was previously accepted by the compiler but is being phased out
Proving request_login's boxed trait future Send recurses through SsoPairingFlow::request_session and exceeds the default 128-step budget. The chain is not recursive, only deeper than the default allowance; the compiler previously accepted the give-up silently.
Every CI run repo-wide since 22 Aug has failed. There are three:
| run |
branch |
result |
| 2026-08-22 11:13 |
rfc/spa-worker-calls (#468) |
failure |
| 2026-08-24 07:26 |
nidish/debug-host-port (#295) |
failure |
| 2026-08-24 07:33 |
nidish/debugger-rfc (#315) |
failure |
Other open PRs show a green Rust workspace from runs between 04 and 21 Aug, predating the lint; they turn red on their next run. main last ran 21 Aug. #315 is the control: its entire diff is one markdown file and it fails identically, so main is affected.
Fix
#![recursion_limit = "256"] in truapi-server, as the diagnostic suggests.
Options — toolchain pinning
The lint is the symptom; the unpinned toolchain is why it lands as a failure rather than an upgrade. There is no rust-toolchain.toml today.
- Add a dated
rust-toolchain.toml, so nightly moves only when the pin is bumped.
- Or pin
toolchain: in ci.yml to a dated nightly.
- Or keep
nightly floating and drop -D warnings for the nightly job, reporting new lints without failing the build.
Summary
.github/workflows/ci.ymlresolves the Rust toolchain at run time:and runs clippy with
-D warnings, so any lint a future nightly introduces fails the workspace with no change in the repository. A recent nightly addedrecursion_depth_exceeding_limit, andtruapi-servertrips it:Proving
request_login's boxed trait futureSendrecurses throughSsoPairingFlow::request_sessionand exceeds the default 128-step budget. The chain is not recursive, only deeper than the default allowance; the compiler previously accepted the give-up silently.Every CI run repo-wide since 22 Aug has failed. There are three:
rfc/spa-worker-calls(#468)nidish/debug-host-port(#295)nidish/debugger-rfc(#315)Other open PRs show a green
Rust workspacefrom runs between 04 and 21 Aug, predating the lint; they turn red on their next run.mainlast ran 21 Aug. #315 is the control: its entire diff is one markdown file and it fails identically, somainis affected.Fix
#![recursion_limit = "256"]intruapi-server, as the diagnostic suggests.Options — toolchain pinning
The lint is the symptom; the unpinned toolchain is why it lands as a failure rather than an upgrade. There is no
rust-toolchain.tomltoday.rust-toolchain.toml, so nightly moves only when the pin is bumped.toolchain:inci.ymlto a dated nightly.nightlyfloating and drop-D warningsfor the nightly job, reporting new lints without failing the build.