[codex] Make external CLI credential discovery explicit#75209
[codex] Make external CLI credential discovery explicit#75209clawsweeper[bot] merged 4 commits intomainfrom
Conversation
|
@clawsweeper automerge |
|
Codex review: passed for ClawSweeper automerge. What this changes: The PR adds an Automerge follow-up: No automated repair lane is appropriate: this PR already contains the intended implementation, touches sensitive credential routing, has a protected maintainer label, and needs maintainer/security review plus final green checks rather than a new fix PR. Security review: Security review cleared: The diff narrows credential discovery intent and touches TypeScript auth routing, tests, and docs without adding dependencies, CI execution paths, package hooks, downloads, or secret-output expansion. Review detailsBest possible solution: Have an auth/security maintainer review and land this PR once the latest checks are green if the explicit discovery-intent API is the desired direction, while keeping #70055 as the canonical follow-up for a user-facing global opt-out. Do we have a high-confidence way to reproduce the issue? Not applicable as a refactor PR rather than a standalone bug report. The behavior is statically checkable by comparing current main's loose auth-store options with the PR's explicit discovery-intent helpers and updated gateway/model assertions. Is this the best way to solve the issue? Yes for the scoped credential-discovery problem: the What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against bb3a0c954505. |
|
🦞🦞 I added Draft PRs stay fix-only until GitHub marks them ready for review. A maintainer can pause this with |
|
🦞🦞 Source: I will update this PR branch, or open a safe credited replacement, if the repair worker finds a narrow CI fix. |
|
ClawSweeper 🐠 reef update Thanks for the contribution here. ClawSweeper gave the branch a tidy little reef repair and kept this PR as the main lane. Source PR: #75209 fish notes: model gpt-5.5, reasoning medium; reviewed against 6f9cb6c. |
ec48bda to
6f9cb6c
Compare
|
@clawsweeper approve |
|
🦞🦞 Source: The automerge loop is complete. |
* refactor(auth): make external CLI discovery explicit * test(auth): update external cli discovery mocks * test(auth): cover scoped external cli auth mocks * [codex] Make external CLI credential discovery explicit --------- Co-authored-by: clawsweeper-repair <clawsweeper-repair@users.noreply.github.com>
* refactor(auth): make external CLI discovery explicit * test(auth): update external cli discovery mocks * test(auth): cover scoped external cli auth mocks * [codex] Make external CLI credential discovery explicit --------- Co-authored-by: clawsweeper-repair <clawsweeper-repair@users.noreply.github.com>
Summary
Refactors external CLI credential discovery into an explicit auth-store intent instead of loose
allowKeychainPromptand provider/profile options.Why
The previous auth-store API made it easy for generic auth-store reads to accidentally trigger external CLI credential discovery. That was the root cause behind Claude CLI credential reads showing up while running non-Claude models: callers were loading broad runtime auth overlays instead of saying which external CLI provider was actually in scope.
What changed
ExternalCliAuthDiscoverymodes:none,existing, andscoped.models.authStatustests to assert the new intent object.Validation
pnpm test src/agents/auth-profiles.external-cli-sync.test.ts src/agents/auth-profiles.external-cli-scope.test.ts src/agents/model-auth.profiles.test.ts src/gateway/server-methods/models-auth-status.test.tspnpm exec oxfmt --check --threads=1 <touched files>git diff --checkOPENCLAW_TESTBOX=1 pnpm check:changedpassed forcore,coreTests, anddocs.