Skip to content

fix(models): prefer exact configured provider refs before aliases#88232

Merged
steipete merged 4 commits into
openclaw:mainfrom
stevenepalmer:fix/model-alias-target-precedence
May 30, 2026
Merged

fix(models): prefer exact configured provider refs before aliases#88232
steipete merged 4 commits into
openclaw:mainfrom
stevenepalmer:fix/model-alias-target-precedence

Conversation

@stevenepalmer

@stevenepalmer stevenepalmer commented May 30, 2026

Copy link
Copy Markdown
Contributor

Summary

What problem does this PR solve?

  • Fixes model default resolution when agents.defaults.models contains an alias whose value is the same fully qualified custom provider ref used as agents.defaults.model.primary.
  • Before this change, a primary such as nemotron-bolt/nemotron-3-super-120b could be reverse-matched through alias key nemotron and collapse to openai/nemotron.
  • The fix makes exact configured custom provider refs authoritative before alias-value reverse matching.
  • Also updates the Crabbox wrapper tests that failed in CI after the repo default provider moved to Azure, so those tests explicitly exercise the non-Azure configured-provider path they assert.

Why does this matter now?

What is the intended outcome?

  • Direct use of a configured custom provider ref resolves to that provider/model.
  • Alias behavior still works when the user actually selects the alias.
  • Existing slash-form alias behavior remains covered by existing tests.

What is intentionally out of scope?

  • No schema changes.
  • No new model alias configuration surface.
  • No provider catalog or runtime auth changes.

What does success look like?

  • The issue repro resolves to nemotron-bolt/nemotron-3-super-120b instead of openai/nemotron.
  • Existing model-selection tests continue to pass.
  • The previously failing crabbox-wrapper CI tests pass under the current Azure default.

What should reviewers focus on?

  • The precedence change in resolveConfiguredModelRef.
  • Whether the exact configured provider check is narrow enough to preserve current alias behavior.
  • The small test-only Crabbox wrapper update, which now sets CRABBOX_PROVIDER=aws for tests that intentionally assert the non-Azure configured-provider path.

Linked context

Which issue does this close?

Closes #88218

Which issues, PRs, or discussions are related?

Related #88218

Was this requested by a maintainer or owner?

  • Picked from the open issue queue as a source-reproducible, queueable fix candidate.

Real behavior proof (required for external PRs)

  • Behavior or issue addressed: exact configured custom provider refs were being reverse-matched by agents.defaults.models alias values before the ref itself was parsed.

  • Real environment tested: local OpenClaw source checkout on Linux with Node/pnpm, running the actual resolver implementation from src/agents/model-selection.ts.

  • Exact steps or command run after this patch:

    COREPACK_HOME=/tmp/corepack pnpm exec tsx -e '
    import { resolveConfiguredModelRef } from "./src/agents/model-selection.ts";
    const cfg = {
    agents: { defaults: { model: { primary: "nemotron-bolt/nemotron-3-super-120b" }, models: { nemotron: { alias: "nemotron-bolt/nemotron-3-super-120b" } } } },
    models: { providers: { "nemotron-bolt": { api: "openai-completions", baseUrl: "http://127.0.0.1:8080/v1", models: [{ id: "nemotron-3-super-120b", name: "Nemotron" }] } } },
    };
    console.log(JSON.stringify(resolveConfiguredModelRef({ cfg: cfg as any, defaultProvider: "openai", defaultModel: "gpt-5.4" })));
    '

  • Evidence after fix: Terminal console output copied from the command above:

    {"provider":"nemotron-bolt","model":"nemotron-3-super-120b"}

  • Observed result after fix: the configured primary resolves to the custom provider/model instead of openai/nemotron.

  • What was not tested: a live gateway boot with a real self-hosted Nemotron backend.

  • Proof limitations or environment constraints: the issue is deterministic in the resolver and does not require contacting the model provider; the proof executes the production resolver path directly rather than starting a full gateway.

  • Before evidence (optional but encouraged): the added regression test failed before the implementation with Received { provider: "openai", model: "nemotron" }.

