Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR is a broad auth/storage hardening pass for aisw across supported coding agents and platforms.
The main thing it does is stop treating all auth the same. If a tool is using the system keyring, aisw now keeps that profile in secure storage instead of flattening it into plain files just because that was simpler for us. That change drove a lot of the rest of the work: better backend detection, clearer status/output, safer import behavior, and more explicit handling when we can’t reliably identify a live secure-store account.
It also cleans up a few security footguns along the way. Release builds no longer honor the test-only env overrides for secret handling, and the macOS keychain integration no longer passes secrets through process arguments.
The other user-facing improvement is aisw add. Before, some add flows could effectively launch the coding agent itself and take over the terminal just to complete login. That was bad DX. Claude and Codex now use narrower auth-only flows, so aisw stays in control, captures the resulting auth, and continues normally.
A few notable pieces in this PR:
One limitation remains unchanged: Gemini’s first-time Google-account OAuth flow is still interactive. Gemini does have a headless mode, but not for bootstrapping a fresh browser login in a clean environment, so we documented that instead of trying to fake it.