fix(auth): scope external CLI auth status overlays#74156
Conversation
|
/clownfish automerge |
|
Clownfish automerge is enabled for this PR. I added A maintainer can pause this with |
Greptile SummaryThis PR scopes external CLI credential discovery (Claude CLI, Codex CLI, MiniMax) so that Confidence Score: 5/5Safe to merge — no correctness issues found in any of the changed files. All logic paths are well-tested. The scoping, caching, and keychain-prompt suppression are correctly implemented with no observable edge-case bugs. MiniMax intentionally omits allowKeychainPrompt since it has no keychain path, and TypeScript permits the narrower () => T signature for the optional-param slot. The normalizeScopeSet / undefined vs empty-Set distinction is used consistently throughout. No files require special attention. Reviews (1): Last reviewed commit: "fix(auth): scope external CLI auth statu..." | Re-trigger Greptile |
|
Codex review: needs maintainer review before merge. What this changes: The PR scopes external CLI auth overlays for Maintainer follow-up before merge: Keep the PR open for maintainer/secops review. Rebase it onto current Best possible solution: Keep the PR open for maintainer/secops review. Rebase it onto current What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 77a5d82e64d1. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2122b19ae3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if (normalized === "codex" || normalized === "codex-cli") { | ||
| providerIds.add("openai-codex"); | ||
| } |
There was a problem hiding this comment.
Map codex-app-server runtime alias into Codex auth scope
When resolveExternalAuthScope adds runtime IDs, it only aliases codex and codex-cli to openai-codex; the accepted legacy runtime alias codex-app-server is not mapped, so models.authStatus can skip Codex CLI external credentials for configurations/environments that still use codex-app-server (for example via OPENCLAW_AGENT_RUNTIME). In that case the auth overlay scope excludes openai-codex, and status can incorrectly show Codex auth as missing even though valid Codex CLI credentials exist.
Useful? React with 👍 / 👎.
|
Thanks, ClawSweeper. Clownfish picked up the repair feedback. Source: I will update this PR branch, or open a safe credited replacement, if the repair worker finds a narrow fix. |
|
/clownfish automerge |
|
Clownfish automerge is enabled for this PR. I added A maintainer can pause this with |
|
Clownfish did not dispatch a repair worker for this one. Reason: unsupported command or target. Supported repair commands work on existing Clownfish PRs and PRs opted into |
|
/clownfish automerge |
|
Clownfish automerge is enabled for this PR. I added A maintainer can pause this with |
|
Thanks, ClawSweeper. Clownfish is continuing the automerge repair loop for this PR. Source: I will update this PR branch, or open a safe credited replacement, if the repair worker finds a narrow fix. |
|
Clownfish 🐠 automerge status Repair pass finished without changing this PR. Target: #74156 Worker actions:
No branch push, rebase, replacement PR, merge, or ClawSweeper re-review was started by this pass. fish notes: model gpt-5.5, reasoning xhigh. |
|
/clawsweeper automerge |
|
ClawSweeper automerge is enabled for this PR. I added A maintainer can pause this with |
2122b19 to
f4faa6f
Compare
|
/clawsweeper automerge |
|
ClawSweeper automerge is enabled for this PR. I added A maintainer can pause this with |
|
ClawSweeper automerge is enabled for this PR. I cleared A maintainer can pause this with |
|
ClawSweeper automerge is enabled for this PR. I cleared A maintainer can pause this with |
|
ClawSweeper automerge is enabled for this PR. I cleared A maintainer can pause this with |
|
ClawSweeper automerge is enabled for this PR. I cleared A maintainer can pause this with |
|
ClawSweeper automerge is enabled for this PR. I cleared A maintainer can pause this with |
|
ClawSweeper is pausing automerge for human review. Source: I added |
|
ClawSweeper is pausing automerge for human review. Source: I added |
|
/clawsweeper approve |
|
Maintainer-approved ClawSweeper automerge is not merged yet. Approver: I left the PR open for the remaining gate instead of bypassing it. |
cd6ab82 to
180ba89
Compare
180ba89 to
4c5a92f
Compare
|
Landed via squash after rebasing onto current
|
* fix(auth): scope external CLI auth status overlays * fix: pass external auth config to overlays * fix(auth): keep no-prompt CLI reads file-only * docs: update clawsweeper app wording
* fix(auth): scope external CLI auth status overlays * fix: pass external auth config to overlays * fix(auth): keep no-prompt CLI reads file-only * docs: update clawsweeper app wording
* fix(auth): scope external CLI auth status overlays * fix: pass external auth config to overlays * fix(auth): keep no-prompt CLI reads file-only * docs: update clawsweeper app wording
* fix(auth): scope external CLI auth status overlays * fix: pass external auth config to overlays * fix(auth): keep no-prompt CLI reads file-only * docs: update clawsweeper app wording
* fix(auth): scope external CLI auth status overlays * fix: pass external auth config to overlays * fix(auth): keep no-prompt CLI reads file-only * docs: update clawsweeper app wording
Summary
allowKeychainPrompt: falsethrough Claude/Codex CLI discovery while still allowing cached positive Keychain credentialsFixes #73908.
Tests
git diff --checkpnpm exec oxfmt --check --threads=1 CHANGELOG.md docs/auth-credential-semantics.md src/agents/auth-profiles.external-cli-sync.test.ts src/agents/auth-profiles.store-cache.test.ts src/agents/auth-profiles/external-auth.ts src/agents/auth-profiles/external-cli-sync.ts src/agents/auth-profiles/external-oauth.test.ts src/agents/auth-profiles/store.ts src/agents/cli-credentials.test.ts src/agents/cli-credentials.ts src/gateway/server-methods/models-auth-status.test.ts src/gateway/server-methods/models-auth-status.tspnpm test src/agents/auth-profiles.external-cli-sync.test.ts src/agents/auth-profiles.store-cache.test.ts src/agents/auth-profiles/external-oauth.test.ts src/agents/cli-credentials.test.ts src/gateway/server-methods/models-auth-status.test.ts