Tests and validation

Which commands did you run?

COREPACK_HOME=/tmp/corepack pnpm exec tsx -e '...resolver repro command above...'
COREPACK_HOME=/tmp/corepack node scripts/run-vitest.mjs run --config test/vitest/vitest.agents-core.config.ts src/agents/model-selection.test.ts -t "keeps exact configured provider refs" --reporter=verbose
COREPACK_HOME=/tmp/corepack node scripts/run-vitest.mjs run --config test/vitest/vitest.agents-core.config.ts src/agents/model-selection.test.ts --reporter=verbose
COREPACK_HOME=/tmp/corepack node scripts/run-vitest.mjs run --config test/vitest/vitest.tooling.config.ts test/scripts/crabbox-wrapper.test.ts -t "configured non-Azure provider" --reporter=verbose
COREPACK_HOME=/tmp/corepack node scripts/run-vitest.mjs run --config test/vitest/vitest.tooling.config.ts test/scripts/crabbox-wrapper.test.ts --reporter=verbose
git diff --check

What regression coverage was added or updated?

  • Added a focused resolveConfiguredModelRef regression test for an exact custom provider primary whose configured alias value points at the same ref.
  • Updated two Crabbox wrapper tests so the tests explicitly set CRABBOX_PROVIDER=aws when they assert the non-Azure configured-provider path.

What failed before this fix, if known?

  • The new model-selection regression test failed before the resolver change, returning openai/nemotron instead of nemotron-bolt/nemotron-3-super-120b.
  • CI build-artifacts also failed in test/scripts/crabbox-wrapper.test.ts because two tests expected the configured provider to be AWS while the current repo config defaults to Azure.

If no test was added, why not?

  • A test was added for the model-resolution regression, and failing CI tests were corrected.

Risk checklist

Did user-visible behavior change? (Yes/No)

Yes.

Did config, environment, or migration behavior change? (Yes/No)

No migration or environment change. Existing config resolution behavior changes for the reported alias-target collision.

Did security, auth, secrets, network, or tool execution behavior change? (Yes/No)

No.

What is the highest-risk area?

  • Model alias precedence: preserving existing slash-form alias and explicit alias behavior while fixing exact configured provider refs.
  • Keeping the Crabbox wrapper test update scoped to tests only.

How is that risk mitigated?

  • The model-resolution change is limited to exact configured custom provider refs.
  • Existing slash-form alias tests still pass.
  • The full src/agents/model-selection.test.ts suite passes.
  • The full test/scripts/crabbox-wrapper.test.ts suite passes.

Current review state

What is the next action?

  • CI rerun and reviewer feedback.

What is still waiting on author, maintainer, CI, or external proof?

  • Waiting on CI/review. The PR body was updated with after-fix terminal console output for the real behavior proof gate.

Which bot or reviewer comments were addressed?

  • Initial PR body was rewritten to follow the repository PR template.
  • Real behavior proof gate failure was addressed by adding explicit terminal console output evidence.
  • build-artifacts failure was addressed by updating the two affected Crabbox wrapper tests.

@openclaw-barnacle openclaw-barnacle Bot added agents Agent runtime and tooling size: S triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels May 30, 2026
@clawsweeper

clawsweeper Bot commented May 30, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed May 30, 2026, 1:08 PM ET / 17:08 UTC.

Summary
The branch changes resolveConfiguredModelRef to prefer exact configured provider refs or parsed slash-form primaries before bare reverse alias matches, and adds model-selection regression tests for custom, built-in, and auth-profile cases.

PR surface: Source +80, Tests +182. Total +262 across 2 files.

Reproducibility: yes. at source level. Current main checks reverse alias candidates before slash-form parsing, and the linked issue plus PR proof exercise the exact alias-target collision without requiring a live provider call.

