$ the-wire · showcase
OpenClaw centralizes provider drift policy and hardens config repair forensics
By RepoJournal · Filed · About OpenClaw
Provider drift classification is now a shared policy across live tests, plus a config-repair fix closes a gap where the latest broken config copy was silently dropped.
OpenClaw consolidated its live-test provider drift classification for auth, billing, rate-limit, timeout, model-not-found, and transient provider-unavailable cases into one shared policy [1]. The same pull request splits cache live direct-model resolution into a stable single-fixture API and an explicit key-pool API for Anthropic retry rotation, and updates the live model, gateway model, CLI backend, and cache regression lanes to use the shared policy [1].
When OpenClaw repairs a broken config, it saves the broken version for operators to inspect, but on hosts with many past repairs it could hit the saved-copy limit and stop saving the latest broken version [2]. This change keeps rotating clobber snapshots at the cap, so the forensic copy of the most recent incident is preserved [2].
Telegram send fallback behavior changes when the API rejects an HTML parse-mode send and no caller-provided `plainText` exists [3]. It used to retry with literal `<a href=...>` markup; it now derives readable plain text from the rendered HTML, preserving anchor targets as `label (url)` and stripping or decoding supported Telegram tags and entities [3].
On the Windows node, an exec-approval security gap was closed: ExecApprovalEvaluator had no branch for `ask=Deny`, so `security=Full` plus `ask=Deny` with no decision fell through to Allow [4]. The fix adds a step that denies when `ask=Deny` and approvalDecision is null and the allowlist is not satisfied; calling it a fix, "fix(exec-approvals): address Shanselman review on PR #327" [4]. Also, shell wrapper detection now uses `NormalizedBasename`, which strips path, lowercases, and removes the `.exe` suffix, so variants like `zsh.exe`, `dash.exe`, and `fish.exe` are recognized as shell wrappers automatically [5].
Action items
- → Review the centralized drift policy change if you own live-test lanes that classify provider errors openclaw/openclaw [plan]
- → Verify your config-repair hosts retain the latest clobber snapshot after a rotation at cap openclaw/openclaw [monitor]
- → Update Windows node executables to a build containing the exec-approval deny-branch fix openclaw/openclaw-windows-node [immediate]
References
- [1] refactor: centralize live provider drift policy ↗ openclaw/openclaw
- [2] fix(config): rotate clobber snapshots at cap ↗ openclaw/openclaw
- [3] [codex] Harden Telegram HTML parse fallback ↗ openclaw/openclaw
- [4] fix(exec-approvals): address Shanselman review on PR #327 ↗ openclaw/openclaw-windows-node
- [5] fix(exec-shell): use NormalizedBasename so .exe variants are covered automatically ↗ openclaw/openclaw-windows-node