Skip to content

fix(agents): classify Zhipu GLM overload as overloaded for failover#93241

Merged
steipete merged 3 commits into
openclaw:mainfrom
0xghost42:zhipu-overload-failover
Jun 21, 2026
Merged

fix(agents): classify Zhipu GLM overload as overloaded for failover#93241
steipete merged 3 commits into
openclaw:mainfrom
0xghost42:zhipu-overload-failover

Conversation

@0xghost42

@0xghost42 0xghost42 commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Summary

Model fallback (agents.defaults.model.fallbacks) did not recover correctly when Zhipu (GLM) returned its overload error. Zhipu signals overload as HTTP 200 with the error in the body:

[1305][该模型当前访问量过大,请您稍后再试]

The Anthropic-compatible client surfaces that body as a thrown error, which runWithModelFallback normalizes via coerceToFailoverErrorisOverloadedErrorMessage. There was no pattern for this phrase, so the overload was not recognized as a failover reason.

This adds the distinctive overload phrase 访问量过大 ("traffic too high") to ERROR_PATTERNS.overloaded, next to the existing Chinese overload markers (服务过载, 当前负载过高). The error now classifies as overloaded — the failover reason the issue asks for — so the configured fallback is reached with the correct, overload-specific recovery semantics.

Closes #93211

Verification

Real behavior proof

  • Behavior addressed: Zhipu/GLM overload body [1305][该模型当前访问量过大,请您稍后再试] was not recognized as overloaded, so failover did not key on the provider-overload contract.
  • Real environment tested: drove the real runWithModelFallback orchestrator (the function the issue names as mishandling the error) in this checkout, before and after the patch, injecting the exact reported error at the throw point the Anthropic-compatible client surfaces it. No live Zhipu endpoint was available (no API key), so the [1305] body is reproduced at that runtime boundary rather than over the wire.
  • Exact steps or command run after this patch:
# orchestrator-level (real runWithModelFallback):
node scripts/run-vitest.mjs src/agents/model-fallback.test.ts -t "Zhipu"
# matcher-level:
node scripts/run-vitest.mjs src/agents/embedded-agent-helpers/failover-matches.test.ts
  • Evidence after fix: ran the orchestrator test with the overload pattern removed, then restored:
# BEFORE (pattern removed) — runWithModelFallback with the GLM body:
result.attempts[0].reason === "unknown"     # not recognized as overload

