fix: respect replace mode in default models list#94825
Conversation
|
Codex review: needs changes before merge. Reviewed June 21, 2026, 9:37 AM ET / 13:37 UTC. Summary PR surface: Source +22, Tests +123. Total +145 across 2 files. Reproducibility: yes. Source inspection shows current main's default Review metrics: 1 noteworthy metric.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. 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: Preserve the default-list-only replace-mode gate, type the new catalog fixtures against the real catalog row shape, and land one canonical fix for #94705 after checks pass. Do we have a high-confidence way to reproduce the issue? Yes. Source inspection shows current main's default Is this the best way to solve the issue? Yes for the runtime fix shape, but not as a mergeable branch yet. The patch scopes filtering to the default authenticated catalog append and preserves explicit browse paths, but the new tests need a type repair before this can land. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 11a2e03bd4de. Label changesLabel justifications:
Evidence reviewedPR surface: Source +22, Tests +123. Total +145 across 2 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
|
Summary
openclaw models liststop appending auth-backed built-in catalogs whenmodels.modeis"replace"and the config does not opt into provider wildcard visibilityagents.defaults.models["provider/*"]Verification
node scripts/run-vitest.mjs src/commands/models.list.e2e.test.tsgit diff --checkopenclaw models list --jsonno longer shows unrelated auth-backed providers whenmodels.modeis"replace"with a restricted provider config.node --import tsx src/entry.ts models list --jsonon June 19, 2026 with a temporaryOPENCLAW_CONFIG_PATH,OPENCLAW_HOME, andOPENCLAW_STATE_DIR.OPENCLAW_HOME="$home" OPENCLAW_STATE_DIR="$state" OPENAI_API_KEY=test-openai GROQ_API_KEY=test-groq DEEPSEEK_API_KEY=test-deepseek XAI_API_KEY=test-xai OPENCLAW_CONFIG_PATH="$config" node --import tsx src/entry.ts models list --jsoncount: 3with keysdeepseek/deepseek-v4-pro,deepseek/deepseek-v4-flash, andxai/grok-4.3; noopenai/*orgroq/*rows were present.--allbehavior, and wildcard-provider CLI evidence outside the focused unit regression coverage.Closes #94705