Skip to content

fix(zai): expose GLM-5.2 reasoning levels [AI-assisted]#94136

Merged
steipete merged 3 commits into
openclaw:mainfrom
BorClaw:fix/zai-glm-thinking-levels
Jun 21, 2026
Merged

fix(zai): expose GLM-5.2 reasoning levels [AI-assisted]#94136
steipete merged 3 commits into
openclaw:mainfrom
BorClaw:fix/zai-glm-thinking-levels

Conversation

@BorClaw

@BorClaw BorClaw commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Problem: Z.AI glm-5.2 was present in the bundled provider, but OpenClaw still exposed Z.AI thinking as binary off/on and did not send Z.AI reasoning_effort for GLM-5.2 high/max thinking.
  • Why it matters: GLM-5.2 users could not select the provider's full off, low, high, max reasoning controls from OpenClaw.
  • What changed: glm-5.2 now advertises off, low, high, and max; payload wrapping maps low/high to reasoning_effort: "high", max/xhigh to reasoning_effort: "max", and off/minimal to thinking: { type: "disabled" }.
  • What did NOT change (scope boundary): Older Z.AI GLM models keep binary off/on; GLM-5.2 catalog metadata was already correct upstream and is not changed here.

Change Type (select all)

  • Bug fix
  • Feature
  • Refactor
  • Docs
  • Security hardening
  • Chore/infra

Scope (select all touched areas)

  • Gateway / orchestration
  • Skills / tool execution
  • Auth / tokens
  • Memory / storage
  • Integrations
  • API / contracts
  • UI / DX
  • CI/CD / infra

Linked Issue/PR

User-visible / Behavior Changes

Users selecting zai/glm-5.2 can choose off, low, high, or max thinking levels. Other Z.AI GLM models continue to show binary off/on thinking controls.

Security Impact (required)

  • New permissions/capabilities? (Yes/No) No
  • Secrets/tokens handling changed? (Yes/No) No
  • New/changed network calls? (Yes/No) No
  • Command/tool execution surface changed? (Yes/No) No
  • Data access scope changed? (Yes/No) No
  • If any Yes, explain risk + mitigation: N/A

Repro + Verification

Environment

  • OS: macOS
  • Runtime/container: local Node/pnpm checkout
  • Model/provider: zai/glm-5.2
  • Integration/channel (if any): bundled Z.AI provider plugin
  • Relevant config (redacted): saved Z.AI auth/config; no API key printed

Steps

  1. Resolve the Z.AI provider thinking profile for glm-5.2 and glm-5.1.
  2. Wrap a Z.AI glm-5.2 stream with low, high, and max thinking levels.
  3. Verify emitted payload fields and docs.
  4. Run live one-shot GLM-5.2 provider calls through this branch's openclaw infer model run path with off, high, and max thinking.

Expected

  • glm-5.2 exposes off, low, high, max.
  • glm-5.1 remains binary off/on.
  • low and high send reasoning_effort: "high".
  • max sends reasoning_effort: "max".
  • off disables thinking.
  • Live GLM-5.2 calls with off, high, and max return successful model text.

Actual

  • Matches expected in focused tests and live Z.AI GLM-5.2 probes.

Evidence

  • Failing test/log before + passing after
  • Trace/log snippets
  • Screenshot/recording
  • Perf numbers (if relevant)

Focused coverage was added in extensions/zai/index.test.ts for profile exposure and payload mapping.

Live redacted proof from this PR branch:

$ pnpm openclaw infer model run --local --model zai/glm-5.2 --thinking off --prompt 'Reply exactly: ZAI_off_OK' --json
{"ok":true,"capability":"model.run","transport":"local","provider":"zai","model":"glm-5.2","outputs":[{"text":"ZAI_off_OK"}]}

$ pnpm openclaw infer model run --local --model zai/glm-5.2 --thinking high --prompt 'Reply exactly: ZAI_high_OK' --json
{"ok":true,"capability":"model.run","transport":"local","provider":"zai","model":"glm-5.2","outputs":[{"text":"ZAI_high_OK"}]}