# AFTER (this patch):
result.attempts[0].reason === "overloaded"  # recognized; recovery keyed on overload
run called twice; fallback run === ["anthropic", "claude-haiku-3-5"]
  • Observed result after fix: with the patch the GLM overload error resolves to overloaded inside runWithModelFallback and the configured fallback model is attempted. For full honesty about current main: an unrecognized error already falls back generically with reason unknown when candidates remain, so the symptom from the 2026.6.5 report (no fallback at all) is partly masked on main; this patch supplies the correct classification (overloaded), which is what the issue requests and what carries the proper provider-overload retry/cooldown handling rather than the generic unknown path.
  • What was not tested: end-to-end delivery against the live Zhipu Anthropic-compatible endpoint (https://open.bigmodel.cn/api/anthropic) — no credentials. The orchestrator classification + fallback decision is the failover decision point, exercised above.

Coverage: failover-matches.test.ts → 25 passed (GLM body pinned as overloaded, not rate-limit/auth); model-fallback.test.ts → 80 passed (new orchestrator case asserts the GLM overload reaches the configured fallback keyed on overloaded).

@openclaw-barnacle openclaw-barnacle Bot added agents Agent runtime and tooling size: XS triage: mock-only-proof Candidate: PR proof only shows tests, mocks, snapshots, lint, typecheck, or CI. labels Jun 15, 2026
@clawsweeper

clawsweeper Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge. Reviewed June 20, 2026, 11:47 PM ET / 03:47 UTC.

Summary
The PR adds 访问量过大 to the shared overload matcher and adds matcher plus runWithModelFallback regression tests for the reported Zhipu GLM 1305 body.

PR surface: Source +1, Tests +31. Total +32 across 3 files.

Reproducibility: no. high-confidence live reproduction is present. Source inspection shows current main and v2026.6.9 lack the reported overload phrase, and the PR tests exercise the injected thrown-error boundary, but no real Z.AI endpoint or redacted OpenClaw fallback run was provided.

Review metrics: 1 noteworthy metric.

  • Shared failover matcher change: 1 generic overload phrase added. The matcher is shared across providers, so this small source change can alter fallback reason and cooldown behavior beyond the reported Z.AI route.

Root-cause cluster
Relationship: fixed_by_candidate
Canonical: #93211
Summary: This PR is the active candidate fix for the canonical Zhipu GLM 1305 overload classification issue; sibling PRs targeted the same root cause but are closed unmerged.

Members:

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

Merge readiness
Overall: 🧂 unranked krab
Proof: 🧂 unranked krab
Patch quality: 🐚 platinum hermit
Result: blocked until real behavior proof from a real setup is added.

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

Rank-up moves:

  • [P2] Add redacted terminal output, copied live output, logs, or a recording showing the reported Z.AI/OpenClaw overload body reaches the configured fallback after this patch; redact IP addresses, API keys, phone numbers, and non-public endpoints before posting.

Proof guidance:

  • [P1] Needs real behavior proof before merge: The PR supplies structured injected-error Vitest proof, but no redacted terminal output, logs, live output, linked artifact, or recording from a real Z.AI/OpenClaw fallback run. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.

Risk before merge

  • [P2] The PR still needs after-fix proof from a real setup; the current evidence is injected-error Vitest/orchestrator proof, not redacted terminal output, logs, live output, or a recording from a Z.AI/OpenClaw fallback run.
  • [P2] Adding a shared overload phrase changes fallback reason, cooldown, and provider/model routing behavior for any provider that emits the same Chinese high-traffic wording, not only Zhipu GLM.

Maintainer options:

  1. Require Redacted Real Fallback Proof (recommended)
    Ask for terminal output, copied live output, logs, or a recording showing the reported Z.AI/OpenClaw overload body reaches the configured fallback after this patch.
  2. Accept Provider-Neutral Phrase Matching
    Maintainers may intentionally accept that this Chinese high-traffic phrase should classify as overloaded for all providers that emit it.
  3. Move Classification To Z.AI Hook
    If shared phrase matching is too broad, move the recognition into the Z.AI provider classifyFailoverReason hook and keep regression coverage on that boundary.

Next step before merge

  • [P1] Human review remains needed for the real behavior proof gate and for maintainer acceptance of provider-neutral overload phrase matching.

Security
Cleared: The diff changes TypeScript classifier text and tests only; it adds no dependency, workflow, secret, package, or code-execution surface.

Review details

Best possible solution:

Land one canonical classifier fix once maintainers accept provider-neutral phrase matching and the PR has redacted real fallback proof or an explicit proof waiver; keep the linked issue open until merge.

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

No high-confidence live reproduction is present. Source inspection shows current main and v2026.6.9 lack the reported overload phrase, and the PR tests exercise the injected thrown-error boundary, but no real Z.AI endpoint or redacted OpenClaw fallback run was provided.

Is this the best way to solve the issue?

Likely yes, subject to maintainer acceptance and proof: the latest head avoids the rejected bare numeric matcher and uses the existing shared Chinese overload bucket. If maintainers want provider-specific scoping, the safer alternative is a Z.AI provider classifyFailoverReason hook.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 9750d887f502.

Label changes

Label justifications:

  • P2: The PR targets a normal provider/model fallback bug with limited but real Zhipu GLM user impact.
  • merge-risk: 🚨 compatibility: Changing shared failover classification can alter existing users' fallback and cooldown behavior during provider errors.
  • merge-risk: 🚨 auth-provider: The change affects provider/model fallback routing and auth-profile cooldown handling for configured model chains.
  • rating: 🧂 unranked krab: Overall readiness is 🧂 unranked krab; proof is 🧂 unranked krab and patch quality is 🐚 platinum hermit.
  • status: 📣 needs proof: The PR needs real behavior proof before ClawSweeper can clear the contributor ask. Needs real behavior proof before merge: The PR supplies structured injected-error Vitest proof, but no redacted terminal output, logs, live output, linked artifact, or recording from a real Z.AI/OpenClaw fallback run. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, the PR author or someone with repository write access can comment @clawsweeper re-review.
Evidence reviewed

PR surface:

Source +1, Tests +31. Total +32 across 3 files.

View PR surface stats
Area Files Added Removed Net
Source 1 1 0 +1
Tests 2 31 0 +31
Docs 0 0 0 0
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 3 32 0 +32

What I checked:

Likely related people:

  • vincentkoc: Current blame attributes the shared overload matcher to Vincent Koc, and a repository-member comment on the closed sibling PR gave ownership-boundary guidance for this exact root cause. (role: recent area contributor and reviewer; confidence: high; commits: 3968fea383b2; files: src/agents/embedded-agent-helpers/failover-matches.ts, src/plugins/provider-runtime.ts, extensions/zai/index.ts)
  • steipete: Recent history added GLM-5.2 support in the bundled Z.AI provider, and the latest PR head commit keeps this overload matching provider-neutral. (role: recent Z.AI and PR boundary contributor; confidence: high; commits: 735f59af7366, db79e94c89dc; files: extensions/zai/index.ts, src/agents/embedded-agent-helpers/failover-matches.ts, src/agents/model-fallback.test.ts)
  • Jason (Json): Commit history shows this author added structured provider error signals to hooks, which is the adjacent provider-owned classification boundary considered during review. (role: provider hook boundary author; confidence: medium; commits: 89975eea24a5; files: src/plugins/provider-runtime.ts, src/plugins/types.ts)
  • Mason Huang: Recent history includes provider quota/error classifier work in the same shared failover matcher area. (role: recent failover classifier contributor; confidence: medium; commits: 439dcbde3b1f; files: src/agents/embedded-agent-helpers/failover-matches.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.

@openclaw-barnacle openclaw-barnacle Bot added proof: supplied External PR includes structured after-fix real behavior proof. and removed triage: mock-only-proof Candidate: PR proof only shows tests, mocks, snapshots, lint, typecheck, or CI. labels Jun 15, 2026
@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. P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. labels Jun 15, 2026
@0xghost42

Copy link
Copy Markdown
Contributor Author

Strengthened the proof to the orchestrator level. Added a runWithModelFallback test that drives the real fallback path with the reported GLM body [1305][该模型当前访问量过大,请您稍后再试]:

  • with the overload pattern removed, the run classifies the error as reason: "unknown"
  • with this patch, it classifies as reason: "overloaded" and the configured fallback model is attempted (run called twice; fallback run ["anthropic", "claude-haiku-3-5"])

Commands and before/after are in the updated PR description. model-fallback.test.ts → 80 passed, failover-matches.test.ts → 25 passed. No live Zhipu endpoint (no credentials), so the [1305] body is injected at the throw boundary the Anthropic-compatible client surfaces it; the orchestrator classification + fallback decision is the failover decision point.

On the same-issue overlap with #93212: this branch changes only the message-pattern list (ERROR_PATTERNS.overloaded) and leaves the shared PROVIDER_SPECIFIC_PATTERNS untouched, so it does not add a bare numeric [1305] matcher that could classify unrelated providers' payloads as overloaded. Happy to defer to whichever branch maintainers prefer; flagging the scope difference so the choice is easy.

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 16, 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 status: 🔁 re-review loop A fresh ClawSweeper review was explicitly requested after the latest review. and removed status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Jun 16, 2026
@0xghost42
0xghost42 force-pushed the zhipu-overload-failover branch from ed503cd to e0eb3c4 Compare June 16, 2026 12:04
@0xghost42

Copy link
Copy Markdown
Contributor Author

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 17, 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 status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. merge-risk: 🚨 compatibility 🚨 May break existing users, config, migrations, defaults, or upgrade paths. and removed status: 🔁 re-review loop A fresh ClawSweeper review was explicitly requested after the latest review. labels Jun 19, 2026
@steipete
steipete force-pushed the zhipu-overload-failover branch from 7794eee to 92efb24 Compare June 21, 2026 02:29
@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. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. and removed 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. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. labels Jun 21, 2026
0xghost42 and others added 3 commits June 20, 2026 23:41
Zhipu (GLM) signals overload as HTTP 200 with body
"[1305][该模型当前访问量过大,请您稍后再试]". The failover classifier had no
pattern for it, so a configured model fallback never triggered and the
run failed outright. Add the distinctive overload phrase to the
overloaded message patterns, alongside the existing Chinese overload
markers, so failover keys on it.

Closes openclaw#93211
…Fallback

Drive the real runWithModelFallback orchestrator with the reported Zhipu
overload error [1305][该模型当前访问量过大,请您稍后再试]. Before the overload
pattern the run classifies the error as "unknown"; with it the recovery is
keyed on "overloaded" and falls back to the configured model. Covers openclaw#93211
at the orchestrator level alongside the matcher-level regression tests.
@steipete
steipete force-pushed the zhipu-overload-failover branch from 92efb24 to db79e94 Compare June 21, 2026 03:41
@steipete
steipete merged commit 6c10413 into openclaw:main Jun 21, 2026
156 checks passed
@steipete

Copy link
Copy Markdown
Contributor

Merged via squash.

Thanks @0xghost42!

github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jun 21, 2026
…penclaw#93241)

Merged via squash.

Prepared head SHA: db79e94
Co-authored-by: 0xghost42 <[email protected]>
Co-authored-by: steipete <[email protected]>
Reviewed-by: @steipete
eleboucher pushed a commit to eleboucher/homelab that referenced this pull request Jun 24, 2026
…26.6.10) (#1256)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/openclaw/openclaw](https://openclaw.ai) ([source](https://github.com/openclaw/openclaw)) | patch | `2026.6.9` → `2026.6.10` |

---

### Release Notes

<details>
<summary>openclaw/openclaw (ghcr.io/openclaw/openclaw)</summary>

### [`v2026.6.10`](https://github.com/openclaw/openclaw/blob/HEAD/CHANGELOG.md#2026610)

[Compare Source](openclaw/openclaw@v2026.6.9...v2026.6.10)

##### Highlights

- **Automatic fast mode for talks:** OpenClaw can enable fast mode for short conversational turns, then return to normal mode for longer runs with bounded fallback and delivery behavior. ([#&#8203;85104](openclaw/openclaw#85104)) Thanks [@&#8203;alexph-dev](https://github.com/alexph-dev) and [@&#8203;vincentkoc](https://github.com/vincentkoc).
- **More reliable model routing:** Zai model synthesis, GLM overload failover, and native reasoning-level selection now follow the active model catalog more consistently. ([#&#8203;94461](openclaw/openclaw#94461), [#&#8203;93241](openclaw/openclaw#93241), [#&#8203;94067](openclaw/openclaw#94067), [#&#8203;94136](openclaw/openclaw#94136)) Thanks [@&#8203;Pandah97](https://github.com/Pandah97), [@&#8203;chrysb](https://github.com/chrysb), [@&#8203;0xghost42](https://github.com/0xghost42), [@&#8203;zhengli0922](https://github.com/zhengli0922), [@&#8203;openperf](https://github.com/openperf), [@&#8203;civiltox](https://github.com/civiltox), and [@&#8203;BorClaw](https://github.com/BorClaw).
- **Safer session and channel state:** channel switches reset stale origin fields, and cron delivery awareness stays attached to the target session. ([#&#8203;95328](openclaw/openclaw#95328), [#&#8203;93580](openclaw/openclaw#93580)) Thanks [@&#8203;ZengWen-DT](https://github.com/ZengWen-DT), [@&#8203;jalehman](https://github.com/jalehman), [@&#8203;gorkem2020](https://github.com/gorkem2020), and [@&#8203;scotthuang](https://github.com/scotthuang).
- **Trusted policies survive hook composition:** composed hook registries keep the trusted tool policies required by approval-sensitive flows. ([#&#8203;94545](openclaw/openclaw#94545)) Thanks [@&#8203;jesse-merhi](https://github.com/jesse-merhi).

##### Changes

- **Agent and channel runtime:** fast-mode state now survives retries, fallback transitions, progress events, and embedded/CLI/ACP normalization; session and channel routing retain the current target and delivery context. ([#&#8203;85104](openclaw/openclaw#85104), [#&#8203;93580](openclaw/openclaw#93580), [#&#8203;95328](openclaw/openclaw#95328)) Thanks [@&#8203;alexph-dev](https://github.com/alexph-dev), [@&#8203;vincentkoc](https://github.com/vincentkoc), [@&#8203;scotthuang](https://github.com/scotthuang), [@&#8203;ZengWen-DT](https://github.com/ZengWen-DT), [@&#8203;jalehman](https://github.com/jalehman), and [@&#8203;gorkem2020](https://github.com/gorkem2020).
- **Provider behavior:** model catalogs now supply the correct Zai base URL, overload classification, and native reasoning controls for live-discovered models. ([#&#8203;94461](openclaw/openclaw#94461), [#&#8203;93241](openclaw/openclaw#93241), [#&#8203;94067](openclaw/openclaw#94067), [#&#8203;94136](openclaw/openclaw#94136)) Thanks [@&#8203;Pandah97](https://github.com/Pandah97), [@&#8203;chrysb](https://github.com/chrysb), [@&#8203;0xghost42](https://github.com/0xghost42), [@&#8203;zhengli0922](https://github.com/zhengli0922), [@&#8203;openperf](https://github.com/openperf), [@&#8203;civiltox](https://github.com/civiltox), and [@&#8203;BorClaw](https://github.com/BorClaw).

##### Fixes

- **Fast-mode and policy correctness:** fallback cutoffs and reset notices are bounded, repeated progress events remain visible, Codex service-tier state is normalized, and trusted policies are not lost when hook registries are composed. ([#&#8203;85104](openclaw/openclaw#85104), [#&#8203;94545](openclaw/openclaw#94545)) Thanks [@&#8203;alexph-dev](https://github.com/alexph-dev), [@&#8203;vincentkoc](https://github.com/vincentkoc), and [@&#8203;jesse-merhi](https://github.com/jesse-merhi).
- **Model and delivery edge cases:** Zai and GLM failover paths use the right runtime metadata, while stale channel-origin state no longer leaks across session changes. ([#&#8203;94461](openclaw/openclaw#94461), [#&#8203;93241](openclaw/openclaw#93241), [#&#8203;95328](openclaw/openclaw#95328)) Thanks [@&#8203;Pandah97](https://github.com/Pandah97), [@&#8203;chrysb](https://github.com/chrysb), [@&#8203;0xghost42](https://github.com/0xghost42), [@&#8203;zhengli0922](https://github.com/zhengli0922), [@&#8203;ZengWen-DT](https://github.com/ZengWen-DT), [@&#8203;jalehman](https://github.com/jalehman), and [@&#8203;gorkem2020](https://github.com/gorkem2020).
- **Provider plugin onboarding:** setup refreshes provider plugin registry metadata after installing setup-selected provider plugins, so auth continuation uses the newly installed provider instead of stale registry state. ([#&#8203;95792](openclaw/openclaw#95792)) Thanks [@&#8203;snowzlmbot](https://github.com/snowzlmbot).

##### Complete contribution record

This audited record covers the complete v2026.6.9..HEAD history: 12 merged PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

##### Pull requests

- **PR [#&#8203;86627](openclaw/openclaw#86627 Keep core doctor health in contribution order. Thanks [@&#8203;giodl73-repo](https://github.com/giodl73-repo).
- **PR [#&#8203;93580](openclaw/openclaw#93580 fix: preserve cron delivery awareness for target sessions. Thanks [@&#8203;scotthuang](https://github.com/scotthuang) and [@&#8203;jalehman](https://github.com/jalehman).
- **PR [#&#8203;95030](openclaw/openclaw#95030 refactor: add SDK transcript identity target API. Thanks [@&#8203;jalehman](https://github.com/jalehman).
- **PR [#&#8203;94838](openclaw/openclaw#94838 refactor(copilot): complete harness lifecycle parity. Thanks [@&#8203;vincentkoc](https://github.com/vincentkoc).
- **PR [#&#8203;95328](openclaw/openclaw#95328 fix(sessions): reset stale per-channel origin fields on channel switch. Related [#&#8203;95325](openclaw/openclaw#95325). Thanks [@&#8203;ZengWen-DT](https://github.com/ZengWen-DT) and [@&#8203;jalehman](https://github.com/jalehman) and [@&#8203;gorkem2020](https://github.com/gorkem2020).
- **PR [#&#8203;94461](openclaw/openclaw#94461 fix(zai): fall back to manifest baseUrl for synthesized GLM-5 models. Related [#&#8203;94269](openclaw/openclaw#94269). Thanks [@&#8203;Pandah97](https://github.com/Pandah97) and [@&#8203;chrysb](https://github.com/chrysb).
- **PR [#&#8203;93241](openclaw/openclaw#93241 fix(agents): classify Zhipu GLM overload as overloaded for failover. Related [#&#8203;93211](openclaw/openclaw#93211). Thanks [@&#8203;0xghost42](https://github.com/0xghost42) and [@&#8203;zhengli0922](https://github.com/zhengli0922).
- **PR [#&#8203;94067](openclaw/openclaw#94067 fix(channels): resolve native /think menu levels via runtime catalog for live-discovered models. Related [#&#8203;93835](openclaw/openclaw#93835). Thanks [@&#8203;openperf](https://github.com/openperf) and [@&#8203;civiltox](https://github.com/civiltox).
- **PR [#&#8203;94136](openclaw/openclaw#94136 fix(zai): expose GLM-5.2 reasoning levels \[AI-assisted]. Thanks [@&#8203;BorClaw](https://github.com/BorClaw).
- **PR [#&#8203;85104](openclaw/openclaw#85104 feat: fast talks auto mode. Related [#&#8203;85087](openclaw/openclaw#85087). Thanks [@&#8203;alexph-dev](https://github.com/alexph-dev).
- **PR [#&#8203;94545](openclaw/openclaw#94545 fix: keep trusted policies with hook registry. Thanks [@&#8203;jesse-merhi](https://github.com/jesse-merhi).
- **PR [#&#8203;95792](openclaw/openclaw#95792 fix(onboard): refresh provider plugin registry after setup installs. Related [#&#8203;95765](openclaw/openclaw#95765). Thanks [@&#8203;snowzlmbot](https://github.com/snowzlmbot).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL3BhdGNoIl19-->

Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/1256
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. P2 Normal backlog priority with limited blast radius. proof: supplied External PR includes structured after-fix real behavior proof. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. size: XS status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Model fallback not triggered for Zhipu (GLM) error code 1305 — overloaded pattern mismatch

2 participants