From 33907cd7d2c6e81820944fce7286d090d694b436 Mon Sep 17 00:00:00 2001 From: 23prime <23.prime.37@gmail.com> Date: Sat, 7 Mar 2026 15:15:20 +0900 Subject: [PATCH 1/3] fix: add windows-native keyring feature for Windows Credential Manager support --- Cargo.lock | 8 ++++++++ Cargo.toml | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index d463138..a123191 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -387,6 +387,12 @@ version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + [[package]] name = "bytes" version = "1.11.1" @@ -1193,9 +1199,11 @@ version = "3.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eebcc3aff044e5944a8fbaf69eb277d11986064cba30c468730e8b9909fb551c" dependencies = [ + "byteorder", "dbus-secret-service", "log", "secret-service", + "windows-sys 0.60.2", "zbus", "zeroize", ] diff --git a/Cargo.toml b/Cargo.toml index 3867f16..dbb09d0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ serde = { version = "1", features = ["derive"] } serde_json = "1" toml = "0.8" rpassword = "7" -keyring = { version = "3", default-features = false, features = ["async-secret-service", "crypto-rust"] } +keyring = { version = "3", default-features = false, features = ["async-secret-service", "crypto-rust", "windows-native"] } [dev-dependencies] httpmock = { version = "0.7", default-features = false } From 7b41c4bb17dbe115be1533141c787e8613dcf981 Mon Sep 17 00:00:00 2001 From: 23prime <23.prime.37@gmail.com> Date: Sat, 7 Mar 2026 15:21:49 +0900 Subject: [PATCH 2/3] fix: Move windows-native keyring feature to Windows-only target dep Addresses review comment: "windows-native expands the dependency graph for all platforms unnecessarily" --- Cargo.toml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index dbb09d0..16aa239 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,10 @@ serde = { version = "1", features = ["derive"] } serde_json = "1" toml = "0.8" rpassword = "7" -keyring = { version = "3", default-features = false, features = ["async-secret-service", "crypto-rust", "windows-native"] } +keyring = { version = "3", default-features = false, features = ["async-secret-service", "crypto-rust"] } + +[target.'cfg(windows)'.dependencies] +keyring = { version = "3", features = ["windows-native"] } [dev-dependencies] httpmock = { version = "0.7", default-features = false } From 6eecc3d8cd09fbefc2b1e06bb40108c14915939d Mon Sep 17 00:00:00 2001 From: 23prime <23.prime.37@gmail.com> Date: Sat, 7 Mar 2026 15:21:55 +0900 Subject: [PATCH 3/3] ci: Add Windows cargo check job to check-rust workflow Verifies that platform-specific Windows dependencies (windows-native keyring feature) compile correctly on windows-latest. --- .github/workflows/check-rust.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/workflows/check-rust.yml b/.github/workflows/check-rust.yml index 42cfbe7..c4a6ae4 100644 --- a/.github/workflows/check-rust.yml +++ b/.github/workflows/check-rust.yml @@ -54,3 +54,26 @@ jobs: - name: Check run: mise run rs-check + + check-windows: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v6 + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + + - name: Cache cargo registry + uses: actions/cache@v5 + with: + path: | + ~/.cargo/registry + ~/.cargo/git + target + key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} + restore-keys: | + ${{ runner.os }}-cargo- + + - name: Check + run: cargo check --locked