$ pnpm openclaw infer model run --local --model zai/glm-5.2 --thinking max --prompt 'Reply exactly: ZAI_max_OK' --json
{"ok":true,"capability":"model.run","transport":"local","provider":"zai","model":"glm-5.2","outputs":[{"text":"ZAI_max_OK"}]}

No API key or auth material is included in the proof output.

Human Verification (required)

  • Verified scenarios:
    • CI=true pnpm format -- docs/tools/thinking.md docs/providers/zai.md extensions/zai/index.ts extensions/zai/index.test.ts
    • CI=true pnpm exec vitest run extensions/zai/index.test.ts extensions/zai/model-definitions.test.ts src/auto-reply/thinking.test.ts
    • CI=true pnpm tsgo
    • CI=true pnpm lint
    • Live: pnpm openclaw infer model run --local --model zai/glm-5.2 --thinking off --prompt 'Reply exactly: ZAI_off_OK' --json
    • Live: pnpm openclaw infer model run --local --model zai/glm-5.2 --thinking high --prompt 'Reply exactly: ZAI_high_OK' --json
    • Live: pnpm openclaw infer model run --local --model zai/glm-5.2 --thinking max --prompt 'Reply exactly: ZAI_max_OK' --json
  • Edge cases checked:
    • glm-5.1 remains binary off/on.
    • GLM-5.2 max uses the new native max thinking level rather than the older xhigh workaround.
  • What you did not verify:
    • Live provider behavior for every alias (low, medium, adaptive, xhigh); the live proof covers off, high, and max, while tests cover the alias mapping.

AI-assisted: yes. Patch authored with Codex/OpenClaw assistance and manually reviewed before submission.

Review Conversations

  • I replied to or resolved every bot review conversation I addressed in this PR.
  • I left unresolved only the conversations that still need reviewer or maintainer judgment.

If a bot review conversation is addressed by this PR, resolve that conversation yourself. Do not leave bot review conversation cleanup for maintainers.

Compatibility / Migration

  • Backward compatible? (Yes/No) Yes
  • Config/env changes? (Yes/No) No
  • Migration needed? (Yes/No) No
  • If yes, exact upgrade steps: N/A

Failure Recovery (if this breaks)

  • How to disable/revert this change quickly: revert this PR.
  • Files/config to restore: extensions/zai/index.ts, extensions/zai/index.test.ts, docs/providers/zai.md, docs/tools/thinking.md.
  • Known bad symptoms reviewers should watch for: Z.AI rejecting reasoning_effort, incorrect /think choices for GLM-5.2, or unexpected changes to non-GLM-5.2 Z.AI thinking choices.

Risks and Mitigations

  • Risk: Z.AI may change accepted reasoning_effort values.
    • Mitigation: mapping is isolated to the Z.AI provider plugin, covered by tests, and live-smoked against GLM-5.2 for off, high, and max.

@openclaw-barnacle openclaw-barnacle Bot added docs Improvements or additions to documentation agents Agent runtime and tooling size: S triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup. labels Jun 17, 2026
@BorClaw
BorClaw force-pushed the fix/zai-glm-thinking-levels branch from b5c21a9 to 89298df Compare June 17, 2026 12:34
@openclaw-barnacle openclaw-barnacle Bot added extensions: zai and removed agents Agent runtime and tooling labels Jun 17, 2026
@BorClaw BorClaw changed the title fix(zai): expose GLM-5 reasoning levels [AI-assisted] fix(zai): expose GLM-5.2 reasoning levels [AI-assisted] Jun 17, 2026
@clawsweeper

clawsweeper Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs maintainer review before merge. Reviewed June 20, 2026, 11:56 PM ET / 03:56 UTC.

Summary
The PR expands Z.AI GLM-5.2 thinking options, maps selected levels to outbound reasoning_effort, and updates focused provider tests plus provider/thinking docs.

PR surface: Source +39, Tests +102, Docs +5. Total +146 across 4 files.

Reproducibility: yes. source-level. Current main exposes only binary Z.AI thinking and lacks GLM-5.2 reasoning_effort; the PR body adds after-fix live CLI output for off, high, and max.