Review metrics: 1 noteworthy metric.

  • Model default precedence: 1 precedence path changed. Existing agents.defaults.model.primary plus alias-target collision configs can resolve to a different provider/model after merge, so maintainers should explicitly accept the upgrade behavior.

Merge readiness
Overall: 🐚 platinum hermit
Proof: 🦞 diamond lobster
Patch quality: 🐚 platinum hermit
Result: ready for maintainer review.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

Risk before merge

  • [P1] Merging intentionally changes upgrade behavior for existing configs where a slash-form primary equals an alias target: those configs will resolve to the explicit provider/model instead of the default-provider alias key.
  • [P1] The sibling PR fix(agents): preserve qualified model alias targets #88237 targets the same regression, so maintainers should choose one canonical resolver rule and close or supersede the other path.

Maintainer options:

  1. Land this branch as canonical (recommended)
    If maintainers accept this broader precedence fix and its added coverage, merge this PR after required checks settle and close fix(agents): preserve qualified model alias targets #88237 as the duplicate implementation.
  2. Carry over sibling coverage first
    If maintainers prefer any smaller piece of the sibling PR, copy that focused coverage or implementation detail into the chosen branch before merging one PR.
  3. Use the sibling PR instead
    If maintainers choose fix(agents): preserve qualified model alias targets #88237 as the canonical fix, close this PR rather than keeping two divergent resolver branches open.

Next step before merge

  • No automated repair is needed; maintainer review should choose the canonical PR and accept the compatibility-sensitive provider-routing precedence after required checks settle.

Security
Cleared: The diff is limited to resolver logic and tests, with no dependency, workflow, credential, download, or package metadata changes.

Review details

Best possible solution:

Land one canonical resolver fix that preserves explicit provider/model refs ahead of bare reverse aliases while keeping slash-form alias behavior and auth-profile alias coverage, then close the duplicate implementation path after merge.

Do we have a high-confidence way to reproduce the issue?

Yes, at source level. Current main checks reverse alias candidates before slash-form parsing, and the linked issue plus PR proof exercise the exact alias-target collision without requiring a live provider call.

Is this the best way to solve the issue?

Yes, mostly. Moving exact configured provider refs and bare slash-form primaries ahead of bare reverse aliases is the narrow fix; the remaining maintainer decision is which duplicate PR should become canonical.

AGENTS.md: found and applied where relevant.

Codex review notes: model gpt-5.5, reasoning high; reviewed against 522da25932b3.

Label changes

Label changes:

  • add proof: sufficient: Contributor real behavior proof is sufficient. Sufficient terminal proof: the PR body shows after-fix output from running the production resolver path directly and returning the expected configured provider/model for this deterministic resolver bug.

Label justifications:

  • P1: The linked 5.x regression can make valid custom-provider configs fail at gateway startup.
  • merge-risk: 🚨 compatibility: The PR intentionally changes how existing model-default and alias-collision configs resolve during upgrade.
  • merge-risk: 🚨 auth-provider: The resolver change can select a different model provider, which affects provider routing and credentials used for agent startup.
  • rating: 🐚 platinum hermit: Overall readiness is 🐚 platinum hermit; proof is 🦞 diamond lobster and patch quality is 🐚 platinum hermit.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (terminal): Sufficient terminal proof: the PR body shows after-fix output from running the production resolver path directly and returning the expected configured provider/model for this deterministic resolver bug.
  • proof: sufficient: Contributor real behavior proof is sufficient. Sufficient terminal proof: the PR body shows after-fix output from running the production resolver path directly and returning the expected configured provider/model for this deterministic resolver bug.
Evidence reviewed

PR surface:

Source +80, Tests +182. Total +262 across 2 files.

View PR surface stats
Area Files Added Removed Net
Source 1 93 13 +80
Tests 1 182 0 +182
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 2 275 13 +262

