fix(anthropic): preserve configured Claude image capability#84180
Conversation
|
Codex review: passed. Workflow note: Future ClawSweeper reviews update this same comment in place. How this review workflow works
Summary Reproducibility: yes. at source level: current main renders configured/default list rows without calling the provider normalizer, while the Anthropic hook is where Claude 4 image capability is restored. The PR body also supplies terminal output showing the fixed configured row as PR rating Rank-up moves:
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. Real behavior proof Next step before merge Security Review detailsBest possible solution: Land the provider-owned normalization path so Do we have a high-confidence way to reproduce the issue? Yes, at source level: current main renders configured/default list rows without calling the provider normalizer, while the Anthropic hook is where Claude 4 image capability is restored. The PR body also supplies terminal output showing the fixed configured row as Is this the best way to solve the issue? Yes. Reusing Label changes:
What I checked:
Likely related people:
Codex review notes: model gpt-5.5, reasoning high; reviewed against ad925bd43b1e. |
3fac142 to
be8789b
Compare
be8789b to
3bc1284
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
Pushed Root cause: the forward-compat model-list test mocks Validation on PR head
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
…gured-claude-image-capability
|
ClawSweeper PR egg ✨ Hatched: 🥚 common Pearl Review Wisp Hatch commandComment Hatchability rules:
Rarity: 🥚 common. What is this egg doing here?
|
|
Pushed a follow-up for the new Local validation:
Previous validation still stands for the model fixture fix:
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@clawsweeper automerge |
|
🦞✅ Source: What merged:
Automerge notes:
The automerge loop is complete. Automerge progress:
|
Summary: - The PR routes model-list row construction through provider-owned resolved-model normalization for configured ... rows, adds Anthropic regression coverage, updates focused test mocks/fixtures, and adds a changelog entry. - Reproducibility: yes. at source level: current main renders configured/default list rows without calling the ... ty is restored. The PR body also supplies terminal output showing the fixed configured row as `text+image`. Automerge notes: - PR branch already contained follow-up commit before automerge: test(models): update forward compat agent-scope mock - PR branch already contained follow-up commit before automerge: test(models): isolate provider catalog row tests - PR branch already contained follow-up commit before automerge: test(models): complete provider catalog fixtures - PR branch already contained follow-up commit before automerge: Merge remote-tracking branch 'upstream/main' into fix/anthropic-confi… - PR branch already contained follow-up commit before automerge: test(workflows): match alpha concurrency rules Validation: - ClawSweeper review passed for head 7a1caa7dff8ee0e5ee69e4e3a22b867d27115f9e. - Required merge gates passed before the squash merge. Prepared head SHA: 7a1caa7dff8ee0e5ee69e4e3a22b867d27115f9e Review: openclaw/openclaw#84180 (comment) Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
Summary: - The PR routes model-list row construction through provider-owned resolved-model normalization for configured ... rows, adds Anthropic regression coverage, updates focused test mocks/fixtures, and adds a changelog entry. - Reproducibility: yes. at source level: current main renders configured/default list rows without calling the ... ty is restored. The PR body also supplies terminal output showing the fixed configured row as `text+image`. Automerge notes: - PR branch already contained follow-up commit before automerge: test(models): update forward compat agent-scope mock - PR branch already contained follow-up commit before automerge: test(models): isolate provider catalog row tests - PR branch already contained follow-up commit before automerge: test(models): complete provider catalog fixtures - PR branch already contained follow-up commit before automerge: Merge remote-tracking branch 'upstream/main' into fix/anthropic-confi… - PR branch already contained follow-up commit before automerge: test(workflows): match alpha concurrency rules Validation: - ClawSweeper review passed for head 7a1caa7dff8ee0e5ee69e4e3a22b867d27115f9e. - Required merge gates passed before the squash merge. Prepared head SHA: 7a1caa7dff8ee0e5ee69e4e3a22b867d27115f9e Review: openclaw/openclaw#84180 (comment) Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
…#84180) Summary: - The PR routes model-list row construction through provider-owned resolved-model normalization for configured ... rows, adds Anthropic regression coverage, updates focused test mocks/fixtures, and adds a changelog entry. - Reproducibility: yes. at source level: current main renders configured/default list rows without calling the ... ty is restored. The PR body also supplies terminal output showing the fixed configured row as `text+image`. Automerge notes: - PR branch already contained follow-up commit before automerge: test(models): update forward compat agent-scope mock - PR branch already contained follow-up commit before automerge: test(models): isolate provider catalog row tests - PR branch already contained follow-up commit before automerge: test(models): complete provider catalog fixtures - PR branch already contained follow-up commit before automerge: Merge remote-tracking branch 'upstream/main' into fix/anthropic-confi… - PR branch already contained follow-up commit before automerge: test(workflows): match alpha concurrency rules Validation: - ClawSweeper review passed for head 7a1caa7. - Required merge gates passed before the squash merge. Prepared head SHA: 7a1caa7 Review: openclaw#84180 (comment) Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
…#84180) Summary: - The PR routes model-list row construction through provider-owned resolved-model normalization for configured ... rows, adds Anthropic regression coverage, updates focused test mocks/fixtures, and adds a changelog entry. - Reproducibility: yes. at source level: current main renders configured/default list rows without calling the ... ty is restored. The PR body also supplies terminal output showing the fixed configured row as `text+image`. Automerge notes: - PR branch already contained follow-up commit before automerge: test(models): update forward compat agent-scope mock - PR branch already contained follow-up commit before automerge: test(models): isolate provider catalog row tests - PR branch already contained follow-up commit before automerge: test(models): complete provider catalog fixtures - PR branch already contained follow-up commit before automerge: Merge remote-tracking branch 'upstream/main' into fix/anthropic-confi… - PR branch already contained follow-up commit before automerge: test(workflows): match alpha concurrency rules Validation: - ClawSweeper review passed for head 7a1caa7. - Required merge gates passed before the squash merge. Prepared head SHA: 7a1caa7 Review: openclaw#84180 (comment) Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
…#84180) Summary: - The PR routes model-list row construction through provider-owned resolved-model normalization for configured ... rows, adds Anthropic regression coverage, updates focused test mocks/fixtures, and adds a changelog entry. - Reproducibility: yes. at source level: current main renders configured/default list rows without calling the ... ty is restored. The PR body also supplies terminal output showing the fixed configured row as `text+image`. Automerge notes: - PR branch already contained follow-up commit before automerge: test(models): update forward compat agent-scope mock - PR branch already contained follow-up commit before automerge: test(models): isolate provider catalog row tests - PR branch already contained follow-up commit before automerge: test(models): complete provider catalog fixtures - PR branch already contained follow-up commit before automerge: Merge remote-tracking branch 'upstream/main' into fix/anthropic-confi… - PR branch already contained follow-up commit before automerge: test(workflows): match alpha concurrency rules Validation: - ClawSweeper review passed for head 7a1caa7. - Required merge gates passed before the squash merge. Prepared head SHA: 7a1caa7 Review: openclaw#84180 (comment) Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
…#84180) Summary: - The PR routes model-list row construction through provider-owned resolved-model normalization for configured ... rows, adds Anthropic regression coverage, updates focused test mocks/fixtures, and adds a changelog entry. - Reproducibility: yes. at source level: current main renders configured/default list rows without calling the ... ty is restored. The PR body also supplies terminal output showing the fixed configured row as `text+image`. Automerge notes: - PR branch already contained follow-up commit before automerge: test(models): update forward compat agent-scope mock - PR branch already contained follow-up commit before automerge: test(models): isolate provider catalog row tests - PR branch already contained follow-up commit before automerge: test(models): complete provider catalog fixtures - PR branch already contained follow-up commit before automerge: Merge remote-tracking branch 'upstream/main' into fix/anthropic-confi… - PR branch already contained follow-up commit before automerge: test(workflows): match alpha concurrency rules Validation: - ClawSweeper review passed for head 7a1caa7. - Required merge gates passed before the squash merge. Prepared head SHA: 7a1caa7 Review: openclaw#84180 (comment) Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
…#84180) Summary: - The PR routes model-list row construction through provider-owned resolved-model normalization for configured ... rows, adds Anthropic regression coverage, updates focused test mocks/fixtures, and adds a changelog entry. - Reproducibility: yes. at source level: current main renders configured/default list rows without calling the ... ty is restored. The PR body also supplies terminal output showing the fixed configured row as `text+image`. Automerge notes: - PR branch already contained follow-up commit before automerge: test(models): update forward compat agent-scope mock - PR branch already contained follow-up commit before automerge: test(models): isolate provider catalog row tests - PR branch already contained follow-up commit before automerge: test(models): complete provider catalog fixtures - PR branch already contained follow-up commit before automerge: Merge remote-tracking branch 'upstream/main' into fix/anthropic-confi… - PR branch already contained follow-up commit before automerge: test(workflows): match alpha concurrency rules Validation: - ClawSweeper review passed for head 7a1caa7. - Required merge gates passed before the squash merge. Prepared head SHA: 7a1caa7 Review: openclaw#84180 (comment) Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
…#84180) Summary: - The PR routes model-list row construction through provider-owned resolved-model normalization for configured ... rows, adds Anthropic regression coverage, updates focused test mocks/fixtures, and adds a changelog entry. - Reproducibility: yes. at source level: current main renders configured/default list rows without calling the ... ty is restored. The PR body also supplies terminal output showing the fixed configured row as `text+image`. Automerge notes: - PR branch already contained follow-up commit before automerge: test(models): update forward compat agent-scope mock - PR branch already contained follow-up commit before automerge: test(models): isolate provider catalog row tests - PR branch already contained follow-up commit before automerge: test(models): complete provider catalog fixtures - PR branch already contained follow-up commit before automerge: Merge remote-tracking branch 'upstream/main' into fix/anthropic-confi… - PR branch already contained follow-up commit before automerge: test(workflows): match alpha concurrency rules Validation: - ClawSweeper review passed for head 7a1caa7. - Required merge gates passed before the squash merge. Prepared head SHA: 7a1caa7 Review: openclaw#84180 (comment) Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
…#84180) Summary: - The PR routes model-list row construction through provider-owned resolved-model normalization for configured ... rows, adds Anthropic regression coverage, updates focused test mocks/fixtures, and adds a changelog entry. - Reproducibility: yes. at source level: current main renders configured/default list rows without calling the ... ty is restored. The PR body also supplies terminal output showing the fixed configured row as `text+image`. Automerge notes: - PR branch already contained follow-up commit before automerge: test(models): update forward compat agent-scope mock - PR branch already contained follow-up commit before automerge: test(models): isolate provider catalog row tests - PR branch already contained follow-up commit before automerge: test(models): complete provider catalog fixtures - PR branch already contained follow-up commit before automerge: Merge remote-tracking branch 'upstream/main' into fix/anthropic-confi… - PR branch already contained follow-up commit before automerge: test(workflows): match alpha concurrency rules Validation: - ClawSweeper review passed for head 7a1caa7. - Required merge gates passed before the squash merge. Prepared head SHA: 7a1caa7 Review: openclaw#84180 (comment) Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
…#84180) Summary: - The PR routes model-list row construction through provider-owned resolved-model normalization for configured ... rows, adds Anthropic regression coverage, updates focused test mocks/fixtures, and adds a changelog entry. - Reproducibility: yes. at source level: current main renders configured/default list rows without calling the ... ty is restored. The PR body also supplies terminal output showing the fixed configured row as `text+image`. Automerge notes: - PR branch already contained follow-up commit before automerge: test(models): update forward compat agent-scope mock - PR branch already contained follow-up commit before automerge: test(models): isolate provider catalog row tests - PR branch already contained follow-up commit before automerge: test(models): complete provider catalog fixtures - PR branch already contained follow-up commit before automerge: Merge remote-tracking branch 'upstream/main' into fix/anthropic-confi… - PR branch already contained follow-up commit before automerge: test(workflows): match alpha concurrency rules Validation: - ClawSweeper review passed for head 7a1caa7. - Required merge gates passed before the squash merge. Prepared head SHA: 7a1caa7 Review: openclaw#84180 (comment) Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
…#84180) Summary: - The PR routes model-list row construction through provider-owned resolved-model normalization for configured ... rows, adds Anthropic regression coverage, updates focused test mocks/fixtures, and adds a changelog entry. - Reproducibility: yes. at source level: current main renders configured/default list rows without calling the ... ty is restored. The PR body also supplies terminal output showing the fixed configured row as `text+image`. Automerge notes: - PR branch already contained follow-up commit before automerge: test(models): update forward compat agent-scope mock - PR branch already contained follow-up commit before automerge: test(models): isolate provider catalog row tests - PR branch already contained follow-up commit before automerge: test(models): complete provider catalog fixtures - PR branch already contained follow-up commit before automerge: Merge remote-tracking branch 'upstream/main' into fix/anthropic-confi… - PR branch already contained follow-up commit before automerge: test(workflows): match alpha concurrency rules Validation: - ClawSweeper review passed for head 7a1caa7. - Required merge gates passed before the squash merge. Prepared head SHA: 7a1caa7 Review: openclaw#84180 (comment) Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
…#84180) Summary: - The PR routes model-list row construction through provider-owned resolved-model normalization for configured ... rows, adds Anthropic regression coverage, updates focused test mocks/fixtures, and adds a changelog entry. - Reproducibility: yes. at source level: current main renders configured/default list rows without calling the ... ty is restored. The PR body also supplies terminal output showing the fixed configured row as `text+image`. Automerge notes: - PR branch already contained follow-up commit before automerge: test(models): update forward compat agent-scope mock - PR branch already contained follow-up commit before automerge: test(models): isolate provider catalog row tests - PR branch already contained follow-up commit before automerge: test(models): complete provider catalog fixtures - PR branch already contained follow-up commit before automerge: Merge remote-tracking branch 'upstream/main' into fix/anthropic-confi… - PR branch already contained follow-up commit before automerge: test(workflows): match alpha concurrency rules Validation: - ClawSweeper review passed for head 7a1caa7. - Required merge gates passed before the squash merge. Prepared head SHA: 7a1caa7 Review: openclaw#84180 (comment) Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
…#84180) Summary: - The PR routes model-list row construction through provider-owned resolved-model normalization for configured ... rows, adds Anthropic regression coverage, updates focused test mocks/fixtures, and adds a changelog entry. - Reproducibility: yes. at source level: current main renders configured/default list rows without calling the ... ty is restored. The PR body also supplies terminal output showing the fixed configured row as `text+image`. Automerge notes: - PR branch already contained follow-up commit before automerge: test(models): update forward compat agent-scope mock - PR branch already contained follow-up commit before automerge: test(models): isolate provider catalog row tests - PR branch already contained follow-up commit before automerge: test(models): complete provider catalog fixtures - PR branch already contained follow-up commit before automerge: Merge remote-tracking branch 'upstream/main' into fix/anthropic-confi… - PR branch already contained follow-up commit before automerge: test(workflows): match alpha concurrency rules Validation: - ClawSweeper review passed for head 7a1caa7. - Required merge gates passed before the squash merge. Prepared head SHA: 7a1caa7 Review: openclaw#84180 (comment) Co-authored-by: Andy Ye <35905412+TurboTheTurtle@users.noreply.github.com> Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com> Approved-by: takhoffman Co-authored-by: takhoffman <781889+takhoffman@users.noreply.github.com>
Summary
models listrows through provider-owned resolved-model normalization before displaying model capabilitiesextensions/anthropicinstead of duplicating Claude prefix data in coreanthropic/claude-sonnet-4-5configured/default path while preserving generic configured-row fallback behaviorReal behavior proof
agents.defaults.model = "anthropic/claude-sonnet-4-5"could still resolve through a stale text-only configured/catalog path, causing image input to be treated as unsupported even after the provider-discovered row fix.3bc1284add, using an isolatedOPENCLAW_HOME=/private/tmp/openclaw-83756-proofandOPENCLAW_CONFIG_PATH=/private/tmp/openclaw-83756-proof/.openclaw/openclaw.jsonwith onlyagents.defaults.modelset toanthropic/claude-sonnet-4-5.{ "count": 1, "models": [ { "key": "anthropic/claude-sonnet-4-5", "name": "claude-sonnet-4-5", "input": "text+image", "contextWindow": 200000, "local": false, "available": false, "tags": [ "default" ], "missing": false } ] }input: "text+image"instead of text-only. The configured/default list row reaches the existing Anthropic provider-ownednormalizeResolvedModelhook, so the same plugin-owned capability policy is used for this stale catalog path.Validation
pnpm test src/agents/pi-embedded-runner/model.inline-provider.test.ts src/commands/models.list.e2e.test.tspnpm exec oxfmt --check --threads=1 src/agents/pi-embedded-runner/model.inline-provider.ts src/agents/pi-embedded-runner/model.inline-provider.test.ts src/commands/models/list.rows.ts src/commands/models/list.list-command.ts src/commands/models.list.e2e.test.ts CHANGELOG.mdgit diff --checkFollow-up for #83756 (comment).