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
Signed with PGP, not checked
Commit: 9137e4274e88ea4290a6d3bf8acaaea9f40b84f7
Parent: 5d25e59
2 files changed, +5 insertions, -176 deletions
M Cargo.lock -175
@@ -479,29 +479,6 @@
479 479 source = "registry+https://github.com/rust-lang/crates.io-index"
480 480 checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
481 481
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 482 [[package]]
506 483 name = "base64"
507 484 version = "0.22.1"
@@ -855,15 +832,6 @@
855 832 "error-code",
856 833 ]
857 834
858 - [[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 835 [[package]]
868 836 name = "codespan-reporting"
869 837 version = "0.13.1"
@@ -1217,12 +1185,6 @@
1217 1185 source = "registry+https://github.com/rust-lang/crates.io-index"
1218 1186 checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76"
1219 1187
1220 - [[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 1188 [[package]]
1227 1189 name = "ecolor"
1228 1190 version = "0.34.3"
@@ -1654,12 +1616,6 @@
1654 1616 "percent-encoding",
1655 1617 ]
1656 1618
1657 - [[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 1619 [[package]]
1664 1620 name = "futures-channel"
1665 1621 version = "0.3.33"
@@ -1829,10 +1785,8 @@
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 @@
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]]
@@ -2851,12 +2803,6 @@
2851 2803 source = "registry+https://github.com/rust-lang/crates.io-index"
2852 2804 checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
2853 2805
2854 - [[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 2806 [[package]]
2861 2807 name = "mach2"
2862 2808 version = "0.5.0"
@@ -4009,63 +3955,6 @@
4009 3955 "memchr",
4010 3956 ]
4011 3957
4012 - [[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 3958 [[package]]
4070 3959 name = "quote"
4071 3960 version = "1.0.47"
@@ -4113,15 +4002,6 @@
4113 4002 source = "registry+https://github.com/rust-lang/crates.io-index"
4114 4003 checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69"
4115 4004
4116 - [[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 4005 [[package]]
4126 4006 name = "raw-window-handle"
4127 4007 version = "0.6.2"
@@ -4265,17 +4145,13 @@
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 @@
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",
@@ -4469,62 +4344,21 @@
4469 4344 "zeroize",
4470 4345 ]
4471 4346
4472 - [[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 4347 [[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 - [[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 4356 [[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",
@@ -6108,15 +5942,6 @@
6108 5942 "web-sys",
6109 5943 ]
6110 5944
6111 - [[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 5945 [[package]]
6121 5946 name = "weezl"
6122 5947 version = "0.1.12"
@@ -26,7 +26,11 @@
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"