What I checked:

  • Current-main root cause: Current main computes a reverse alias candidate from the configured primary before parsing the slash-form model ref, which can turn an alias target into the alias key under the default provider. (src/agents/model-selection-shared.ts:689, 522da25932b3)
  • PR implementation: The PR head adds an exact configured-provider check and parses slash-form primaries before falling through to bare reverse aliases, while keeping profile alias handling ahead of configured-provider stripping. (src/agents/model-selection-shared.ts:746, b21fad22b2f4)
  • Regression coverage: The PR adds tests for exact custom-provider refs, slash-form alias values pointing at them, built-in provider refs, and auth-profile alias precedence. (src/agents/model-selection.test.ts:1858, b21fad22b2f4)
  • Linked regression report: The linked issue reports the same 5.x startup failure with a minimal custom-provider config resolving to openai/nemotron instead of nemotron-bolt/nemotron-3-super-120b.
  • Duplicate implementation path: A second open PR, fix(agents): preserve qualified model alias targets #88237, targets the same linked regression with positive proof, so maintainers should land only one canonical precedence rule. (6c475bf22de9)
  • Feature history: Current-main blame routes the resolver branch to Peter Steinberger, and git log -G shows the model-selection alias path was recently carried by Peter Steinberger and Vincent Koc commits. (src/agents/model-selection-shared.ts:675, 05634708e053)

Likely related people:

  • steipete: Current-main blame for resolveConfiguredModelRef, model alias introduction, model config redesign, and the latest PR maintainer commits all point to this account as the strongest routing candidate for resolver precedence. (role: recent area contributor; confidence: high; commits: 05634708e053, 310d2db31241, 5c8e1b6eeff8; files: src/agents/model-selection-shared.ts, src/agents/model-selection.test.ts)
  • vincentkoc: History shows adjacent model-selection alias and provider inference work, including OpenRouter compatibility aliases and bare default provider inference tests. (role: adjacent model-selection contributor; confidence: medium; commits: d13869aab94d, db1d62b78466; files: src/agents/model-selection.test.ts)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

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
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added the rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. label May 30, 2026
@stevenepalmer
stevenepalmer force-pushed the fix/model-alias-target-precedence branch from c28ca80 to 0f30cfb Compare May 30, 2026 05:39
@openclaw-barnacle openclaw-barnacle Bot added proof: supplied External PR includes structured after-fix real behavior proof. and removed triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels May 30, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. P1 High-priority user-facing bug, regression, or broken workflow. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. and removed rating: 🌊 off-meta tidepool PR readiness rating does not apply to this item. labels May 30, 2026
@stevenepalmer
stevenepalmer force-pushed the fix/model-alias-target-precedence branch from 0f30cfb to 2886e87 Compare May 30, 2026 05:51
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 30, 2026
@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. labels May 30, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 30, 2026
@stevenepalmer

Copy link
Copy Markdown
Contributor Author

Updated this branch for the alias-precedence review feedback.

  • Broadened the resolver so already-qualified provider/model defaults win over bare reverse-alias matches, while slash-form alias keys keep their existing precedence.
  • Added built-in provider slash-form regression coverage and resolved the current upstream conflict in test/scripts/crabbox-wrapper.test.ts.
  • Validation passed: CI=true node scripts/test-projects.mjs src/agents/model-selection.test.ts test/scripts/crabbox-wrapper.test.ts; CI=true pnpm -s check:test-types; git diff --check upstream/main...HEAD; git merge-tree --write-tree HEAD upstream/main.

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented May 30, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. and removed rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. labels May 30, 2026
@clawsweeper clawsweeper Bot added the status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. label May 30, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 30, 2026
@stevenepalmer

Copy link
Copy Markdown
Contributor Author

Refreshed this branch on upstream/main at 6246ab621239a0ac6838a470f21ea03cc7bd77ea.

