From 76f2aa59287b804f03ce5f5f067d5b8a28b30d11 Mon Sep 17 00:00:00 2001 From: Vincent Rozenberg Date: Thu, 3 Sep 2026 12:44:10 +0200 Subject: [PATCH] Pin Rust toolchain to stable so tauri-cli never panics on a fresh machine MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On a machine where rustup has no default toolchain, tauri-cli calls `cargo metadata` without specifying one and panics in its metadata thread with no useful error — just an abort. The file lives at the project root (not src-tauri/) because tauri-cli invokes cargo from there; rustup walks up from the CWD, so the root copy is the one that gets picked up. Also notes this in FORK.md so a future forker knows what they would hit and why the file must exist. --- FORK.md | 6 ++++++ rust-toolchain.toml | 2 ++ 2 files changed, 8 insertions(+) create mode 100644 rust-toolchain.toml diff --git a/FORK.md b/FORK.md index 3ea847f..4ce6fa6 100644 --- a/FORK.md +++ b/FORK.md @@ -15,6 +15,12 @@ npm run ship -- --dmg # …and put an installer on the Desktop cd src-tauri && cargo test # 26 tests, all pure logic ``` +`rust-toolchain.toml` at the project root pins the channel to `stable` and must be +present. On a fresh machine that has never set a rustup default, `tauri-cli` calls +`cargo metadata` without specifying a toolchain and panics in its metadata thread — +not a clear error message, just an abort. The file guarantees the toolchain is always +resolved correctly regardless of what the machine's rustup default is configured to. + Read `README.md` for what it does and `docs/superpowers/specs/2026-09-01-work-app-design.md` for why it is built this way. The git history is included and the commit messages carry the reasoning — most of them diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..292fe49 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "stable"