Skip to content

fix(model-fallback): re-throw LiveSessionModelSwitchError for outer retry loop (#101676)#101715

Closed
LZY3538 wants to merge 10 commits into
openclaw:mainfrom
LZY3538:fix/live-model-switch-mid-attempt-101676
Closed

fix(model-fallback): re-throw LiveSessionModelSwitchError for outer retry loop (#101676)#101715
LZY3538 wants to merge 10 commits into
openclaw:mainfrom
LZY3538:fix/live-model-switch-mid-attempt-101676

Conversation

@LZY3538

@LZY3538 LZY3538 commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

What Problem This Solves

When a user changes the model mid-turn (via /model, session_status override, or cron job) while the AI is actively generating a response, the run terminates with an error instead of retrying the turn against the newly-selected model.

Observed before fix (#101676):

info: live session model switch requested: claude-sonnet-5 -> claude-sonnet-4-6
warn: model_fallback_decision decision=candidate_failed ... fallbackConfigured=false
error: Embedded agent failed before reply: Live session model switch requested

Why This Change Was Made

The runWithModelFallback loop catches LiveSessionModelSwitchError from the embedded runner. When the switch target is not a later fallback candidate, it was wrapping the error as FailoverError. With no more candidates, throwFallbackFailureSummary produced FallbackSummaryError — not LiveSessionModelSwitchError — so the outer retry loop never caught it.

Fix: A new helper isLiveSessionModelSwitchTargetInCandidates distinguishes between:

Scenario Behavior
Target IS a later fallback candidate Redirect there (preserves #57471)
Target IS in candidates but stale (same/earlier) Failover → continue fallback (preserves #58496)
Target NOT in candidates (user-requested switch) Rethrow → outer loop retries
Auth-profile set, change, or clear Rethrow → outer loop applies credential change

The helper checks authProfileId || authProfileIdSource to handle credential set, change, and clear (not just set).

Evidence

Runtime Before/After: Reproduced on This PR Head

Before fix (origin/main): LiveSessionModelSwitchError wrapped as FailoverError → turn fails.

live session model switch requested: anthropic/claude-haiku-3-5 -> openrouter/openrouter/free
model_fallback/decision: decision=candidate_failed reason=unknown next=none
                         detail=Live session model switch requested: openrouter/openrouter/free
FailoverError: Live session model switch requested: openrouter/openrouter/free

After fix (this PR head): LiveSessionModelSwitchError re-thrown → outer loop retries → turn completes.

live session model switch requested: anthropic/claude-haiku-3-5 -> openrouter/openrouter/free
Live session model switch in subagent run: switching to openrouter/openrouter/free
"winnerProvider": "openrouter"
"winnerModel": "openrouter/free"

Focused Tests — Eight Control-Flow Branches

 ✓ re-throws when switch target is not a configured candidate (#101676)
 ✓ re-throws when target is not a later fallback candidate (#101676)
 ✓ re-throws on last candidate when switch target not in candidates (#101676)
 ✓ retries with switched model after re-throw (#101676 end-to-end)
 ✓ re-throws for auth-profile set on same model (#101676)
 ✓ re-throws for auth-profile clear on same model (#101676)
 ✓ jumps to a later candidate (#57471, preserved)
 ✓ keeps stale same-candidate switch in fallback rotation (#58496, preserved)

Full Test Suite

model-fallback.test.ts:               119 passed
live-model-switch.test.ts:             21 passed
agent-command.live-model-switch.test.ts: 76 passed
Total: 216 passed

Changes

File + - Net
src/agents/model-fallback.ts +68 -29 +39
src/agents/model-fallback.test.ts +207 -19 +188
scripts/live-model-switch-proof.ts +325 0 +325

Closes #101676.

🤖 Generated with Claude Code

@openclaw-barnacle openclaw-barnacle Bot added agents Agent runtime and tooling size: S labels Jul 7, 2026
@clawsweeper

clawsweeper Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed July 8, 2026, 5:30 AM ET / 09:30 UTC.

Summary
The branch updates model fallback to rethrow live-session model/auth-profile switch control errors for non-candidate or credential-only switches, adds regression tests, and adds proof scripts.

PR surface: Source +37, Tests +155, Other +483. Total +675 across 4 files.

Reproducibility: yes. at source level. Current main throws LiveSessionModelSwitchError from the embedded runner, then model fallback wraps a redirect miss as FailoverError before the existing outer retry loop can catch it.

Review metrics: none identified.

Root-cause cluster
Relationship: fixed_by_candidate
Canonical: #101676
Summary: This PR is a candidate fix for the canonical mid-attempt live model-switch failure; the older open PR covers a narrower version of the same issue, while older closed reports cover adjacent fallback-loop invariants preserved here.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

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:

  • none.

Risk before merge

  • [P1] The live PR is mergeable but still reported as behind the base branch, so maintainers should rely on the exact merge-result checks before landing.

Maintainer options:

  1. Decide the mitigation before merge
    Land the focused model-fallback fix after exact-head and merge-result checks are green, preserving coverage for non-candidate switches, auth-profile set/clear, later-candidate redirects, and stale in-chain fallback rotation.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Next step before merge

  • No ClawSweeper repair job is needed; the remaining action is maintainer merge review after required checks and merge-result validation.

Security
Cleared: No concrete security or supply-chain regression found; the diff does not change dependencies, workflows, permissions, package metadata, secrets, or install/build hooks.

Review details

Best possible solution:

Land the focused model-fallback fix after exact-head and merge-result checks are green, preserving coverage for non-candidate switches, auth-profile set/clear, later-candidate redirects, and stale in-chain fallback rotation.

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

Yes, at source level. Current main throws LiveSessionModelSwitchError from the embedded runner, then model fallback wraps a redirect miss as FailoverError before the existing outer retry loop can catch it.

Is this the best way to solve the issue?

Yes. Rethrowing at the model-fallback boundary is the narrow maintainable fix because the existing agent and cron callers already own bounded retries and state application, while candidate membership preserves stale fallback-loop protection.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 4ae8d735bf54.

Label changes

Label justifications:

  • P1: The PR targets an active agent workflow where mid-turn model or credential switches can terminate user work instead of retrying.
  • 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 is present: the PR includes before/after live-switch output and a follow-up runWithModelFallback harness transcript, with the latest commit only relaxing the proof harness SHA check.
  • proof: sufficient: Contributor real behavior proof is sufficient. Sufficient terminal proof is present: the PR includes before/after live-switch output and a follow-up runWithModelFallback harness transcript, with the latest commit only relaxing the proof harness SHA check.
Evidence reviewed

PR surface:

Source +37, Tests +155, Other +483. Total +675 across 4 files.

View PR surface stats
Area Files Added Removed Net
Source 1 66 29 +37
Tests 1 174 19 +155
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 2 483 0 +483
Total 4 723 48 +675

What I checked:

  • Current-main failure boundary: Current main catches LiveSessionModelSwitchError after later-candidate redirect misses and normalizes it into a FailoverError, so the outer retry loop cannot see a non-candidate live switch. (src/agents/model-fallback.ts:1813, 4ae8d735bf54)
  • PR runtime fix: The PR head rethrows auth-profile changes before redirect matching, keeps stale in-candidate switches in failover rotation, and rethrows non-candidate switches to the caller. (src/agents/model-fallback.ts:1832, 7f833859a102)
  • Regression coverage: The PR tests non-candidate switches, later-candidate redirects, stale same-candidate fallback rotation, last-candidate non-candidate switches, and auth-profile set/clear propagation. (src/agents/model-fallback.test.ts:1930, 7f833859a102)
  • Outer retry caller: The subagent command loop already catches LiveSessionModelSwitchError, bounds retries, validates the target model, and updates run state before retrying. (src/agents/agent-command.ts:2238, 4ae8d735bf54)
  • Sibling retry path: The cron isolated-agent runner also catches LiveSessionModelSwitchError, bounds retries, updates liveSelection including authProfileId/authProfileIdSource, and persists before retrying. (src/cron/isolated-agent/run-executor.ts:644, 4ae8d735bf54)
  • Real behavior proof: The PR body and follow-up comment provide terminal before/after output plus a runWithModelFallback proof-harness transcript; the latest head only changes the harness SHA guard and does not alter the runtime fix. (scripts/proof-harness.ts:29, 7f833859a102)

Likely related people:

  • vincentkoc: Current-main blame attributes the reviewed model-fallback live-switch block and adjacent retry paths to commit 3dbe98a from PR 101904. (role: recent area contributor; confidence: medium; commits: 3dbe98a1f737; files: src/agents/model-fallback.ts, src/agents/agent-command.ts, src/agents/embedded-agent-runner/run.ts)
  • Mlightsnow: Commit 5471548 from PR 58589 added the older live-session model-switch failover behavior that this PR preserves for stale in-chain targets. (role: introduced related fallback behavior; confidence: medium; commits: 547154865bc0; files: src/agents/model-fallback.ts, src/agents/model-fallback.test.ts)
  • openperf: PR 58178 introduced subagent LiveSessionModelSwitchError retry handling that this PR now relies on once model fallback rethrows the control error. (role: adjacent outer-retry contributor; confidence: medium; commits: 17f086c02180; files: src/agents/agent-command.ts, src/agents/agent-command.live-model-switch.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.
Review history (16 earlier review cycles; latest 8 shown)
  • reviewed 2026-07-08T06:06:21.372Z sha 804e2f6 :: needs real behavior proof before merge. :: [P2] Handle auth-profile live switches in the guard | [P3] Update failover docs for non-candidate switches
  • reviewed 2026-07-08T06:19:58.597Z sha 804e2f6 :: needs real behavior proof before merge. :: [P2] Handle auth-profile live switches in the guard | [P3] Update failover docs for non-candidate switches
  • reviewed 2026-07-08T06:39:45.922Z sha e4939d9 :: needs real behavior proof before merge. :: [P2] Handle auth-profile clear switches | [P3] Update failover docs for live-switch escapes
  • reviewed 2026-07-08T07:11:58.844Z sha e4939d9 :: needs real behavior proof before merge. :: [P2] Handle auth-profile clear switches | [P3] Update failover docs for live-switch escapes
  • reviewed 2026-07-08T08:24:46.629Z sha 40be825 :: needs real behavior proof before merge. :: [P2] Rethrow auth-profile switches before redirecting | [P3] Update failover docs for live-switch escapes
  • reviewed 2026-07-08T08:32:05.284Z sha 40be825 :: needs real behavior proof before merge. :: [P2] Rethrow auth-profile switches before redirecting | [P3] Update failover docs for live-switch escapes
  • reviewed 2026-07-08T09:06:05.415Z sha 4877ddd :: needs changes before merge. :: [P2] Make the proof harness run on the current head
  • reviewed 2026-07-08T09:22:46.132Z sha 7f83385 :: needs maintainer review before merge. :: none

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. 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. labels Jul 7, 2026
@clawsweeper

clawsweeper Bot commented Jul 7, 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.

@LZY3538

LZY3538 commented Jul 7, 2026

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. labels Jul 7, 2026
@LZY3538
LZY3538 force-pushed the fix/live-model-switch-mid-attempt-101676 branch from 49d0d88 to f476d12 Compare July 8, 2026 01:36
@openclaw-barnacle openclaw-barnacle Bot added scripts Repository scripts size: L and removed size: S labels Jul 8, 2026
@clawsweeper clawsweeper Bot added rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. and removed rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. 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. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jul 8, 2026
@clawsweeper

clawsweeper Bot commented Jul 8, 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.

@LZY3538
LZY3538 force-pushed the fix/live-model-switch-mid-attempt-101676 branch from abb2392 to 808c9d4 Compare July 8, 2026 04:44
@clawsweeper clawsweeper Bot added the merge-risk: 🚨 automation 🚨 May affect CI, automerge, proof capture, label sync, or maintainer automation. label Jul 8, 2026
@clawsweeper

clawsweeper Bot commented Jul 8, 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.

…etry loop (openclaw#101676)

When a live model switch is requested mid-attempt and the switch
target is not a later fallback candidate, the fallback loop was
wrapping LiveSessionModelSwitchError as FailoverError. With no
remaining fallbacks configured this reached throwFallbackFailureSummary
which produced a FallbackSummaryError — not a LiveSessionModelSwitchError,
so the outer retry loop in agent-command.ts never caught it and the
run terminated.

Instead, re-throw LiveSessionModelSwitchError directly so the outer
retry loop can restart the turn against the newly-selected model.
The outer loop has its own bounded retry count (MAX_LIVE_SWITCH_RETRIES),
so this cannot loop forever. The existing findLiveSessionModelSwitchRedirectIndex
redirect-to-later-candidate behavior is preserved unchanged.

Co-Authored-By: Claude <[email protected]>
LZY3538 and others added 4 commits July 8, 2026 13:54
…utside fallback list (openclaw#101676)

The initial fix re-threw LiveSessionModelSwitchError for every
redirect miss, including stale same/earlier targets that are still
in the configured fallback chain.  This would regress openclaw#58496 by
letting conflicting fallback switches escape to the outer retry loop
instead of advancing to configured fallback candidates.

Narrow the rethrow: only propagate the error when the switch target
is not in the candidate list at all (a genuine user-requested switch).
Stale same/earlier targets that ARE in the candidate list remain in
fallback rotation, preserving the existing stale-switch guard.

Co-Authored-By: Claude <[email protected]>
…dalone live-switch proof (openclaw#101676)

- Add integration test bridging the mock gap: real runWithModelFallback
  → isLiveSessionModelSwitchTargetInCandidates → false → throw err
  → outer retry loop catch → retry with switched model → success
- Add standalone proof script (scripts/live-model-switch-proof.ts) that
  exercises the real runWithModelFallback through production-equivalent
  outer retry loops for main agent, subagent, and bounded retry guard
- All 214 related tests pass (117+21+76)

Co-Authored-By: Claude <[email protected]>
- Remove unnecessary template literal (no-unnecessary-template-expression)
- Add :unknown type to catch callback (use-unknown-in-catch-callback-variable)

Co-Authored-By: Claude <[email protected]>
@LZY3538
LZY3538 force-pushed the fix/live-model-switch-mid-attempt-101676 branch from 808c9d4 to 804e2f6 Compare July 8, 2026 05:58
@clawsweeper

clawsweeper Bot commented Jul 8, 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.

@clawsweeper clawsweeper Bot removed the merge-risk: 🚨 automation 🚨 May affect CI, automerge, proof capture, label sync, or maintainer automation. label Jul 8, 2026
… outer loop (openclaw#101676)

isLiveSessionModelSwitchTargetInCandidates only compared provider/model,
so credential-only switches (same model, different authProfileId) were
treated as stale in-chain switches, wrapped as FailoverError, and the
outer retry loop never applied the new auth profile.

Return false when the error carries an authProfileId so the outer loop
can apply the credential change via applyLiveModelSwitchToRun.

Co-Authored-By: Claude <[email protected]>
@clawsweeper

clawsweeper Bot commented Jul 8, 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.

…penclaw#101676)

isLiveSessionModelSwitchTargetInCandidates only checked authProfileId
(truthy), so auth-profile clears (same model, authProfileId=undefined
but authProfileIdSource set) fell through to candidate matching and were
wrapped as FailoverError.  The outer retry loop never received the
clear signal, leaving the session on stale credentials.

Check authProfileId || authProfileIdSource to cover set, change, and
clear of auth profiles.

Co-Authored-By: Claude <[email protected]>
@clawsweeper

clawsweeper Bot commented Jul 8, 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.

…ect (openclaw#101676)

Move the auth-profile guard above findLiveSessionModelSwitchRedirectIndex
so credential changes (set/change/clear) always re-throw to the outer
retry loop regardless of whether the target provider/model happens to
be a later fallback candidate.

Previously the redirect check ran first, so auth-only switches whose
model appeared later in the candidate list were redirected instead of
reaching the outer loop — losing the credential change.

Co-Authored-By: Claude <[email protected]>
@LZY3538

LZY3538 commented Jul 8, 2026

Copy link
Copy Markdown
Contributor Author

Real Behavior Proof — PR Head 4ba5dbe817

Method

Self-contained harness using npx tsx (available in project devDependencies). Exercises the real runWithModelFallback at this exact commit SHA.

Transcript

$ git rev-parse --short HEAD
4ba5dbe817

$ npx tsx scripts/proof-harness.ts

  ✅ Model switch (target NOT in candidates → re-throw → retry) (14357ms)
  ✅ Auth set (same model, re-throw → outer loop applies new creds) (61ms)
  ✅ Auth clear (same model, re-throw → outer loop clears creds) (58ms)

  Result: 3/3 passed, 0 failed
  HEAD:   4ba5dbe817

Paths Covered

Path Scenario Verifies
1 Model switch to non-candidate target LiveSessionModelSwitchError re-thrown → outer loop retries → success
2 Auth profile set (same model) Auth re-throw before redirect → authProfileId preserved
3 Auth profile clear (same model) Auth re-throw before redirect → authProfileId=undefined preserved

Harness

scripts/proof-harness.ts — uses real runWithModelFallback (not mocked), verifies exact HEAD, exercises all three control-flow branches.

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jul 8, 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.

@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: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. merge-risk: 🚨 session-state 🚨 May lose, corrupt, stale, or mis-associate session, agent, or context state. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jul 8, 2026
PROOF_HEAD env var is now optional; harness runs on current HEAD
without a stale default.  The SHA lock is applied via the PR comment
that invokes the harness, not the harness file itself.

Co-Authored-By: Claude <[email protected]>
@clawsweeper clawsweeper Bot added 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. 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 Jul 8, 2026
@openclaw-barnacle

Copy link
Copy Markdown

This pull request has been automatically marked as stale due to inactivity.
Please add updates or it will be closed.

@openclaw-barnacle openclaw-barnacle Bot added the stale Marked as stale due to inactivity label Jul 23, 2026
@LZY3538 LZY3538 closed this Jul 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agents Agent runtime and tooling P1 High-priority user-facing bug, regression, or broken workflow. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. scripts Repository scripts size: L stale Marked as stale due to inactivity 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.

Live model switch mid-attempt terminates the run instead of retrying against the new model

1 participant