Validation:

  • node scripts/test-projects.mjs src/agents/model-selection.test.ts test/scripts/crabbox-wrapper.test.ts passed
  • node scripts/run-vitest.mjs run --config test/vitest/vitest.agents-core.config.ts passed in a clean credential env
  • pnpm -s check:test-types passed
  • git diff --check upstream/main...HEAD passed
  • git merge-tree --write-tree HEAD upstream/main passed

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented May 30, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 30, 2026
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 30, 2026
@stevenepalmer

Copy link
Copy Markdown
Contributor Author

Refreshed this branch on upstream/main at 538b40e3dba3cda9d5c34ffc660616fa7ec0cbb9.

Validation:

  • node scripts/test-projects.mjs src/agents/model-selection.test.ts test/scripts/crabbox-wrapper.test.ts passed
  • node scripts/run-vitest.mjs run --config test/vitest/vitest.agents-core.config.ts passed
  • pnpm -s tsgo:prod passed
  • pnpm -s check:test-types passed
  • git diff --check upstream/main...HEAD passed
  • git merge-tree --write-tree HEAD upstream/main passed

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented May 30, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

Re-review progress:

@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 30, 2026
@steipete steipete self-assigned this May 30, 2026
@steipete
steipete force-pushed the fix/model-alias-target-precedence branch from 538b40e to ac8d391 Compare May 30, 2026 16:36
@steipete
steipete force-pushed the fix/model-alias-target-precedence branch from ac8d391 to b21fad2 Compare May 30, 2026 17:01
@openclaw-barnacle openclaw-barnacle Bot removed the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 30, 2026
@clawsweeper clawsweeper Bot added the proof: sufficient ClawSweeper judged the real behavior proof convincing. label May 30, 2026
@steipete

Copy link
Copy Markdown
Contributor

Verification for head b21fad2.

Behavior addressed: exact configured provider/model defaults now win before reverse alias matches, while slash-form aliases and auth-profile alias stripping keep their previous precedence.

Real environment tested: local source checkout, GitHub CI on run 26689708781.

Exact steps or command run after this patch:

  • pnpm install --frozen-lockfile
  • node scripts/run-vitest.mjs src/agents/model-selection.test.ts --reporter=verbose
  • git diff --check
  • git diff --check origin/main...HEAD
  • .agents/skills/autoreview/scripts/autoreview --mode branch --base origin/main
  • gh run rerun 26689708781 --repo openclaw/openclaw --failed

Evidence after fix: local focused model-selection tests passed, 115 tests in src/agents/model-selection.test.ts. Autoreview reported clean with no accepted/actionable findings, overall patch correct 0.83. GitHub CI run 26689708781 passed the changed-surface and model-relevant checks, including Real behavior proof, checks-node-agentic-commands-models, check-prod-types, check-test-types, check-lint, check-guards, security-fast, actionlint, build-artifacts, CodeQL, and Opengrep OSS.

Observed result after fix: configured exact provider refs such as provider/model are preserved instead of being collapsed through bare alias reverse lookup; profile-qualified alias behavior remains covered.

What was not tested: no live provider call against an actual self-hosted Nemotron gateway backend. Two broad unrelated CI shards, checks-node-agentic-commands-doctor and checks-node-core-runtime-infra-state, failed twice by Vitest no-output timeout only, with no assertion failure in the touched model-selection surface.

@steipete steipete left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the model-selection precedence change and follow-up fixups. Focused regression coverage now covers exact configured provider refs, slash-form aliases, and auth-profile alias stripping.

@steipete
steipete merged commit 86e33d6 into openclaw:main May 30, 2026
180 of 184 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. P1 High-priority user-facing bug, regression, or broken workflow. proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: supplied External PR includes structured after-fix real behavior proof. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: M status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: agents.defaults.models aliases silently re-resolve target refs to openai/<alias-key> on 5.x

2 participants