Skip to main content

max / audiofiles

Pin the keyring credential store bundle explicitly The dependency was declared as a bare version, so the 3 to 4 bump silently swapped the Linux backing store from kernel keyutils to the Secret Service. Pin the v1 store bundle explicitly and document why keyutils must not be re-enabled: it keeps entries in memory only and drops them on every reboot, which silently destroyed the stored API key. This resolves to the same stores as the current default, so it is a guard against the next bump rather than a behaviour change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-07-21 17:45 UTC
Commit: 9137e4274e88ea4290a6d3bf8acaaea9f40b84f7
Parent: 5d25e59
2 files changed, +5 insertions, -176 deletions
M Cargo.lock -175
@@ -480,29 +480,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
480 480 checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
481 481
482 482 [[package]]
483 - name = "aws-lc-rs"
484 - version = "1.17.3"
485 - source = "registry+https://github.com/rust-lang/crates.io-index"
486 - checksum = "00bdb5da18dac48ca2cc7cd4a98e533e8635a58e2361d13a1a4ee3888e0d72f1"
487 - dependencies = [
488 - "aws-lc-sys",
489 - "zeroize",
490 - ]
491 -
492 - [[package]]
493 - name = "aws-lc-sys"
494 - version = "0.43.0"
495 - source = "registry+https://github.com/rust-lang/crates.io-index"
496 - checksum = "43103168cc76fe62678a375e722fc9cb3a0146159ac5828bc4f0dfd755c2224c"
497 - dependencies = [
498 - "cc",
499 - "cmake",
500 - "dunce",
501 - "fs_extra",
502 - "pkg-config",
503 - ]
504 -
505 - [[package]]
506 483 name = "base64"
507 484 version = "0.22.1"
508 485 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -856,15 +833,6 @@ dependencies = [
856 833 ]
857 834
858 835 [[package]]
859 - name = "cmake"
860 - version = "0.1.58"
861 - source = "registry+https://github.com/rust-lang/crates.io-index"
862 - checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678"
863 - dependencies = [
864 - "cc",
865 - ]
866 -
867 - [[package]]
868 836 name = "codespan-reporting"
869 837 version = "0.13.1"
870 838 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1218,12 +1186,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1218 1186 checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
1219 1187
1220 1188 [[package]]
1221 - name = "dunce"
1222 - version = "1.0.5"
1223 - source = "registry+https://github.com/rust-lang/crates.io-index"
1224 - checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813"
1225 -
1226 - [[package]]
1227 1189 name = "ecolor"
1228 1190 version = "0.34.3"
1229 1191 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1655,12 +1617,6 @@ dependencies = [
1655 1617 ]
1656 1618
1657 1619 [[package]]
1658 - name = "fs_extra"
1659 - version = "1.3.0"
1660 - source = "registry+https://github.com/rust-lang/crates.io-index"
1661 - checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c"
1662 -
1663 - [[package]]
1664 1620 name = "futures-channel"
1665 1621 version = "0.3.33"
1666 1622 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1829,10 +1785,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1829 1785 checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
1830 1786 dependencies = [
1831 1787 "cfg-if",
1832 - "js-sys",
1833 1788 "libc",
1834 1789 "wasi",
1835 - "wasm-bindgen",
1836 1790 ]
1837 1791
1838 1792 [[package]]
@@ -1854,11 +1808,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1854 1808 checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
1855 1809 dependencies = [
1856 1810 "cfg-if",
1857 - "js-sys",
1858 1811 "libc",
1859 1812 "r-efi 6.0.0",
1860 1813 "rand_core 0.10.1",
1861 - "wasm-bindgen",
1862 1814 ]
1863 1815
1864 1816 [[package]]
@@ -2852,12 +2804,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
2852 2804 checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
2853 2805
2854 2806 [[package]]
2855 - name = "lru-slab"
2856 - version = "0.1.2"
2857 - source = "registry+https://github.com/rust-lang/crates.io-index"
2858 - checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154"
2859 -
2860 - [[package]]
2861 2807 name = "mach2"
2862 2808 version = "0.5.0"
2863 2809 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4010,63 +3956,6 @@ dependencies = [
4010 3956 ]
4011 3957
4012 3958 [[package]]
4013 - name = "quinn"
4014 - version = "0.11.11"
4015 - source = "registry+https://github.com/rust-lang/crates.io-index"
4016 - checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8"
4017 - dependencies = [
4018 - "bytes",
4019 - "cfg_aliases",
4020 - "pin-project-lite",
4021 - "quinn-proto",
4022 - "quinn-udp",
4023 - "rustc-hash 2.1.3",
4024 - "rustls",
4025 - "socket2",
4026 - "thiserror 2.0.19",
4027 - "tokio",
4028 - "tracing",
4029 - "web-time",
4030 - ]
4031 -
4032 - [[package]]
4033 - name = "quinn-proto"
4034 - version = "0.11.16"
4035 - source = "registry+https://github.com/rust-lang/crates.io-index"
4036 - checksum = "2f4bfc015262b9df63c8845072ce59068853ff5872180c2ce2f13038b970e560"
4037 - dependencies = [
4038 - "aws-lc-rs",
4039 - "bytes",
4040 - "getrandom 0.4.3",
4041 - "lru-slab",
4042 - "rand",
4043 - "rand_pcg",
4044 - "ring",
4045 - "rustc-hash 2.1.3",
4046 - "rustls",
4047 - "rustls-pki-types",
4048 - "slab",
4049 - "thiserror 2.0.19",
4050 - "tinyvec",
4051 - "tracing",
4052 - "web-time",
4053 - ]
4054 -
4055 - [[package]]
4056 - name = "quinn-udp"
4057 - version = "0.5.15"
4058 - source = "registry+https://github.com/rust-lang/crates.io-index"
4059 - checksum = "35a133f956daabe89a61a685c2649f13d82d5aa4bd5d12d1277e1072a21c0694"
4060 - dependencies = [
4061 - "cfg_aliases",
4062 - "libc",
4063 - "once_cell",
4064 - "socket2",
4065 - "tracing",
4066 - "windows-sys 0.61.2",
4067 - ]
4068 -
4069 - [[package]]
4070 3959 name = "quote"
4071 3960 version = "1.0.47"
4072 3961 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4114,15 +4003,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
4114 4003 checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69"
4115 4004
4116 4005 [[package]]
4117 - name = "rand_pcg"
4118 - version = "0.10.2"
4119 - source = "registry+https://github.com/rust-lang/crates.io-index"
4120 - checksum = "caa0f4137e1c0a72f4c651489402276c8e8e1cf081f3b0ba156d2cbeef09e86a"
4121 - dependencies = [
4122 - "rand_core 0.10.1",
4123 - ]
4124 -
4125 - [[package]]
4126 4006 name = "raw-window-handle"
4127 4007 version = "0.6.2"
4128 4008 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4265,17 +4145,13 @@ dependencies = [
4265 4145 "native-tls",
4266 4146 "percent-encoding",
4267 4147 "pin-project-lite",
4268 - "quinn",
4269 - "rustls",
4270 4148 "rustls-pki-types",
4271 - "rustls-platform-verifier",
4272 4149 "serde",
4273 4150 "serde_json",
4274 4151 "serde_urlencoded",
4275 4152 "sync_wrapper",
4276 4153 "tokio",
4277 4154 "tokio-native-tls",
4278 - "tokio-rustls",
4279 4155 "tokio-util",
4280 4156 "tower",
4281 4157 "tower-http",
@@ -4461,7 +4337,6 @@ version = "0.23.42"
4461 4337 source = "registry+https://github.com/rust-lang/crates.io-index"
4462 4338 checksum = "3c54fcab019b409d04215d3a17cb438fd7fbf192ee61461f20f4fe18704bc138"
4463 4339 dependencies = [
4464 - "aws-lc-rs",
4465 4340 "once_cell",
4466 4341 "rustls-pki-types",
4467 4342 "rustls-webpki",
@@ -4470,61 +4345,20 @@ dependencies = [
4470 4345 ]
4471 4346
4472 4347 [[package]]
4473 - name = "rustls-native-certs"
4474 - version = "0.8.4"
4475 - source = "registry+https://github.com/rust-lang/crates.io-index"
4476 - checksum = "dab5152771c58876a2146916e53e35057e1a4dfa2b9df0f0305b07f611fdea4d"
4477 - dependencies = [
4478 - "openssl-probe",
4479 - "rustls-pki-types",
4480 - "schannel",
4481 - "security-framework",
4482 - ]
4483 -
4484 - [[package]]
4485 4348 name = "rustls-pki-types"
4486 4349 version = "1.15.0"
4487 4350 source = "registry+https://github.com/rust-lang/crates.io-index"
4488 4351 checksum = "764899a24af3980067ee14bc143654f297b22eaebfe3c7b6b211920a5a59b046"
4489 4352 dependencies = [
4490 - "web-time",
4491 4353 "zeroize",
4492 4354 ]
4493 4355
4494 4356 [[package]]
4495 - name = "rustls-platform-verifier"
4496 - version = "0.7.0"
4497 - source = "registry+https://github.com/rust-lang/crates.io-index"
4498 - checksum = "26d1e2536ce4f35f4846aa13bff16bd0ff40157cdb14cc056c7b14ba41233ba0"
4499 - dependencies = [
4500 - "core-foundation 0.10.1",
4501 - "core-foundation-sys",
4502 - "jni 0.22.4",
4503 - "log",
4504 - "once_cell",
4505 - "rustls",
4506 - "rustls-native-certs",
4507 - "rustls-platform-verifier-android",
4508 - "rustls-webpki",
4509 - "security-framework",
4510 - "security-framework-sys",
4511 - "webpki-root-certs",
4512 - "windows-sys 0.61.2",
4513 - ]
4514 -
4515 - [[package]]
4516 - name = "rustls-platform-verifier-android"
4517 - version = "0.1.1"
4518 - source = "registry+https://github.com/rust-lang/crates.io-index"
4519 - checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f"
4520 -
4521 - [[package]]
4522 4357 name = "rustls-webpki"
4523 4358 version = "0.103.13"
4524 4359 source = "registry+https://github.com/rust-lang/crates.io-index"
4525 4360 checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e"
4526 4361 dependencies = [
4527 - "aws-lc-rs",
4528 4362 "ring",
4529 4363 "rustls-pki-types",
4530 4364 "untrusted",
@@ -6109,15 +5943,6 @@ dependencies = [
6109 5943 ]
6110 5944
6111 5945 [[package]]
6112 - name = "webpki-root-certs"
6113 - version = "1.0.9"
6114 - source = "registry+https://github.com/rust-lang/crates.io-index"
6115 - checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b"
6116 - dependencies = [
6117 - "rustls-pki-types",
6118 - ]
6119 -
6120 - [[package]]
6121 5946 name = "weezl"
6122 5947 version = "0.1.12"
6123 5948 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -26,7 +26,11 @@ chrono = { workspace = true }
26 26 midir = { workspace = true }
27 27 rfd = { workspace = true }
28 28 toml = { workspace = true }
29 - keyring = { version = "4" }
29 + # Pinned to the v1 store bundle explicitly: Apple Keychain, Windows credential
30 + # manager, and Secret Service on Linux. Do not enable `linux-keyutils-keyring-store` —
31 + # that backing store is in-memory and drops every entry on reboot, which silently
32 + # destroyed stored secrets before keyring 4 moved the default to Secret Service.
33 + keyring = { version = "4", default-features = false, features = ["v1"] }
30 34
31 35 [dev-dependencies]
32 36 tempfile = "3"