From 544a60922a77c0891aeb22e3715fb0c324282401 Mon Sep 17 00:00:00 2001 From: David Veszelovszki Date: Mon, 18 May 2026 22:04:28 +0200 Subject: [PATCH 1/2] Tooling: declare rustfmt + clippy as required toolchain components MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pinning `apps/desktop/rust-toolchain.toml` to a specific channel without a `components` line tells rustup to install only the minimal profile (rustc + cargo + rust-std). CI scripts then invoke `cargo fmt --check` and `cargo clippy` and trip on missing components — every Rust job on a fresh runner has been failing at the rustfmt step since the channel pin landed. Add `components = ["rustfmt", "clippy"]` so the runner installs them automatically alongside the pinned channel. Devs with local rustup configs that already include rustfmt are unaffected (rustup honours the declaration whether the components are already present or not). --- apps/desktop/rust-toolchain.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/desktop/rust-toolchain.toml b/apps/desktop/rust-toolchain.toml index 1347ad47..5a06e113 100644 --- a/apps/desktop/rust-toolchain.toml +++ b/apps/desktop/rust-toolchain.toml @@ -3,3 +3,9 @@ # A compromised rustc release would land transparently otherwise. Bump # deliberately, with a few days between Rust's release and our pin update. channel = "1.95.0" +# rustup installs only the minimal profile for a pinned channel by default +# (rustc + cargo + rust-std). CI invokes `cargo fmt` and `cargo clippy`, both +# of which need their respective components installed. Declare them here so +# the runner picks them up automatically — without this, every CI Rust job +# fails at the rustfmt step. +components = ["rustfmt", "clippy"] From 7ab7d7b3569751db7654155f7e675db54efd88bc Mon Sep 17 00:00:00 2001 From: David Veszelovszki Date: Mon, 18 May 2026 22:05:51 +0200 Subject: [PATCH 2/2] CI: trigger Rust job on rust-toolchain.toml changes The `rust` paths-filter only watched `apps/desktop/src-tauri/**`, so edits to `apps/desktop/rust-toolchain.toml` skipped the Rust CI jobs entirely. The toolchain file shapes every Rust build on every runner; not running the Rust suite when it changes is exactly backwards. Add the toolchain file to the rust filter so PRs that touch it actually exercise the jobs they affect. --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 45a32e47..2310ae80 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,6 +37,7 @@ jobs: filters: | rust: - 'apps/desktop/src-tauri/**' + - 'apps/desktop/rust-toolchain.toml' svelte: - 'apps/desktop/src/**' - 'apps/desktop/static/**'