Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion crates/goose/src/config/base.rs
Original file line number Diff line number Diff line change
Expand Up @@ -594,7 +594,7 @@ impl Config {
if msg.contains("No entry found")
|| msg.contains("No matching entry found") =>
{
HashMap::new()
self.fallback_to_file_storage()?
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Return empty secrets when keyring entry is missing

When get_password() returns a "No entry found" error from an otherwise functional keyring (e.g., first run or after a user deletes the keychain item), this branch now reads secrets.yaml instead of treating the keyring as authoritative-empty. That can silently resurrect stale credentials from prior fallback runs and make get_secret succeed even though the keyring entry was intentionally removed, which is a behavioral and security regression tied to this new call path.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

secrets.yaml only gets written when is_keyring_availability_error returns true – meaning the keyring is genuinely unavailable (no dbus, no secret service). on a system with a working keyring, the fallback path never creates that file

}
Err(e) => return Err(e),
}
Expand Down