chore(deps): update dependency fnox to v1.25.1 #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/fnox-1.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
1.25.0→1.25.1Release Notes
jdx/fnox (fnox)
v1.25.1: : Keychain reliability and dependency refreshesCompare Source
A patch release focused on the OS keychain provider: a deadlock and dialog-storm fix on macOS, plus a clean migration to
keyring-corev1 andkeepass0.12.Fixed
Keychain provider no longer deadlocks the runtime or stacks dialogs (#495) -- @jdx
Resolving several keychain-backed secrets at once on macOS could hang fnox indefinitely (see discussion #489). The default batch path fans out 10 concurrent reads, which surfaced up to 10 overlapping "Always Allow / Allow / Deny" Security dialogs and pinned every tokio worker thread waiting for the user — deadlocking the runtime.
Two changes fix this:
keyring-corecalls (set_password,get_password,delete_credential) now run viatokio::task::spawn_blocking, so a blocked Security dialog never pins a runtime worker.get_secrets_batchto resolve entries serially, so dialogs appear one at a time and Ctrl-C stays responsive.fnox setagainst the keychain andtest_connectionare routed through the blocking pool too.KeePass provider works with
keepass0.12 (#494) -- @jdxThe 0.10 → 0.12 bump made
Group.groups,Group.entries,Database.root, and friendspub(crate), with access now going throughDatabase::root(),GroupRef/GroupMutaccessors, andadd_group/add_entry. The provider has been rewritten to match:EntryIdand resolves toEntryRef/EntryMutviaDatabase::entry/entry_mut, avoiding lifetime issues with recursiveGroupRefborrows.group_mut/add_group, then update oradd_entry.set_protected/set_unprotectedhelpers, preserving "Password protected, everything else unprotected" behavior.Lookup semantics are unchanged: path segments before the last name exact-named subgroups; the final segment is searched recursively by entry title.
Changed
Migrate from
keyringv3 tokeyring-corev1 (#493) -- @jdxUpstream
keyringv4 is now just a CLI/sample app — the library moved tokeyring-coreplus per-platform credential-store crates. fnox now depends on:apple-native-keyring-store(with thekeychainfeature) on macOSwindows-native-keyring-storeon Windowsdbus-secret-service-keyring-store(withcrypto-rust+vendored) on LinuxA new
fnox_core::keyring_store::init()lazily registers the default store once per process; both thekeychainprovider and thegithub_oauthlease backend invoke it before constructing anEntry. Error classification now matcheskeyring_core::Error::{NoEntry, NoStorageAccess(_)}enum variants instead of string-matching error messages, producing more accurateProviderSecretNotFoundvsProviderAuthFailederrors.No config or CLI surface changes — the
keychainprovider andgithub_oauthlease backend keep the same TOML fields and behavior.Documentation
Use the keychain for a bootstrap key, not bulk storage (#495) -- @jdx
The keychain provider docs now recommend storing a single age identity in the OS keychain and encrypting the rest of your secrets with the
ageprovider, so you hit one "Always Allow" prompt instead of one per secret:Reach for
provider = "keychain"directly only for the handful of bootstrap secrets that have nothing else to decrypt them.Full Changelog: https://github.com/jdx/fnox/compare/v1.25.0...v1.25.1
💚 Sponsor fnox
fnox is maintained by @jdx under en.dev — a small independent studio building developer tooling like mise, aube, hk, and more. Keeping fnox secure, maintained, and free is funded by sponsors.
If fnox is handling secrets or config for you or your team, please consider sponsoring at en.dev. Sponsorships are what let fnox stay independent and the project keep moving.
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.