Review metrics: 2 noteworthy metrics.

  • Provider thinking profile: 1 model expanded from 2 to 4 levels. This changes user-visible /think choices for zai/glm-5.2 while preserving binary choices for older Z.AI GLM models.
  • Outbound provider payload: 1 model-specific field added. reasoning_effort is an external Z.AI request contract maintainers should notice before merge.

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] Merging changes the outbound Z.AI GLM-5.2 request contract by adding reasoning_effort; current Z.AI docs and contributor live output support it, but provider contract drift would be user-visible.
  • [P1] GitHub currently reports an unstable merge state with a failed Real behavior proof check despite sufficient body proof, so required checks still need normal maintainer handling.

Maintainer options:

  1. Accept the GLM-5.2 provider contract (recommended)
    Maintainers can merge after accepting the GLM-5.2-specific Z.AI reasoning_effort contract because the code path is isolated to the Z.AI provider hook and backed by docs, tests, and live CLI output.
  2. Ask for one more low-level smoke
    If maintainers want tighter live proof, ask for a redacted --thinking low run to directly cover the low-level mapping to Z.AI high effort.
  3. Pause if Z.AI contract drifts
    If current Z.AI docs or credentials stop accepting reasoning_effort, pause until runtime mapping and docs can be updated together.

Next step before merge

  • [P2] The remaining action is maintainer acceptance of the Z.AI provider-contract risk and normal required-check handling, not an automated code repair.

Security
Cleared: The diff changes Z.AI provider payload mapping, focused tests, and docs only; it does not add dependencies, workflows, permissions, credential handling, or new code execution paths.

Review details

Best possible solution:

Land the provider-owned GLM-5.2 thinking profile and payload mapping after maintainers accept the Z.AI request-contract risk and required checks are green or explicitly handled.

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

Yes, source-level. Current main exposes only binary Z.AI thinking and lacks GLM-5.2 reasoning_effort; the PR body adds after-fix live CLI output for off, high, and max.

Is this the best way to solve the issue?

Yes. The provider-owned wrapStreamFn and resolveThinkingProfile hooks are the narrow owner boundary for a Z.AI-only model request contract, with no new core/config surface.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 6c1041339da6.

Label changes

Label justifications:

  • P2: This is a focused provider runtime/docs improvement with limited blast radius but real user-visible Z.AI behavior impact.
  • merge-risk: 🚨 auth-provider: The PR changes Z.AI model-specific thinking options and outbound request payloads for GLM-5.2, which depends on provider contract behavior.
  • 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 (live_output): The PR body and follow-up comment include redacted live CLI output showing successful after-fix GLM-5.2 calls for off, high, and max.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body and follow-up comment include redacted live CLI output showing successful after-fix GLM-5.2 calls for off, high, and max.
Evidence reviewed

PR surface:

Source +39, Tests +102, Docs +5. Total +146 across 4 files.

View PR surface stats
Area Files Added Removed Net
Source 1 47 8 +39
Tests 1 102 0 +102
Docs 2 6 1 +5
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 4 155 9 +146

What I checked:

  • Current main Z.AI binary thinking: Current main returns the tool-stream wrapper unchanged for non-off Z.AI thinking unless preserved thinking is set, and the registered thinking profile exposes only off plus binary on. (extensions/zai/index.ts:131, 6c1041339da6)
  • PR head runtime mapping: At PR head, GLM-5.2 maps low/medium/high/adaptive to reasoning_effort: "high", maps xhigh/max to "max", and keeps older GLM models binary. (extensions/zai/index.ts:131, 432214158a39)
  • PR head focused tests: At PR head, focused tests cover GLM-5.2 profile exposure, older GLM binary preservation, minimal-thinking preservation, and GLM-5.2 reasoning-effort payload mapping. (extensions/zai/index.test.ts:283, 432214158a39)
  • Provider SDK owner boundary: The provider SDK documents wrapStreamFn as provider-owned request-body rewrites and resolveThinkingProfile as the model-specific /think option set. (src/plugins/types.ts:1477, 6c1041339da6)
  • Gateway thinking profile consumer: Gateway session defaults use listThinkingLevelOptions from the selected provider/model profile, so the Z.AI provider hook drives UI options and validation. (src/gateway/session-utils.ts:1302, 6c1041339da6)
  • Z.AI contract proof: Official Z.AI Markdown docs describe reasoning_effort as supported for GLM-5.2 and above, list allowed values, and state low/medium map to high while xhigh maps to max.

