fix: CLI auth status/probe path regression#75223
Conversation
|
Codex review: needs changes before merge. Reviewed May 31, 2026, 1:01 AM ET / 05:01 UTC. Summary PR surface: Source +6, Tests +112, Docs +1. Total +119 across 6 files. Reproducibility: yes. source-reproducible but not live-run here: current main's plain Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Copy recommended automerge instructionNext step before merge
Security Review findings
Review detailsBest possible solution: Port the narrow external-CLI status/probe discovery fix onto current main with focused regression coverage and no changelog or unrelated test churn. Do we have a high-confidence way to reproduce the issue? Yes, source-reproducible but not live-run here: current main's plain Is this the best way to solve the issue? Unclear as submitted: the status-store change is the right narrow direction, but the branch needs to be refreshed onto current main and trimmed before it is the best mergeable fix. Full review comments:
Overall correctness: patch is correct AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against e1a98171417c. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +6, Tests +112, Docs +1. Total +119 across 6 files. View PR surface stats
Acceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
🦞🔧 Source: I will update this PR branch, or open a safe credited replacement, if the repair worker finds a narrow fix. Automerge progress:
|
24edcd5 to
b2695bb
Compare
…claw-581fbea1d653 (validation-1)
…claw-581fbea1d653 (validation-2)
|
This pull request has been automatically marked as stale due to inactivity. |
Summary
Found one regression in the CLI auth status/probe path. The commit intentionally makes unscoped external CLI discovery skip missing runtime-only profiles, but
models statusandmodels status --probestill load the auth store without passing the providers they are about to report or probe.What ClawSweeper Is Fixing
models status --probemisses CLI-only credentials after scoped discovery (regression)src/commands/models/list.probe.ts:259src/agents/auth-profiles/external-cli-sync.ts:210now returns false for unscoped missing external CLI profiles unless a matching stored OAuth profile already exists.buildProbeTargetsstill callsensureAuthProfileStore(agentDir)withoutallowKeychainPrompt: false,externalCliProviderIds, orexternalCliProfileIds, even though the function receives the exactprovidersand probe profile filters atsrc/commands/models/list.probe.ts:254-256. A focused smoke with a temporary Codex CLI auth file confirmedresolveExternalCliAuthProfiles(emptyStore)returns[], whileresolveExternalCliAuthProfiles(emptyStore, { providerIds: ["openai-codex"] })returns["openai-codex:default"].openclaw models status --probewill build no profile target for that same credential. This produces false “nothing to probe” or missing-auth diagnostics for the provider most likely being checked.buildProbeTargets, load the store with a scope derived from the requested probe surface, for exampleensureAuthProfileStore(agentDir, { allowKeychainPrompt: false, config: cfg, externalCliProviderIds: providers, externalCliProfileIds: options.profileIds }). The plain status path atsrc/commands/models/list.status-command.ts:223should likewise pass the config-derived external CLI scope, matchingsrc/gateway/server-methods/models-auth-status.ts:296-301.Expected Repair Surface
src/commands/models/list.probe.tssrc/agents/auth-profiles.external-cli-scope.test.tssrc/agents/auth-profiles.external-cli-sync.test.tssrc/agents/auth-profiles/external-cli-scope.tssrc/agents/auth-profiles/external-cli-sync.tssrc/agents/model-auth.profiles.test.tssrc/agents/model-auth.tsSource And Review Context
ClawSweeper report: https://github.com/openclaw/clawsweeper/blob/main/records/openclaw-openclaw/commits/581fbea1d65355917886babffe4161f8b3178a12.md
Commit under review: 581fbea
Latest main at intake: 581fbea
Original commit author: Peter Steinberger
GitHub author: @steipete
Highest severity: medium
Review confidence: high
Diff:
54e6e3d7daf5d0d857edf756b35628a29d11c7f5..581fbea1d65355917886babffe4161f8b3178a12Changed files:
src/agents/auth-profiles.external-cli-scope.test.ts,src/agents/auth-profiles.external-cli-sync.test.ts,src/agents/auth-profiles/external-cli-scope.ts,src/agents/auth-profiles/external-cli-sync.ts,src/agents/model-auth.profiles.test.ts,src/agents/model-auth.tsCode read: changed files, auth store overlay path, external auth overlay, auth profile order, CLI model status/probe callers, gateway auth-status caller
Dependencies/web: no dependency changes; no web lookup needed
Expected validation
pnpm check:changedClawSweeper already ran:
pnpm docs:listpnpm install --frozen-lockfilepnpm 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/commands/models/list.probe.targets.test.tsgit diff --check 54e6e3d7daf5d0d857edf756b35628a29d11c7f5..581fbea1d65355917886babffe4161f8b3178a12Known review limits:
models status --probelive provider call, because the actionable regression is in target construction before network probing.ClawSweeper Guardrails
mainbefore changing code.ClawSweeper 🐠 replacement reef notes:
fish notes: model gpt-5.5, reasoning medium; reviewed against 24edcd5.