Likely related people:

  • steipete: Authored and merged the related GLM-5.2 support PR and authored the latest branch commit preserving minimal-thinking semantics. (role: recent feature owner; confidence: high; commits: 735f59af7366, 432214158a39; files: extensions/zai/index.ts, extensions/zai/index.test.ts, extensions/zai/model-definitions.ts)
  • Vincent Koc: Current main blame for the Z.AI thinking wrapper/profile and thinking docs points to this author, and nearby history shows provider stream/default hook work. (role: recent area contributor; confidence: high; commits: 3f166b1f6411, 3968fea383b2, 9c42e6424d25; files: extensions/zai/index.ts, docs/tools/thinking.md, docs/providers/zai.md)
  • huangjianxiong: Recently touched synthesized GLM-5 Z.AI model base URL behavior adjacent to the same provider/model family. (role: recent adjacent contributor; confidence: medium; commits: db54a3268b77; files: extensions/zai/index.ts, extensions/zai/model-definitions.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 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 17, 2026
@BorClaw

BorClaw commented Jun 17, 2026

Copy link
Copy Markdown
Contributor Author

Updated the PR with the two missing pieces ClawSweeper called out:

  • docs/tools/thinking.md now documents the GLM-5.2 exception for Z.AI thinking levels.
  • Added redacted live GLM-5.2 proof to the PR body.

Live proof run from this PR branch, with no API key or auth material printed:

$ pnpm openclaw infer model run --local --model zai/glm-5.2 --thinking off --prompt 'Reply exactly: ZAI_off_OK' --json
ok=true provider=zai model=glm-5.2 output=ZAI_off_OK

$ pnpm openclaw infer model run --local --model zai/glm-5.2 --thinking high --prompt 'Reply exactly: ZAI_high_OK' --json
ok=true provider=zai model=glm-5.2 output=ZAI_high_OK

$ pnpm openclaw infer model run --local --model zai/glm-5.2 --thinking max --prompt 'Reply exactly: ZAI_max_OK' --json
ok=true provider=zai model=glm-5.2 output=ZAI_max_OK

Local verification also passed:

CI=true pnpm format -- docs/tools/thinking.md docs/providers/zai.md extensions/zai/index.ts extensions/zai/index.test.ts
CI=true pnpm exec vitest run extensions/zai/index.test.ts extensions/zai/model-definitions.test.ts src/auto-reply/thinking.test.ts
CI=true pnpm tsgo
CI=true pnpm lint

@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 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. 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. labels Jun 19, 2026
@openclaw-barnacle openclaw-barnacle Bot added the triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. label Jun 19, 2026
@steipete
steipete force-pushed the fix/zai-glm-thinking-levels branch 2 times, most recently from e8a5c03 to 3e59875 Compare June 21, 2026 03:41
@steipete
steipete force-pushed the fix/zai-glm-thinking-levels branch from 3e59875 to 4322141 Compare June 21, 2026 03:49
@steipete
steipete merged commit 50c2cc6 into openclaw:main Jun 21, 2026
149 of 150 checks passed
@steipete

Copy link
Copy Markdown
Contributor

Merged via squash.

Thanks @BorClaw!

github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Jun 21, 2026
Merged via squash.

Prepared head SHA: 4322141
Co-authored-by: BorClaw <[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

docs Improvements or additions to documentation extensions: zai merge-risk: 🚨 auth-provider 🚨 May break OAuth, tokens, provider routing, model choice, or credentials. P2 Normal backlog priority with limited blast radius. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. size: S status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. triage: needs-real-behavior-proof Candidate: external PR needs after-fix proof from a real setup.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants