Skip to content

fix(logging): drop malformed redaction entries instead of throwing - #173471

Merged
steipete merged 5 commits into
openclaw:mainfrom
skyzhao1223:fix/config-malformed-redact-patterns
Oct 15, 2026
Merged

steipete merged 5 commits into
openclaw:mainfrom
skyzhao1223:fix/config-malformed-redact-patterns

Conversation

@skyzhao1223

@skyzhao1223 skyzhao1223 commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #173461

What Problem This Solves

Directory inspection and Doctor can throw a secondary TypeError and lose the config-rejection warning when a rejected config also contains malformed logging.redactPatterns, such as [1] or [null].

User Impact

Malformed redaction settings no longer stop the recovery warning. Valid custom patterns keep masking, and malformed policies retain built-in credential protection. A single diagnostic asks the operator to correct the patterns without printing their values. No migration or new setting is required.

Why This Change Was Made

The shared redaction resolver admits only callable programmatic matchers, skips rejected entries, and composes usable patterns with defaults whenever the policy is malformed. Valid custom-only policies keep their existing behavior. Warning failures cannot interrupt masking. The resolver now uses one insertion-ordered Set instead of parallel array/Set bookkeeping; no caller-side catch was added.

Original fix by @skyzhao1223; maintainer cleanup fixes the null regression, preserves default and custom redaction, adds recovery-path coverage, and documents the fallback.

Evidence

Current-main source and history confirm the defect: readCurrentConfigForResolution formats its load error through implicit logging redaction, while the logging reader can return unvalidated patterns and the old resolver accepts them as matchers. The warning detail was added in 634ca9ee00f; the shared matcher contract predates it in 103bdf8d147c.

PR CI is the test gate per maintainer policy. CI invoked node --import tsx scripts/ci-run-node-test-shard.mts for the changed-test shards. It covers the changed config/logging tests, typechecking, and the repository's planned checks. Regression cases:

  • emits the directory-resolution warning with a malformed redaction entry %j covers [1] and [null] through readCurrentConfigForResolution.
  • keeps valid and default redaction with malformed patterns and warns only once checks exact masking, mixed policies, malformed containers, and a failed diagnostic sink.
  • redactSensitiveLines keeps registered and default protection when custom regexes are rejected preserves registered-secret masking while checking the restored defaults.

Changed-file oxlint, oxfmt, and git diff --check passed. The nested install cannot load the lint wrapper or the UI-only Solid plugin, so static lint used the existing shared binary and a temporary config preserving all core rules while omitting only the unrelated UI override. Prescribed isolated Codex branch autoreview returned scoped-clean, with no actionable P0–P2 findings; contributor code was not executed on the maintainer host. The subsequent git merge origin/main was conflict-free and changed none of these five files. Tests, typechecks, negative controls, and live Gateway proof were intentionally not run locally; live proof was intentionally skipped per maintainer policy. No remote leases were created. Exact-head CI passed all 78 tests in the three changed files: redact.test.ts 50/50 in 2.19 s (job 116704425377); redact-patterns.test.ts 18/18 in 1.05 s (job 116704425312); io.best-effort.test.ts 10/10 in 18.27 s (job 116704425456). These are whole-file CI durations including setup/transform. The added warning cases took 14 ms and 8 ms, the mixed-policy case 2 ms, and the corrected rejected-regex case 3 ms. No measured local test times are claimed. Added cases use no timers, polling, or Gateway startup.

The first CI attempt, job 116699018354, found one incorrect expected string in the updated rejected-regex test (49 other tests passed in that file). Both built-in assignment rules mask TOKEN, so the shortened hint is fully masked as ***; the source-verified oracle now expects TOKEN=*** opaque…7890. This one-line test correction passed lint/format and an additional isolated autoreview. No production change or rerun-only retry was used.

ClawSweeper's P2 null-entry finding is addressed. Its live-proof request is superseded by the maintainer's explicit PR-CI proof policy. No human review findings were present at preparation.

Against origin/main (9f4b34b842b33): production +35/-14 (net +21); tests +55/-3 (net +52); docs +5/-0. The source-growth exception is needed for malformed-policy fallback and a guarded once-only diagnostic; duplicate collection bookkeeping was removed. Exact-head CI run 38816880964 completed successfully for e2da53f51930cabb43ed07a55de13d4fd8aa036d: 49 successful jobs, 28 intentionally skipped, no failures. Production types, test types, lint, all Node shards, and UI E2E passed; openclaw/ci-gate and openclaw/security-sensitive-review are green. No inherited-failure exception was needed. No deferred or background effect was added, so there are no captured lifetime or authority facts requiring revalidation.

`parsePattern` returned any non-string, non-RegExp value as if it were an already
compiled matcher. A rejected config can still carry a malformed list (for example
`logging.redactPatterns: [1]`), and the directory-resolution warning path redacts its
text through these patterns, so `redactSensitiveText` threw
`TypeError: pattern.exec is not a function` and the `Config warnings:` line was never
emitted. Unknown entries are now dropped at this trust boundary.
@clawsweeper

clawsweeper Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

ClawSweeper review complete

ClawSweeper finished reviewing this revision. The review result is being finalized.

View the workflow run.

@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

✅ Maintainer security changes approved

A maintainer approved this revision with an explicit security approval comment.

A later push requires a fresh approval comment for an external contributor's PR.

@clawsweeper clawsweeper Bot added P2 Normal backlog priority with limited blast radius. 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 Oct 15, 2026
@clawsweeper

clawsweeper Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge.

What this changes

This PR skips malformed redaction patterns, retains usable rules, adds default protection for malformed policies, and emits a guarded diagnostic.

Example: Run Doctor with logging.redactPatterns set to [1] in a rejected config.

  • Before: Warning formatting throws TypeError: pattern.exec is not a function.
  • After: The malformed entry is skipped and the config-rejection warning can be emitted with default masking intact.

Review scores

Measure Result What it means
Overall readiness 🧂 unranked krab (1/6) The patch appears correct and has meaningful regression coverage, but the required shipped-behavior evidence is absent.
Proof confidence 🧂 unranked krab (1/6) Real behavior proof is necessary before merge. See Before merge.
Patch quality 🐚 platinum hermit (4/6) No actionable review findings were identified.

Product

Kind: Bug fix · Worth it: Yes · Fix scope: Complete
User problem: Doctor and directory inspection can crash while trying to explain a rejected config.
Reason: The defect is source-confirmed, the repair stays within the shared masking owner, and the current fallback direction has substantive maintainer involvement.

Merge readiness

⛔ Blocked before merge - 1 item remains

Keep this PR open: it repairs a current upstream defect, addresses the earlier null-entry finding, and preserves custom and built-in masking without a new correctness finding.

Priority: P2
Reviewed head: e2da53f51930cabb43ed07a55de13d4fd8aa036d

Before merge

  • Add real behavior proof - The PR supplies CI results and in-process tests, and explicitly says shipped-entry-point proof was skipped. Provide redacted terminal output or logs from this revision's openclaw doctor with [1], [null], and a mixed valid/malformed policy, showing config rejection without TypeError and retained masking; also demonstrate an existing v2026.10.3 custom policy remains intact after upgrade. Redact IPs, API keys, phone numbers, and non-public endpoints. The alternative PR's Doctor trace exercises different production code, and general PR-CI policy does not waive this external-PR proof gate. After adding proof, update the PR body, then request a new review with @clawsweeper re-review. The PR author or someone with repository write access can request it.

Findings

None.

Tests

  • Missing end-to-end proof: Missing shipped Doctor output for this implementation with malformed entries and an existing valid custom policy after upgrade; CI does not show a base-failing run of the newly added regressions.
Agent review details

How this fits together

The shared redaction resolver converts configured strings and programmatic matchers into masking rules consumed by console output, log readers, diagnostic exports, and error formatting.

flowchart TD
 A[Config file] --> B[Logging config reader]
 B --> C[Shared pattern resolver]
 D[Error and diagnostic text] --> E[Redaction engine]
 C --> E
 E --> F[Console and diagnostic output]
Loading

Technical review

Best possible solution:

Retain the shared-resolver repair so malformed policies cannot abort recovery diagnostics or discard usable masking rules.

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

Current-main source traces the reported [1] input from the unvalidated logging reader through warning redaction to matcher execution; no target code was executed during this review.

Is this the best way to solve the issue?

The focused shared-resolver repair handles config-derived and explicit pattern inputs, preserves programmatic matchers and valid custom rules, and avoids a caller-side catch that would hide the failure.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning medium; reviewed against 6cace69448ae.

Provenance checked

  • Programmatic matcher acceptance keeps the original intent (103bdf8: Shared programmatic matchers preserved public URLs while retaining credential protection across redaction consumers.)
  • Combined-pattern resolution and identity keeps the original intent (39b4bdb: Built-in rule identity preserves whole-text protection under combined policies while configured expressions retain their intended matching path.)
  • Malformed-policy fallback changes intended behavior with a stated reason (f956a18: Diagnostic masking retained defaults and custom patterns after automatic conversation masking was removed; the PR deliberately extends defaults to rejected policies while leaving valid custom-only policies intact.)

Testing

Proof path: in-process harness.

Security

None.

Evidence

What I checked:

Likely related people:

  • Ayaan Zaidi: Raw commit 103bdf8 adds src/logging/redact.ts:165 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: 103bdf8d147c; files: src/logging/redact.ts)
  • Agustin Rivera: Raw commit 39b4bdb adds src/logging/redact-patterns.test.ts:182 relative to its recorded parents. This identifies author metadata, not feature responsibility or a PR merger. (role: source-line author; confidence: high; commits: 39b4bdbb6427; files: src/logging/redact-patterns.test.ts)

PR surface

Source +21, Tests +52, Docs +5. Total +78 across 5 files. Added test files: 0.

View PR surface stats
Area Files Added Removed Net
Source 1 35 14 +21
Tests 3 55 3 +52
Docs 1 5 0 +5
Config 0 0 0 0
Generated 0 0 0 0
Other 0 0 0 0
Total 5 95 17 +78

Root-cause cluster

Relationship: fixed_by_candidate
Canonical: #173461
Summary: The report and both open repair candidates address malformed logging patterns aborting rejected-config diagnostics.

Members:

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

Labels

Label changes:

No label changes.

Label justifications:

  • P2: The fix restores diagnostics for a specific malformed-config recovery path with limited blast radius.
  • 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.

Rank-up moves

Optional improvements that raise the rating; they are not merge blockers.

  • Supply the Doctor and existing-config evidence described in realBehaviorProof.

Rating scale

6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior.

Workflow

ClawSweeper edits this one comment on every review. Comment @clawsweeper re-review for a fresh review only. Repair and merge execution lanes are retired.

History

Review history (1 earlier review cycle)
  • reviewed 2026-10-15T21:05:46.511Z sha 87346d3 :: needs real behavior proof before merge. :: [P2] Exclude null before using the in operator

Reviewed October 15, 2026, 6:54 PM ET / 22:54 UTC (Revision 2).

@skyzhao1223

Copy link
Copy Markdown
Contributor Author

CI note: checks-* is green (68 pass). The two red rows — openclaw/ci-gate and openclaw/security-sensitive-review — are the maintainer-approval gate for a security-sensitive path (src/logging/redact.ts), not test failures: both render as "A maintainer must approve the current PR revision", and the review job in that run succeeded. Nothing to fix here; it needs a listed owner's approval to proceed.

Keep usable operator rules and built-in masking when rejected config reaches diagnostic redaction. Guard null and malformed containers, report the policy once without allowing a failed warning to abort masking, and cover directory-resolution fallback. PR CI owns runtime validation per maintainer policy.

Co-authored-by: skyzhao1223 <[email protected]>
@openclaw-barnacle openclaw-barnacle Bot added docs Improvements or additions to documentation size: S and removed size: XS labels Oct 15, 2026
@steipete

Copy link
Copy Markdown
Contributor

/allow-security-sensitive-change

Correct the rejected-regex fallback oracle: the built-in environment and standalone TOKEN rules fully mask the shortened token hint. Keep the exact registered-secret assertion. CI run 38815304311 job 116699018354 exposed the expectation mismatch; production code is unchanged.
@steipete

Copy link
Copy Markdown
Contributor

/allow-security-sensitive-change

@steipete

Copy link
Copy Markdown
Contributor

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

🦞👀
Exact review queued.

Re-review progress:

@steipete
steipete merged commit 072e842 into openclaw:main Oct 15, 2026
142 of 143 checks passed
@steipete

Copy link
Copy Markdown
Contributor

Merged via squash.

github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request Oct 16, 2026
…penclaw#173471)

* fix(logging): drop malformed redaction entries instead of throwing

`parsePattern` returned any non-string, non-RegExp value as if it were an already
compiled matcher. A rejected config can still carry a malformed list (for example
`logging.redactPatterns: [1]`), and the directory-resolution warning path redacts its
text through these patterns, so `redactSensitiveText` threw
`TypeError: pattern.exec is not a function` and the `Config warnings:` line was never
emitted. Unknown entries are now dropped at this trust boundary.

* fix(logging): preserve redaction with malformed patterns

Keep usable operator rules and built-in masking when rejected config reaches diagnostic redaction. Guard null and malformed containers, report the policy once without allowing a failed warning to abort masking, and cover directory-resolution fallback. PR CI owns runtime validation per maintainer policy.

Co-authored-by: skyzhao1223 <[email protected]>

* test(logging): expect complete masking from overlapping token rules

Correct the rejected-regex fallback oracle: the built-in environment and standalone TOKEN rules fully mask the shortened token hint. Keep the exact registered-secret assertion. CI run 38815304311 job 116699018354 exposed the expectation mismatch; production code is unchanged.

---------

Co-authored-by: skyzhao1223 <[email protected]>
Co-authored-by: Peter Steinberger <[email protected]>
tideclaw-bot pushed a commit that referenced this pull request Nov 4, 2026
Stable adaptation of 072e842. Keep valid operator rules and built-in protection while dropping malformed entries and reporting the invalid policy once.

Co-authored-by: skyzhao1223 <[email protected]>
Co-authored-by: Peter Steinberger <[email protected]>
Co-authored-by: RomneyDa <[email protected]>
(cherry picked from commit 2522c5511b26c751f7c30f7495f9c8f796599884)
eleboucher pushed a commit to eleboucher/homelab that referenced this pull request Nov 10, 2026
…2026.11.2) (#2531)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/openclaw/openclaw](https://openclaw.ai) ([source](https://github.com/openclaw/openclaw)) | minor | `2026.10.9` → `2026.11.2` |

---

### Release Notes

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

### [`v2026.11.2`](https://github.com/openclaw/openclaw/releases/tag/v2026.11.2): openclaw 2026.11.2

[Compare Source](https://github.com/openclaw/openclaw/compare/v2026.11.1...v2026.11.2)

<!-- openclaw-release-publication:docs-v1 -->

#### OpenClaw v2026.11.2

166 commits · 113 pull requests · 64 contributors

##### Changes included in this release

The release notes and changelog contain the same content, presented in two formats:

- [Release notes](https://docs.openclaw.ai/releases/2026.11.2) — formatted for people.
- [Changelog](https://raw.githubusercontent.com/openclaw/openclaw/main/CHANGELOG/2026.11.2.md) — plain Markdown for AI agents and tools.

##### Thanks

[@&#8203;1052326311](https://github.com/1052326311) [@&#8203;651juan](https://github.com/651juan) [@&#8203;abacha](https://github.com/abacha) [@&#8203;amittell](https://github.com/amittell) [@&#8203;anmol0b](https://github.com/anmol0b) [@&#8203;beebee](https://github.com/beebee) [@&#8203;cestercian](https://github.com/cestercian) [@&#8203;DasX](https://github.com/DasX) [@&#8203;davidcittadini](https://github.com/davidcittadini) [@&#8203;DonnieFi](https://github.com/DonnieFi) [@&#8203;eliavb43](https://github.com/eliavb43) [@&#8203;etzelm](https://github.com/etzelm) [@&#8203;fhgffy](https://github.com/fhgffy) [@&#8203;Finn763](https://github.com/Finn763) [@&#8203;fuller-stack-dev](https://github.com/fuller-stack-dev) [@&#8203;g62nkcx4q7-wq](https://github.com/g62nkcx4q7-wq) [@&#8203;galiniliev](https://github.com/galiniliev) [@&#8203;hannesrudolph](https://github.com/hannesrudolph) [@&#8203;holgergruenhagen](https://github.com/holgergruenhagen) [@&#8203;HootRock](https://github.com/HootRock) [@&#8203;huyengiang101086-spec](https://github.com/huyengiang101086-spec) [@&#8203;IWhatsskill](https://github.com/IWhatsskill) [@&#8203;javiermv](https://github.com/javiermv) [@&#8203;joeykrug](https://github.com/joeykrug) [@&#8203;joshavant](https://github.com/joshavant) [@&#8203;Kimiyu-186](https://github.com/Kimiyu-186) [@&#8203;LachieFREEDOM](https://github.com/LachieFREEDOM) [@&#8203;LeizhenZhang](https://github.com/LeizhenZhang) [@&#8203;Leon-SK668](https://github.com/Leon-SK668) [@&#8203;LiuwqGit](https://github.com/LiuwqGit) [@&#8203;Marvinthebored](https://github.com/Marvinthebored) [@&#8203;masatohoshino](https://github.com/masatohoshino) [@&#8203;mnowrot](https://github.com/mnowrot) [@&#8203;Nickfost](https://github.com/Nickfost) [@&#8203;nxmxbbd](https://github.com/nxmxbbd) [@&#8203;obviyus](https://github.com/obviyus) [@&#8203;Oldrich333](https://github.com/Oldrich333) [@&#8203;OliPlus](https://github.com/OliPlus) [@&#8203;Patrick-Erichsen](https://github.com/Patrick-Erichsen) [@&#8203;Peetiegonzalez](https://github.com/Peetiegonzalez) [@&#8203;pgondhi987](https://github.com/pgondhi987) [@&#8203;potoior](https://github.com/potoior) [@&#8203;RomneyDa](https://github.com/RomneyDa) [@&#8203;Satoshi-Kusumoto](https://github.com/Satoshi-Kusumoto) [@&#8203;SebTardif](https://github.com/SebTardif) [@&#8203;sem00-ft](https://github.com/sem00-ft) [@&#8203;shakkernerd](https://github.com/shakkernerd) [@&#8203;Solvely-Colin](https://github.com/Solvely-Colin) [@&#8203;steipete](https://github.com/steipete) [@&#8203;sukhdeepjohar](https://github.com/sukhdeepjohar) [@&#8203;sunlit-deng](https://github.com/sunlit-deng) [@&#8203;SunnyShu0925](https://github.com/SunnyShu0925) [@&#8203;TameTheGame](https://github.com/TameTheGame) [@&#8203;theimmortal68](https://github.com/theimmortal68) [@&#8203;ullrichg13](https://github.com/ullrichg13) [@&#8203;VACInc](https://github.com/VACInc) [@&#8203;vincentkoc](https://github.com/vincentkoc) [@&#8203;wangmiao0668000666](https://github.com/wangmiao0668000666) [@&#8203;wr-web](https://github.com/wr-web) [@&#8203;YangManBOBO](https://github.com/YangManBOBO) [@&#8203;yetval](https://github.com/yetval) [@&#8203;Yolo521-bot](https://github.com/Yolo521-bot) [@&#8203;yousan](https://github.com/yousan) [@&#8203;zhangguiping-xydt](https://github.com/zhangguiping-xydt)

##### Release verification

- npm package: <https://www.npmjs.com/package/openclaw/v/2026.11.2>
- registry tarball: <https://registry.npmjs.org/openclaw/-/openclaw-2026.11.2.tgz>
- integrity: `sha512-SgBml4WLp8V1DdAYkrTPLzVdA/iYo3iuHCtm4788GjaG83QZdd1VeOTlue0HBJGdn3SbFE06b6uPs+AM5ShMgg==`
- release SHA: `b556fdf457b026574bf0f1e7b4914b15f3f179ce`
- full release CI report: <https://github.com/openclaw/releases/blob/main/evidence/2026.11.2/release-evidence.md>
- release publish: <https://github.com/openclaw/openclaw/actions/runs/42512814331>
- npm preflight: <https://github.com/openclaw/openclaw/actions/runs/42386992090>
- full release validation: <https://github.com/openclaw/openclaw/actions/runs/42386728651>
- plugin npm publish: <https://github.com/openclaw/openclaw/actions/runs/42514169949>
- plugin ClawHub publish: deferred to independent recovery; not published or verified by this run
- plugin ClawHub bootstrap: deferred; full release remains incomplete
- OpenClaw npm publish: <https://github.com/openclaw/openclaw/actions/runs/42466676891/attempts/1>
- npm Telegram beta E2E: not supplied
- Android APK: skipped — apps/android/version.json is 2026.8.2, release train is 2026.11.2; run pnpm android:version:pin -- --from-gateway before the next tag.

### [`v2026.11.1`](https://github.com/openclaw/openclaw/releases/tag/v2026.11.1): openclaw 2026.11.1

[Compare Source](https://github.com/openclaw/openclaw/compare/v2026.10.10...v2026.11.1)

#### 2026.11.1

##### Highlights

- Safer Mac settings: failed config saves no longer overwrite secrets, and turning off Tailscale exposure keeps Gateway authentication intact. ([#&#8203;187734](https://github.com/openclaw/openclaw/issues/187734), [#&#8203;187664](https://github.com/openclaw/openclaw/issues/187664)) Fixes [#&#8203;187600](https://github.com/openclaw/openclaw/issues/187600), [#&#8203;187597](https://github.com/openclaw/openclaw/issues/187597) Thanks [@&#8203;anmol0b](https://github.com/anmol0b).
- More reliable channel replies: Telegram, Discord, and webhook conversations keep reaching the agent after request handlers or earlier turns finish. ([#&#8203;179200](https://github.com/openclaw/openclaw/issues/179200), [#&#8203;179385](https://github.com/openclaw/openclaw/issues/179385), [#&#8203;179704](https://github.com/openclaw/openclaw/issues/179704), [#&#8203;189457](https://github.com/openclaw/openclaw/issues/189457)) Fixes [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554) Thanks [@&#8203;steipete](https://github.com/steipete), [@&#8203;LiuwqGit](https://github.com/LiuwqGit), [@&#8203;jalehman](https://github.com/jalehman), and [@&#8203;vincentkoc](https://github.com/vincentkoc).
- Conversations survive more interruptions: oversized turns retain useful history, and stopping the first Claude CLI turn no longer starts the next message from scratch. ([#&#8203;191146](https://github.com/openclaw/openclaw/issues/191146), [#&#8203;181966](https://github.com/openclaw/openclaw/issues/181966), [#&#8203;186380](https://github.com/openclaw/openclaw/issues/186380)) Fixes [#&#8203;191133](https://github.com/openclaw/openclaw/issues/191133), [#&#8203;181945](https://github.com/openclaw/openclaw/issues/181945) Thanks [@&#8203;Yun-0000](https://github.com/Yun-0000), [@&#8203;obviyus](https://github.com/obviyus), [@&#8203;mirasrael](https://github.com/mirasrael), and [@&#8203;holgergruenhagen](https://github.com/holgergruenhagen).
- Update recovery gets unstuck after crashed or canceled updaters, restores the Windows Gateway after failed verification, and avoids repeated full-database copying during large-state checks. ([#&#8203;177932](https://github.com/openclaw/openclaw/issues/177932), [#&#8203;186787](https://github.com/openclaw/openclaw/issues/186787), [#&#8203;189647](https://github.com/openclaw/openclaw/issues/189647), [#&#8203;182632](https://github.com/openclaw/openclaw/issues/182632), [#&#8203;187921](https://github.com/openclaw/openclaw/issues/187921)) Fixes [#&#8203;177684](https://github.com/openclaw/openclaw/issues/177684), [#&#8203;184893](https://github.com/openclaw/openclaw/issues/184893), [#&#8203;189620](https://github.com/openclaw/openclaw/issues/189620) Thanks [@&#8203;duyufansh2008](https://github.com/duyufansh2008), [@&#8203;RomneyDa](https://github.com/RomneyDa), [@&#8203;fuller-stack-dev](https://github.com/fuller-stack-dev), [@&#8203;TheAngryPit](https://github.com/TheAngryPit), [@&#8203;sukhdeepjohar](https://github.com/sukhdeepjohar), [@&#8203;steipete](https://github.com/steipete), [@&#8203;syxscott](https://github.com/syxscott), and [@&#8203;stephen3303](https://github.com/stephen3303).
- Subagents keep their follow-ups through model and session changes, while parent sessions receive child approvals even with a custom session store. ([#&#8203;186238](https://github.com/openclaw/openclaw/issues/186238), [#&#8203;183501](https://github.com/openclaw/openclaw/issues/183501), [#&#8203;189827](https://github.com/openclaw/openclaw/issues/189827)) Fixes [#&#8203;179289](https://github.com/openclaw/openclaw/issues/179289), [#&#8203;189823](https://github.com/openclaw/openclaw/issues/189823) Thanks [@&#8203;steipete](https://github.com/steipete), [@&#8203;Marvinthebored](https://github.com/Marvinthebored), [@&#8203;RomneyDa](https://github.com/RomneyDa), and [@&#8203;ekinnee](https://github.com/ekinnee).
- Android End Talk with a compatible Gateway stops listening without canceling accepted agent work, so its answer can still arrive in chat; explicit cancellation remains available. ([#&#8203;172276](https://github.com/openclaw/openclaw/issues/172276), [#&#8203;188798](https://github.com/openclaw/openclaw/issues/188798)) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Provider recovery respects provider-specified rate-limit timing, and Gemini Flash text models use Interactions by default on the official API-key endpoint while custom proxies retain their existing default. ([#&#8203;180280](https://github.com/openclaw/openclaw/issues/180280), [#&#8203;189395](https://github.com/openclaw/openclaw/issues/189395)) Thanks Ayaan Zaidi, [@&#8203;evomach](https://github.com/evomach), [@&#8203;sukhdeepjohar](https://github.com/sukhdeepjohar), [@&#8203;RomneyDa](https://github.com/RomneyDa).

##### Changes

- Claude CLI: saved subscription accounts can make configured models available without a separate native login, and operators can opt into native Agent and Workflow orchestration through `plugins.entries.anthropic.config.managedNativeTools`; the default remains off and restricted runs keep their existing tool limits. ([#&#8203;179203](https://github.com/openclaw/openclaw/issues/179203), [#&#8203;183765](https://github.com/openclaw/openclaw/issues/183765)) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Anthropic: API-key setup can record an optional Anthropic workspace ID; existing workspace headers are preserved, and workspace-scoped keys need no extra setting. ([#&#8203;186976](https://github.com/openclaw/openclaw/issues/186976)) Thanks Ayaan Zaidi, [@&#8203;evomach](https://github.com/evomach), [@&#8203;sukhdeepjohar](https://github.com/sukhdeepjohar), [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Google: Interactions requests honor managed proxy and TLS settings, rotate eligible API keys before streaming after a rate limit, preserve native video input, and forward nucleus sampling consistently; choose `google-generative-ai` when explicit Gemini cache handles are required. ([#&#8203;189395](https://github.com/openclaw/openclaw/issues/189395), [#&#8203;190695](https://github.com/openclaw/openclaw/issues/190695)) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Bedrock Mantle: discovered numbered OpenAI GPT models select the Responses route automatically, while GPT-OSS keeps Chat Completions and Claude keeps Anthropic Messages. Thanks [@&#8203;MertBasar0](https://github.com/MertBasar0), [@&#8203;anmol0b](https://github.com/anmol0b), [@&#8203;shakkernerd](https://github.com/shakkernerd), [@&#8203;kybrcore](https://github.com/kybrcore), [@&#8203;sukhdeepjohar](https://github.com/sukhdeepjohar), [@&#8203;potoior](https://github.com/potoior), [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Control UI: the model picker shows the configured active context budget rather than only the model maximum, and short session links retain their intended navigation target. ([#&#8203;180870](https://github.com/openclaw/openclaw/issues/180870), [#&#8203;183148](https://github.com/openclaw/openclaw/issues/183148)) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Google Chat: remote HTTP(S) attachments are delivered as visible links alongside captions; local files and native uploads remain unsupported with service-account authentication. Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Update diagnostics: detailed readiness separates a ready core from channel outages, allowing repaired updaters to finish with named channel warnings without hiding HTTP 503 or weakening normal service-start checks. Thanks [@&#8203;duyufansh2008](https://github.com/duyufansh2008), [@&#8203;RomneyDa](https://github.com/RomneyDa).

##### Fixes

- Network and tool safety: ClickClack and ClawHub reject redirects into unrelated private services, Discord CDN downloads no longer inherit browser private-network access, and FIFO native-hook credentials are rejected without hanging the agent. ([#&#8203;190944](https://github.com/openclaw/openclaw/issues/190944), [#&#8203;190939](https://github.com/openclaw/openclaw/issues/190939), [#&#8203;191458](https://github.com/openclaw/openclaw/issues/191458), [#&#8203;191423](https://github.com/openclaw/openclaw/issues/191423)) Thanks [@&#8203;pgondhi987](https://github.com/pgondhi987), [@&#8203;SebTardif](https://github.com/SebTardif), and [@&#8203;Leon-SK668](https://github.com/Leon-SK668).
- Doctor consent and access policy: noninteractive checks no longer download plugins without repair consent, and explicitly empty group allowlists remain empty instead of being repopulated. ([#&#8203;191523](https://github.com/openclaw/openclaw/issues/191523), [#&#8203;174787](https://github.com/openclaw/openclaw/issues/174787)) Fixes [#&#8203;191420](https://github.com/openclaw/openclaw/issues/191420), [#&#8203;173826](https://github.com/openclaw/openclaw/issues/173826) Thanks [@&#8203;brandonulrich](https://github.com/brandonulrich), [@&#8203;steipete](https://github.com/steipete), and [@&#8203;lockhartheavyindustries](https://github.com/lockhartheavyindustries).
- Recovery data: malformed UTF-8 legacy imports are rejected instead of replacing original content; failed skill restore rollbacks preserve the original copy, and cleanup refuses destructive work when workspace inspection fails. ([#&#8203;180861](https://github.com/openclaw/openclaw/issues/180861), [#&#8203;173954](https://github.com/openclaw/openclaw/issues/173954), [#&#8203;174195](https://github.com/openclaw/openclaw/issues/174195), [#&#8203;176362](https://github.com/openclaw/openclaw/issues/176362)) Fixes [#&#8203;180782](https://github.com/openclaw/openclaw/issues/180782), [#&#8203;180795](https://github.com/openclaw/openclaw/issues/180795) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa), [@&#8203;duyufansh2008](https://github.com/duyufansh2008), [@&#8203;steipete](https://github.com/steipete), and [@&#8203;wangmiao0668000666](https://github.com/wangmiao0668000666).
- Log redaction: malformed custom entries no longer disable valid rules or built-in secret protection; invalid policy is reported while safe redaction remains active. ([#&#8203;173471](https://github.com/openclaw/openclaw/issues/173471)) Thanks [@&#8203;skyzhao1223](https://github.com/skyzhao1223) and [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Secret egress: reject chains relying on the distrusted emSign ECC G3 root in the managed proxy and exported subprocess CA bundle; restart the Gateway after updating, and update clients with independent trust stores separately. ([#&#8203;179249](https://github.com/openclaw/openclaw/issues/179249)) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- macOS connectivity: configured credentials take precedence over stale app environment, typed environment secret references resolve correctly, and remote Settings respects the Control UI base path. ([#&#8203;191468](https://github.com/openclaw/openclaw/issues/191468), [#&#8203;185141](https://github.com/openclaw/openclaw/issues/185141), [#&#8203;128175](https://github.com/openclaw/openclaw/issues/128175)) Fixes [#&#8203;164596](https://github.com/openclaw/openclaw/issues/164596) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa), [@&#8203;anmol0b](https://github.com/anmol0b), and [@&#8203;goldmar](https://github.com/goldmar).
- Mac tools and messaging: iMessage remains usable after app updates without re-granting Automation, Peekaboo window inspection accepts valid snapshot references, and node exec preserves results for commands configured without a timeout. ([#&#8203;186107](https://github.com/openclaw/openclaw/issues/186107), [#&#8203;172116](https://github.com/openclaw/openclaw/issues/172116), [#&#8203;190729](https://github.com/openclaw/openclaw/issues/190729)) Fixes [#&#8203;178719](https://github.com/openclaw/openclaw/issues/178719) Thanks [@&#8203;aniketkrs](https://github.com/aniketkrs), [@&#8203;RomneyDa](https://github.com/RomneyDa), [@&#8203;anmol0b](https://github.com/anmol0b), [@&#8203;SharkeyDev](https://github.com/SharkeyDev), [@&#8203;holgergruenhagen](https://github.com/holgergruenhagen), [@&#8203;LiuwqGit](https://github.com/LiuwqGit), and [@&#8203;etzelm](https://github.com/etzelm).
- Mac voice and embedded pages: avoid duplicate voice sends and false sent feedback, and show a recoverable load error instead of a blank or stale Mac tab. ([#&#8203;186271](https://github.com/openclaw/openclaw/issues/186271), [#&#8203;185432](https://github.com/openclaw/openclaw/issues/185432)) Thanks [@&#8203;anmol0b](https://github.com/anmol0b), [@&#8203;etzelm](https://github.com/etzelm), and [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Native voice and capture: iOS and macOS Talk tolerate slow audio acknowledgments within bounded buffering, long meeting replies are not cut off merely because generation outruns playback, and oversized Mac recordings fail with size guidance instead of dropping the node connection. Thanks [@&#8203;MertBasar0](https://github.com/MertBasar0), [@&#8203;anmol0b](https://github.com/anmol0b), [@&#8203;shakkernerd](https://github.com/shakkernerd), [@&#8203;kybrcore](https://github.com/kybrcore), [@&#8203;sukhdeepjohar](https://github.com/sukhdeepjohar), [@&#8203;potoior](https://github.com/potoior), and [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Android and desktop compatibility: Android Chat waits for the role-allowed agent list after switching Gateways, and independently updated Mac nodes can return optional cursor coordinates without a computer-use contract error. Thanks [@&#8203;MertBasar0](https://github.com/MertBasar0), [@&#8203;anmol0b](https://github.com/anmol0b), [@&#8203;shakkernerd](https://github.com/shakkernerd), [@&#8203;kybrcore](https://github.com/kybrcore), [@&#8203;sukhdeepjohar](https://github.com/sukhdeepjohar), [@&#8203;potoior](https://github.com/potoior), [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Channel recovery: Slack detects dead relay connections without treating ordinary silence as failure, Tlon reconnects stalled streams so unacknowledged events can replay, and managed Tailscale exposure recovers after a daemon restart while local authenticated access stays available. Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Channel delivery: Feishu keeps text from before and after tool calls in the same streaming card; Synology confirms delivery only from recipient-matched message IDs; Twitch targets and Zalo unsupported-event text follow their channel handling rather than silently losing usable content. Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Channel credentials and notices: implicit Slack default accounts retain complete top-level credentials alongside named accounts, channel secret consumers respect account activation, and Nostr reports failed pairing notifications without undoing approval. Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- iMessage storage: recovery cursor keys no longer contain a PostgreSQL-incompatible NUL separator, allowing the channel to start with PostgreSQL-backed state. ([#&#8203;184919](https://github.com/openclaw/openclaw/issues/184919)) Fixes [#&#8203;184862](https://github.com/openclaw/openclaw/issues/184862) Thanks [@&#8203;duyufansh2008](https://github.com/duyufansh2008), [@&#8203;RomneyDa](https://github.com/RomneyDa), and [@&#8203;etzelm](https://github.com/etzelm).
- Session and agent authority: deleting one agent no longer breaks other agents' tool authority, and local session-capability changes stop inappropriate provider fallback instead of trying every model. ([#&#8203;174918](https://github.com/openclaw/openclaw/issues/174918), [#&#8203;179312](https://github.com/openclaw/openclaw/issues/179312)) Fixes [#&#8203;179290](https://github.com/openclaw/openclaw/issues/179290) Thanks [@&#8203;steipete](https://github.com/steipete), [@&#8203;chelsealong](https://github.com/chelsealong), [@&#8203;obviyus](https://github.com/obviyus), and [@&#8203;Marvinthebored](https://github.com/Marvinthebored).
- Prompt caching: session tool definitions stay stable across turns, including completions, heartbeats, and non-owner requests, avoiding unnecessary prompt-cache misses. ([#&#8203;175309](https://github.com/openclaw/openclaw/issues/175309), [#&#8203;176167](https://github.com/openclaw/openclaw/issues/176167)) Thanks [@&#8203;obviyus](https://github.com/obviyus).
- Conversation recovery: compaction retains the active human request across repeated summaries; queue overflow summaries retain each visible sender and conversation context; exec completion guidance survives overflow. ([#&#8203;180214](https://github.com/openclaw/openclaw/issues/180214), [#&#8203;187833](https://github.com/openclaw/openclaw/issues/187833), [#&#8203;190698](https://github.com/openclaw/openclaw/issues/190698), [#&#8203;182188](https://github.com/openclaw/openclaw/issues/182188), [#&#8203;184216](https://github.com/openclaw/openclaw/issues/184216)) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;aniketkrs](https://github.com/aniketkrs).
- Codex continuity: conversation-wide restrictions retain compatible native threads, temporary restrictions preserve the ordinary conversation binding, and a missing thread with recorded history reports an error instead of silently starting over. Thanks [@&#8203;skyzhao1223](https://github.com/skyzhao1223) and [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Codex replies: transient retries can summarize the original request and completed tools without rerunning them; terminal handoffs allow already-submitted steering a bounded chance to confirm consumption and do not automatically replay uncertain input. ([#&#8203;183077](https://github.com/openclaw/openclaw/issues/183077), [#&#8203;184062](https://github.com/openclaw/openclaw/issues/184062), [#&#8203;181839](https://github.com/openclaw/openclaw/issues/181839), [#&#8203;167390](https://github.com/openclaw/openclaw/issues/167390)) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Shared credentials and model availability: concurrent MCP callers can reuse a fresh OAuth token without unnecessary exclusive locking, rate-limit cooldowns follow provider timing instead of accumulating hours of local backoff, and fresh model publications replace superseded refresh results. ([#&#8203;179997](https://github.com/openclaw/openclaw/issues/179997), [#&#8203;180280](https://github.com/openclaw/openclaw/issues/180280), [#&#8203;179144](https://github.com/openclaw/openclaw/issues/179144)) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Claude CLI and scheduled work: canceled cron runs stop reply hooks, interrupted long-running jobs no longer prevent scheduler startup, oversized or invalid CLI streams cancel their subprocess promptly, and managed completions retain the policy-filtered tool catalog. ([#&#8203;181245](https://github.com/openclaw/openclaw/issues/181245), [#&#8203;191422](https://github.com/openclaw/openclaw/issues/191422), [#&#8203;159931](https://github.com/openclaw/openclaw/issues/159931), [#&#8203;172026](https://github.com/openclaw/openclaw/issues/172026)) Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;fuller-stack-dev](https://github.com/fuller-stack-dev).
- Session history and memory: long transcript decoding releases database read snapshots promptly, bounded history pages keep their requested anchors and adjacent messages, and memory indexing waits for archived transcript materialization. ([#&#8203;164442](https://github.com/openclaw/openclaw/issues/164442), [#&#8203;172970](https://github.com/openclaw/openclaw/issues/172970), [#&#8203;177937](https://github.com/openclaw/openclaw/issues/177937), [#&#8203;182091](https://github.com/openclaw/openclaw/issues/182091), [#&#8203;190182](https://github.com/openclaw/openclaw/issues/190182), [#&#8203;189284](https://github.com/openclaw/openclaw/issues/189284), [#&#8203;188450](https://github.com/openclaw/openclaw/issues/188450), [#&#8203;188483](https://github.com/openclaw/openclaw/issues/188483), [#&#8203;190690](https://github.com/openclaw/openclaw/issues/190690)) Fixes [#&#8203;171467](https://github.com/openclaw/openclaw/issues/171467) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa), and [@&#8203;etzelm](https://github.com/etzelm).
- Subagent and restart recovery: live descendants keep their expired parents available for communication, accepted yields settle sibling tool results before handoff, and stale interrupted input no longer blocks a new human message indefinitely. ([#&#8203;179057](https://github.com/openclaw/openclaw/issues/179057), [#&#8203;184021](https://github.com/openclaw/openclaw/issues/184021), [#&#8203;180853](https://github.com/openclaw/openclaw/issues/180853), [#&#8203;181871](https://github.com/openclaw/openclaw/issues/181871), [#&#8203;178888](https://github.com/openclaw/openclaw/issues/178888), [#&#8203;184041](https://github.com/openclaw/openclaw/issues/184041), [#&#8203;184069](https://github.com/openclaw/openclaw/issues/184069), [#&#8203;172959](https://github.com/openclaw/openclaw/issues/172959)) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Agent handoffs: waiting session sends recover the stored long reply instead of returning only a short lifecycle preview, and ACP-created sessions retain the requested working directory for later prompts. ([#&#8203;178271](https://github.com/openclaw/openclaw/issues/178271), [#&#8203;176852](https://github.com/openclaw/openclaw/issues/176852)) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Control UI recovery: silently dead Gateway connections reconnect without replaying uncertain sends, consumed slash-steering messages leave the queue, and routine restart notices stay concise. ([#&#8203;179101](https://github.com/openclaw/openclaw/issues/179101), [#&#8203;178642](https://github.com/openclaw/openclaw/issues/178642), [#&#8203;180024](https://github.com/openclaw/openclaw/issues/180024), [#&#8203;172843](https://github.com/openclaw/openclaw/issues/172843)) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- GitHub workflows: active sessions can open the reconnect flow, failed follow-up pushes retain the existing PR, and readers no longer hang while discarding response bodies. ([#&#8203;180200](https://github.com/openclaw/openclaw/issues/180200), [#&#8203;187835](https://github.com/openclaw/openclaw/issues/187835), [#&#8203;191721](https://github.com/openclaw/openclaw/issues/191721)) Fixes [#&#8203;187832](https://github.com/openclaw/openclaw/issues/187832) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa), [@&#8203;anmol0b](https://github.com/anmol0b), [@&#8203;obviyus](https://github.com/obviyus), and [@&#8203;nocodet888-arch](https://github.com/nocodet888-arch).
- Plugin lifecycle: startup avoids recopying managed binaries, repairs owned stale host links after installation-root changes, and keeps plugin background readers alive for admitted callbacks and cleanup; internal plugin reload resumes stay in the current session rather than using an old external recipient. ([#&#8203;187865](https://github.com/openclaw/openclaw/issues/187865), [#&#8203;181140](https://github.com/openclaw/openclaw/issues/181140), [#&#8203;182207](https://github.com/openclaw/openclaw/issues/182207), [#&#8203;179031](https://github.com/openclaw/openclaw/issues/179031), [#&#8203;181270](https://github.com/openclaw/openclaw/issues/181270), [#&#8203;179549](https://github.com/openclaw/openclaw/issues/179549), [#&#8203;190982](https://github.com/openclaw/openclaw/issues/190982)) Thanks [@&#8203;Satoshi-Kusumoto](https://github.com/Satoshi-Kusumoto), [@&#8203;RomneyDa](https://github.com/RomneyDa), [@&#8203;jasonftl](https://github.com/jasonftl), and [@&#8203;obviyus](https://github.com/obviyus).
- Gateway startup and shutdown: retry transient database locks during stale-claim cleanup and sidecar startup, and exit after clean shutdown instead of waiting for systemd to kill a process with a leaked handle. ([#&#8203;187724](https://github.com/openclaw/openclaw/issues/187724), [#&#8203;186920](https://github.com/openclaw/openclaw/issues/186920), [#&#8203;191251](https://github.com/openclaw/openclaw/issues/191251)) Fixes [#&#8203;187723](https://github.com/openclaw/openclaw/issues/187723), [#&#8203;186875](https://github.com/openclaw/openclaw/issues/186875), [#&#8203;191119](https://github.com/openclaw/openclaw/issues/191119) Thanks [@&#8203;masatohoshino](https://github.com/masatohoshino), [@&#8203;obviyus](https://github.com/obviyus), [@&#8203;steipete](https://github.com/steipete), [@&#8203;yousan](https://github.com/yousan), [@&#8203;bianyuxia-commits](https://github.com/bianyuxia-commits), and [@&#8203;davesanvil](https://github.com/davesanvil).
- Update startup and migration: recover with retained worker indexes, avoid crashes in automatic migration recovery from 2026.10.7–2026.10.9, preserve recovery errors, and reject Git targets that require an unavailable newer Node before staging. ([#&#8203;189023](https://github.com/openclaw/openclaw/issues/189023), [#&#8203;189713](https://github.com/openclaw/openclaw/issues/189713), [#&#8203;191495](https://github.com/openclaw/openclaw/issues/191495), [#&#8203;181715](https://github.com/openclaw/openclaw/issues/181715)) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;steipete](https://github.com/steipete).
- Update repair: release abandoned cancellation custody and resolve pending package steps without repair loops; restore a suspended Windows Gateway task after failed verification while retaining the original failure details. ([#&#8203;177932](https://github.com/openclaw/openclaw/issues/177932), [#&#8203;186787](https://github.com/openclaw/openclaw/issues/186787), [#&#8203;189647](https://github.com/openclaw/openclaw/issues/189647)) Fixes [#&#8203;177684](https://github.com/openclaw/openclaw/issues/177684), [#&#8203;184893](https://github.com/openclaw/openclaw/issues/184893), [#&#8203;189620](https://github.com/openclaw/openclaw/issues/189620) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa), [@&#8203;fuller-stack-dev](https://github.com/fuller-stack-dev), [@&#8203;TheAngryPit](https://github.com/TheAngryPit), [@&#8203;sukhdeepjohar](https://github.com/sukhdeepjohar), [@&#8203;steipete](https://github.com/steipete), [@&#8203;syxscott](https://github.com/syxscott), and [@&#8203;stephen3303](https://github.com/stephen3303).
- Update captures and service handoff: ignore Finder metadata when listing recovery captures, recover CLI Node runtimes when launched from `/`, and classify an unavailable automatic-update service handoff as skipped rather than an unrecorded failure. ([#&#8203;186663](https://github.com/openclaw/openclaw/issues/186663), [#&#8203;178112](https://github.com/openclaw/openclaw/issues/178112), [#&#8203;188405](https://github.com/openclaw/openclaw/issues/188405)) Fixes [#&#8203;186650](https://github.com/openclaw/openclaw/issues/186650), [#&#8203;177739](https://github.com/openclaw/openclaw/issues/177739), [#&#8203;188302](https://github.com/openclaw/openclaw/issues/188302) Thanks [@&#8203;duyufansh2008](https://github.com/duyufansh2008), [@&#8203;RomneyDa](https://github.com/RomneyDa), [@&#8203;steipete](https://github.com/steipete), [@&#8203;woshicby](https://github.com/woshicby), [@&#8203;downingkeys](https://github.com/downingkeys), and [@&#8203;ARSA31](https://github.com/ARSA31).
- Doctor migrations: bound long Matrix archive filenames, preserve config promotion when only migration guidance changes, run explicitly requested headless repairs, return failure rather than success when required work was skipped, and retain invalid heartbeat quiet hours with actionable validation. ([#&#8203;187443](https://github.com/openclaw/openclaw/issues/187443), [#&#8203;190665](https://github.com/openclaw/openclaw/issues/190665), [#&#8203;187192](https://github.com/openclaw/openclaw/issues/187192), [#&#8203;186305](https://github.com/openclaw/openclaw/issues/186305)) Fixes [#&#8203;187390](https://github.com/openclaw/openclaw/issues/187390), [#&#8203;190658](https://github.com/openclaw/openclaw/issues/190658), [#&#8203;187122](https://github.com/openclaw/openclaw/issues/187122) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa), [@&#8203;skyzhao1223](https://github.com/skyzhao1223), [@&#8203;steipete](https://github.com/steipete), [@&#8203;dakoller](https://github.com/dakoller), [@&#8203;saariuslystoned](https://github.com/saariuslystoned), and [@&#8203;JordanNewell](https://github.com/JordanNewell).
- Configuration and store recovery: explain how to recover when an older binary meets newer config; relative session stores resolve against the active state directory, and Doctor merges legacy misplaced stores with backups while preserving conflicting conversations and refusing unsafe retirement. ([#&#8203;187639](https://github.com/openclaw/openclaw/issues/187639), [#&#8203;182444](https://github.com/openclaw/openclaw/issues/182444), [#&#8203;181554](https://github.com/openclaw/openclaw/issues/181554), [#&#8203;180414](https://github.com/openclaw/openclaw/issues/180414), [#&#8203;179089](https://github.com/openclaw/openclaw/issues/179089)) Fixes [#&#8203;152791](https://github.com/openclaw/openclaw/issues/152791) Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa), [@&#8203;duyufansh2008](https://github.com/duyufansh2008), [@&#8203;steipete](https://github.com/steipete), and [@&#8203;kip-claw](https://github.com/kip-claw).
- Service and backup reliability: repaired updaters distinguish durable database changes from read-only WAL bookkeeping, wait for the serving Mac child to release state, preserve valid replacement config without metadata, and keep unrelated service overrides intact during supported Node repairs. Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- Diagnostics and provider tools: timeout messages distinguish an unknown tool outcome from a safe retry, Anthropic PDF requests use the selected account's proper authentication, and Gemini/Vertex streams stop at terminal markers instead of consuming later frames. ([#&#8203;180247](https://github.com/openclaw/openclaw/issues/180247), [#&#8203;182429](https://github.com/openclaw/openclaw/issues/182429), [#&#8203;184434](https://github.com/openclaw/openclaw/issues/184434), [#&#8203;178420](https://github.com/openclaw/openclaw/issues/178420), [#&#8203;117397](https://github.com/openclaw/openclaw/issues/117397)) Thanks Ayaan Zaidi, [@&#8203;evomach](https://github.com/evomach), [@&#8203;sukhdeepjohar](https://github.com/sukhdeepjohar), [@&#8203;RomneyDa](https://github.com/RomneyDa), [@&#8203;MertBasar0](https://github.com/MertBasar0), [@&#8203;anmol0b](https://github.com/anmol0b), [@&#8203;shakkernerd](https://github.com/shakkernerd), [@&#8203;kybrcore](https://github.com/kybrcore), [@&#8203;potoior](https://github.com/potoior).

##### Complete contribution record

This audited record covers the complete v2026.10.10..[`63e490a`](https://github.com/openclaw/openclaw/commit/63e490a32182f338dba0267cea5a161f40f288dd) history: 78 in-range PRs + 0 retained seed-only PRs = 78 unique PRs. The generation manifest also supplies direct commits as editorial input; the grouped notes above prioritize user impact.

##### Pull requests

- **PR [#&#8203;185258](https://github.com/openclaw/openclaw/issues/185258)** Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- **PR [#&#8203;180164](https://github.com/openclaw/openclaw/issues/180164)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;180169](https://github.com/openclaw/openclaw/issues/180169)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;180203](https://github.com/openclaw/openclaw/issues/180203)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;180201](https://github.com/openclaw/openclaw/issues/180201)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;180191](https://github.com/openclaw/openclaw/issues/180191)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;180211](https://github.com/openclaw/openclaw/issues/180211)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;180180](https://github.com/openclaw/openclaw/issues/180180)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;189712](https://github.com/openclaw/openclaw/issues/189712)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;189720](https://github.com/openclaw/openclaw/issues/189720)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;187991](https://github.com/openclaw/openclaw/issues/187991)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;180183](https://github.com/openclaw/openclaw/issues/180183)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;189718](https://github.com/openclaw/openclaw/issues/189718)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;187994](https://github.com/openclaw/openclaw/issues/187994)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;189748](https://github.com/openclaw/openclaw/issues/189748)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;189715](https://github.com/openclaw/openclaw/issues/189715)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;189130](https://github.com/openclaw/openclaw/issues/189130)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;179200](https://github.com/openclaw/openclaw/issues/179200)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;179385](https://github.com/openclaw/openclaw/issues/179385)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;179704](https://github.com/openclaw/openclaw/issues/179704)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;jalehman](https://github.com/jalehman) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;189457](https://github.com/openclaw/openclaw/issues/189457)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;vincentkoc](https://github.com/vincentkoc) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;191641](https://github.com/openclaw/openclaw/issues/191641)** Related [#&#8203;178554](https://github.com/openclaw/openclaw/issues/178554). Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;187734](https://github.com/openclaw/openclaw/issues/187734)** Related [#&#8203;187600](https://github.com/openclaw/openclaw/issues/187600). Thanks [@&#8203;anmol0b](https://github.com/anmol0b).
- **PR [#&#8203;187664](https://github.com/openclaw/openclaw/issues/187664)** Related [#&#8203;187597](https://github.com/openclaw/openclaw/issues/187597). Thanks [@&#8203;anmol0b](https://github.com/anmol0b).
- **PR [#&#8203;191468](https://github.com/openclaw/openclaw/issues/191468)** Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- **PR [#&#8203;185141](https://github.com/openclaw/openclaw/issues/185141)** Related [#&#8203;164596](https://github.com/openclaw/openclaw/issues/164596). Thanks [@&#8203;anmol0b](https://github.com/anmol0b) and [@&#8203;goldmar](https://github.com/goldmar).
- **PR [#&#8203;187639](https://github.com/openclaw/openclaw/issues/187639)** Related [#&#8203;152791](https://github.com/openclaw/openclaw/issues/152791). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;kip-claw](https://github.com/kip-claw).
- **PR [#&#8203;187865](https://github.com/openclaw/openclaw/issues/187865)** Thanks [@&#8203;jasonftl](https://github.com/jasonftl) and [@&#8203;obviyus](https://github.com/obviyus).
- **PR [#&#8203;172116](https://github.com/openclaw/openclaw/issues/172116)** Thanks [@&#8203;holgergruenhagen](https://github.com/holgergruenhagen) and [@&#8203;LiuwqGit](https://github.com/LiuwqGit).
- **PR [#&#8203;186107](https://github.com/openclaw/openclaw/issues/186107)** Related [#&#8203;178719](https://github.com/openclaw/openclaw/issues/178719). Thanks [@&#8203;anmol0b](https://github.com/anmol0b) and [@&#8203;SharkeyDev](https://github.com/SharkeyDev).
- **PR [#&#8203;185432](https://github.com/openclaw/openclaw/issues/185432)** Thanks [@&#8203;etzelm](https://github.com/etzelm) and [@&#8203;RomneyDa](https://github.com/RomneyDa).
- **PR [#&#8203;186271](https://github.com/openclaw/openclaw/issues/186271)** Thanks [@&#8203;anmol0b](https://github.com/anmol0b).
- **PR [#&#8203;190729](https://github.com/openclaw/openclaw/issues/190729)** Thanks [@&#8203;etzelm](https://github.com/etzelm).
- **PR [#&#8203;184919](https://github.com/openclaw/openclaw/issues/184919)** Related [#&#8203;184862](https://github.com/openclaw/openclaw/issues/184862). Thanks [@&#8203;etzelm](https://github.com/etzelm).
- **PR [#&#8203;189023](https://github.com/openclaw/openclaw/issues/189023)** Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- **PR [#&#8203;189713](https://github.com/openclaw/openclaw/issues/189713)** Thanks [@&#8203;steipete](https://github.com/steipete).
- **PR [#&#8203;191495](https://github.com/openclaw/openclaw/issues/191495)** Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa) and [@&#8203;steipete](https://github.com/steipete).
- **PR [#&#8203;182632](https://github.com/openclaw/openclaw/issues/182632)** Thanks [@&#8203;steipete](https://github.com/steipete).
- **PR [#&#8203;187921](https://github.com/openclaw/openclaw/issues/187921)** Thanks [@&#8203;steipete](https://github.com/steipete).
- **PR [#&#8203;181715](https://github.com/openclaw/openclaw/issues/181715)** Thanks [@&#8203;steipete](https://github.com/steipete).
- **PR [#&#8203;181245](https://github.com/openclaw/openclaw/issues/181245)** Thanks [@&#8203;steipete](https://github.com/steipete).
- **PR [#&#8203;181966](https://github.com/openclaw/openclaw/issues/181966)** Related [#&#8203;181945](https://github.com/openclaw/openclaw/issues/181945). Thanks [@&#8203;holgergruenhagen](https://github.com/holgergruenhagen).
- **PR [#&#8203;186380](https://github.com/openclaw/openclaw/issues/186380)** Thanks [@&#8203;holgergruenhagen](https://github.com/holgergruenhagen) and [@&#8203;obviyus](https://github.com/obviyus).
- **PR [#&#8203;175309](https://github.com/openclaw/openclaw/issues/175309)** Thanks [@&#8203;obviyus](https://github.com/obviyus).
- **PR [#&#8203;176167](https://github.com/openclaw/openclaw/issues/176167)** Thanks [@&#8203;obviyus](https://github.com/obviyus).
- **PR [#&#8203;180200](https://github.com/openclaw/openclaw/issues/180200)** Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).
- **PR [#&#8203;174918](https://github.com/openclaw/openclaw/issues/174918)** Thanks [@&#8203;steipete](https://github.com/steipete).
- **PR [#&#8203;179312](https://github.com/openclaw/openclaw/issues/179312)** Related [#&#8203;179290](https://github.com/openclaw/openclaw/issues/179290). Thanks [@&#8203;chelsealong](https://github.com/chelsealong) and [@&#8203;obviyus](https://github.com/obviyus) and [@&#8203;Marvinthebored](https://github.com/Marvinthebored).
- **PR [#&#8203;186238](https://github.com/openclaw/openclaw/issues/186238)** Related [#&#8203;179289](https://github.com/openclaw/openclaw/issues/179289). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;Marvinthebored](https://github.com/Marvinthebored).
- **PR [#&#8203;183501](https://github.com/openclaw/openclaw/issues/183501)** Thanks [@&#8203;Marvinthebored](https://github.com/Marvinthebored) and [@&#8203;RomneyDa](https://github.com/RomneyDa).
- **PR [#&#8203;189827](https://github.com/openclaw/openclaw/issues/189827)** Related [#&#8203;189823](https://github.com/openclaw/openclaw/issues/189823). Thanks [@&#8203;ekinnee](https://github.com/ekinnee).
- **PR [#&#8203;187835](https://github.com/openclaw/openclaw/issues/187835)** Related [#&#8203;187832](https://github.com/openclaw/openclaw/issues/187832). Thanks [@&#8203;anmol0b](https://github.com/anmol0b) and [@&#8203;obviyus](https://github.com/obviyus).
- **PR [#&#8203;164442](https://github.com/openclaw/openclaw/issues/164442)** Related [#&#8203;171467](https://github.com/openclaw/openclaw/issues/171467). Thanks [@&#8203;etzelm](https://github.com/etzelm).
- **PR [#&#8203;191422](https://github.com/openclaw/openclaw/issues/191422)** Thanks [@&#8203;fuller-stack-dev](https://github.com/fuller-stack-dev).
- **PR [#&#8203;191423](https://github.com/openclaw/openclaw/issues/191423)** Thanks [@&#8203;Leon-SK668](https://github.com/Leon-SK668).
- **PR [#&#8203;191458](https://github.com/openclaw/openclaw/issues/191458)** Thanks [@&#8203;SebTardif](https://github.com/SebTardif).
- **PR [#&#8203;191146](https://github.com/openclaw/openclaw/issues/191146)** Related [#&#8203;191133](https://github.com/openclaw/openclaw/issues/191133). Thanks [@&#8203;Yun-0000](https://github.com/Yun-0000) and [@&#8203;obviyus](https://github.com/obviyus) and [@&#8203;mirasrael](https://github.com/mirasrael).
- **PR [#&#8203;191721](https://github.com/openclaw/openclaw/issues/191721)** Thanks [@&#8203;nocodet888-arch](https://github.com/nocodet888-arch).
- **PR [#&#8203;190944](https://github.com/openclaw/openclaw/issues/190944)** Thanks [@&#8203;pgondhi987](https://github.com/pgondhi987).
- **PR [#&#8203;190939](https://github.com/openclaw/openclaw/issues/190939)** Thanks [@&#8203;pgondhi987](https://github.com/pgondhi987).
- **PR [#&#8203;191523](https://github.com/openclaw/openclaw/issues/191523)** Related [#&#8203;191420](https://github.com/openclaw/openclaw/issues/191420). Thanks [@&#8203;brandonulrich](https://github.com/brandonulrich) and [@&#8203;steipete](https://github.com/steipete).
- **PR [#&#8203;187443](https://github.com/openclaw/openclaw/issues/187443)** Related [#&#8203;187390](https://github.com/openclaw/openclaw/issues/187390). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;dakoller](https://github.com/dakoller).
- **PR [#&#8203;186663](https://github.com/openclaw/openclaw/issues/186663)** Related [#&#8203;186650](https://github.com/openclaw/openclaw/issues/186650). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;woshicby](https://github.com/woshicby).
- **PR [#&#8203;186728](https://github.com/openclaw/openclaw/issues/186728)** Thanks [@&#8203;steipete](https://github.com/steipete).
- **PR [#&#8203;178112](https://github.com/openclaw/openclaw/issues/178112)** Related [#&#8203;177739](https://github.com/openclaw/openclaw/issues/177739). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;downingkeys](https://github.com/downingkeys).
- **PR [#&#8203;188405](https://github.com/openclaw/openclaw/issues/188405)** Related [#&#8203;188302](https://github.com/openclaw/openclaw/issues/188302). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;ARSA31](https://github.com/ARSA31).
- **PR [#&#8203;190665](https://github.com/openclaw/openclaw/issues/190665)** Related [#&#8203;190658](https://github.com/openclaw/openclaw/issues/190658). Thanks [@&#8203;saariuslystoned](https://github.com/saariuslystoned) and [@&#8203;steipete](https://github.com/steipete).
- **PR [#&#8203;191251](https://github.com/openclaw/openclaw/issues/191251)** Related [#&#8203;191119](https://github.com/openclaw/openclaw/issues/191119). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;davesanvil](https://github.com/davesanvil).
- **PR [#&#8203;174787](https://github.com/openclaw/openclaw/issues/174787)** Related [#&#8203;173826](https://github.com/openclaw/openclaw/issues/173826). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;lockhartheavyindustries](https://github.com/lockhartheavyindustries).
- **PR [#&#8203;187724](https://github.com/openclaw/openclaw/issues/187724)** Related [#&#8203;187723](https://github.com/openclaw/openclaw/issues/187723). Thanks [@&#8203;masatohoshino](https://github.com/masatohoshino) and [@&#8203;obviyus](https://github.com/obviyus).
- **PR [#&#8203;186920](https://github.com/openclaw/openclaw/issues/186920)** Related [#&#8203;186875](https://github.com/openclaw/openclaw/issues/186875). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;yousan](https://github.com/yousan) and [@&#8203;bianyuxia-commits](https://github.com/bianyuxia-commits).
- **PR [#&#8203;187192](https://github.com/openclaw/openclaw/issues/187192)** Related [#&#8203;187122](https://github.com/openclaw/openclaw/issues/187122). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;JordanNewell](https://github.com/JordanNewell).
- **PR [#&#8203;189647](https://github.com/openclaw/openclaw/issues/189647)** Related [#&#8203;189620](https://github.com/openclaw/openclaw/issues/189620). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;stephen3303](https://github.com/stephen3303).
- **PR [#&#8203;177932](https://github.com/openclaw/openclaw/issues/177932)** Related [#&#8203;177684](https://github.com/openclaw/openclaw/issues/177684). Thanks [@&#8203;fuller-stack-dev](https://github.com/fuller-stack-dev) and [@&#8203;TheAngryPit](https://github.com/TheAngryPit).
- **PR [#&#8203;186787](https://github.com/openclaw/openclaw/issues/186787)** Related [#&#8203;184893](https://github.com/openclaw/openclaw/issues/184893). Thanks [@&#8203;sukhdeepjohar](https://github.com/sukhdeepjohar) and [@&#8203;steipete](https://github.com/steipete) and [@&#8203;syxscott](https://github.com/syxscott).
- **PR [#&#8203;188473](https://github.com/openclaw/openclaw/issues/188473)** Thanks [@&#8203;vincentkoc](https://github.com/vincentkoc).
- **PR [#&#8203;180861](https://github.com/openclaw/openclaw/issues/180861)** Related [#&#8203;180782](https://github.com/openclaw/openclaw/issues/180782), [#&#8203;180795](https://github.com/openclaw/openclaw/issues/180795). Thanks [@&#8203;steipete](https://github.com/steipete) and [@&#8203;wangmiao0668000666](https://github.com/wangmiao0668000666).
- **PR [#&#8203;185193](https://github.com/openclaw/openclaw/issues/185193)** Thanks [@&#8203;RomneyDa](https://github.com/RomneyDa).

##### Release verification

- npm package: <https://www.npmjs.com/package/openclaw/v/2026.11.1>
- registry tarball: <https://registry.npmjs.org/openclaw/-/openclaw-2026.11.1.tgz>
- integrity: `sha512-2pSbt/taBKM/ofPXsiOEmVefgUdVHYRZOmcWNDyx67WUfeGFXqtfqLvtwYOiH4NcLolDSLMUgsno2oYhTVXptw==`
- release SHA: `4ffdd2047d192dd65554de3c8c46c0e0197c6e2a`
- full release CI report: <https://github.com/openclaw/releases/blob/main/evidence/2026.11.1/release-evidence.md>
- release publish: <https://github.com/openclaw/openclaw/actions/runs/41974576853>
- npm preflight: <https://github.com/openclaw/openclaw/actions/runs/41948095430>
- full release validation: <https://github.com/openclaw/openclaw/actions/runs/41947503209>
- plugin npm publish: <https://github.com/openclaw/openclaw/actions/runs/41997110216>
- plugin ClawHub submission: <https://github.com/openclaw/openclaw/actions/runs/41997115628>; public finalization and exact artifact verification follow terminal release-parent completion
- plugin ClawHub bootstrap: not needed
- OpenClaw npm publish: <https://github.com/openclaw/openclaw/actions/runs/41998320248>
- npm Telegram beta E2E: not supplied
- Android APK: skipped — apps/android/version.json is 2026.8.2, release train is 2026.11.1; run pnpm android:version:pin -- --from-gateway before the next tag.

### [`v2026.10.10`](https://github.com/openclaw/openclaw/releases/tag/v2026.10.10): openclaw 2026.10.10

[Compare Source](https://github.com/openclaw/openclaw/compare/v2026.10.9...v2026.10.10)

<!-- openclaw-release-publication:docs-v1 -->

#### OpenClaw v2026.10.10

4,825 commits · 3,028 pull requests · 454 contributors

##### Changes included in this release

The release notes and changelog contain the same content, presented in two formats:

- [Release notes](https://docs.openclaw.ai/releases/2026.10.10) — formatted for people.
- [Changelog](https://raw.githubusercontent.com/openclaw/openclaw/main/CHANGELOG/2026.10.10.md) — plain Markdown for AI agents and tools.

##### Thanks

[@&#8203;3n8](https://github.com/3n8) [@&#8203;555aaditya](https://github.com/555aaditya) [@&#8203;5jrfrbd6z9-spec](https://github.com/5jrfrbd6z9-spec) [@&#8203;609NFT](https://github.com/609NFT) [@&#8203;67-luck](https://github.com/67-luck) [@&#8203;888achtachtacht-commits](https://github.com/888achtachtacht-commits) [@&#8203;8bitsforge](https://github.com/8bitsforge) [@&#8203;A-Raphie](https://github.com/A-Raphie) [@&#8203;aaa2015](https://github.com/aaa2015) [@&#8203;abacha](https://github.com/abacha) [@&#8203;Abhishek-B-R](https://github.com/Abhishek-B-R) [@&#8203;acedatacloud-dev](https://github.com/acedatacloud-dev) [@&#8203;actwebmaster](https://github.com/actwebmaster) [@&#8203;adamdksaad-ops](https://github.com/adamdksaad-ops) [@&#8203;adeepn](https://github.com/adeepn) [@&#8203;adembektas](https://github.com/adembektas) [@&#8203;agierror](https://github.com/agierror) [@&#8203;aleps001](https://github.com/aleps001) [@&#8203;alexm](https://github.com/alexm) [@&#8203;alexph-dev](https://github.com/alexph-dev) [@&#8203;Alix-007](https://github.com/Alix-007) [@&#8203;alkor2000](https://github.com/alkor2000) [@&#8203;altaywtf](https://github.com/altaywtf) [@&#8203;alter](https://github.com/alter) [@&#8203;AmelioMansour](https://github.com/AmelioMansour) [@&#8203;amirarenco-create](https://github.com/amirarenco-create) [@&#8203;amittell](https://github.com/amittell) [@&#8203;amueller80](https://github.com/amueller80) [@&#8203;amyduquette](https://github.com/amyduquette) [@&#8203;andrewbowlds](https://github.com/andrewbowlds) [@&#8203;andris9](https://github.com/andris9) [@&#8203;aniruddhaadak80](https://github.com/aniruddhaadak80) [@&#8203;anmol0b](https://github.com/anmol0b) [@&#8203;anyech](https://github.com/anyech) [@&#8203;areslp](https://github.com/areslp) [@&#8203;arhxam](https://github.com/arhxam) [@&#8203;arquiteto-raiz](https://github.com/arquiteto-raiz) [@&#8203;art22s](https://github.com/art22s) [@&#8203;arthur-drozdov](https://github.com/arthur-drozdov) [@&#8203;ArthurNie](https://github.com/ArthurNie) [@&#8203;ashukla147](https://github.com/ashukla147) [@&#8203;AVCarp](https://github.com/AVCarp) [@&#8203;AXEG0](https://github.com/AXEG0) [@&#8203;ayaangazali](https://github.com/ayaangazali) [@&#8203;Ayushdevo](https://github.com/Ayushdevo) [@&#8203;bajiaoshan](https://github.com/bajiaoshan) [@&#8203;Bartok9](https://github.com/Bartok9) [@&#8203;beenhero](https://github.com/beenhero) [@&#8203;benjaml4](https://github.com/benjaml4) [@&#8203;beru-ant-king](https://github.com/beru-ant-king) [@&#8203;bitfroest](https://github.com/bitfroest) [@&#8203;bjesuiter](https://github.com/bjesuiter) [@&#8203;blance2599](https://github.com/blance2599) [@&#8203;bluet](https://github.com/bluet) [@&#8203;boeingchoco](https://github.com/boeingchoco) [@&#8203;brandon-julio-t](https://github.com/brandon-julio-t) [@&#8203;brianmcguire](https://github.com/brianmcguire) [@&#8203;bricelb](https://github.com/bricelb) [@&#8203;brokemac79](https://github.com/brokemac79) [@&#8203;bulingbuling688](https://github.com/bulingbuling688) [@&#8203;camerono](https://github.com/camerono) [@&#8203;Canvinus](https://github.com/Canvinus) [@&#8203;Card4Philippe](https://github.com/Card4Philippe) [@&#8203;carlopignatari-boop](https://github.com/carlopignatari-boop) [@&#8203;CassieMei](https://github.com/CassieMei) [@&#8203;castigiova](https://github.com/castigiova) [@&#8203;chelsealong](https://github.com/chelsealong) [@&#8203;chitowntony](https://github.com/chitowntony) [@&#8203;chughtapan](https://github.com/chughtapan) [@&#8203;clarkbw](https://github.com/clarkbw) [@&#8203;clawSean](https://github.com/clawSean) [@&#8203;clement-paradex](https://github.com/clement-paradex) [@&#8203;cnnceart](https://github.com/cnnceart) [@&#8203;crwohlfeil](https://github.com/crwohlfeil) [@&#8203;Cyb3rb1ade](https://github.com/Cyb3rb1ade) [@&#8203;dabase](https://github.com/dabase) [@&#8203;daddyclint82](https://github.com/daddyclint82) [@&#8203;DagenGuo](https://github.com/DagenGuo) [@&#8203;dankarization](https://github.com/dankarization) [@&#8203;DarkJuanFra](https://github.com/DarkJuanFra) [@&#8203;davidcittadini](https://github.com/davidcittadini) [@&#8203;davidgrinc](https://github.com/davidgrinc) [@&#8203;davidjoshua7692-code](https://github.com/davidjoshua7692-code) [@&#8203;deepujain](https://github.com/deepujain) [@&#8203;demos-ra](https://github.com/demos-ra) [@&#8203;desksk](https://github.com/desksk) [@&#8203;dh-js](https://github.com/dh-js) [@&#8203;Dhotei](https://github.com/Dhotei) [@&#8203;diegoln](https://github.com/diegoln) [@&#8203;digitalfrost84](https://github.com/digitalfrost84) [@&#8203;dineshsuthar123](https://github.com/dineshsuthar123) [@&#8203;diregoblin](https://github.com/diregoblin) [@&#8203;dmorn](https://github.com/dmorn) [@&#8203;dmsrg399](https://github.com/dmsrg399) [@&#8203;DonnieFi](https://github.com/DonnieFi) [@&#8203;DrDanielSingleton](https://github.com/DrDanielSingleton) [@&#8203;drewjocham](https://github.com/drewjocham) [@&#8203;dsantoreis](https://github.com/dsantoreis) [@&#8203;dtump](https://github.com/dtump) [@&#8203;duardor968](https://github.com/duardor968) [@&#8203;duyufansh2008](https://github.com/duyufansh2008) [@&#8203;dwalthour](https://github.com/dwalthour) [@&#8203;dwc1997](https://github.com/dwc1997) [@&#8203;dwty11](https://github.com/dwty11) [@&#8203;eightHundreds](https://github.com/eightHundreds) [@&#8203;eiriktorheim](https://github.com/eiriktorheim) [@&#8203;eleqtrizit](https://github.com/eleqtrizit) [@&#8203;eli-pavlov](https://github.com/eli-pavlov) [@&#8203;eliavb43](https://github.com/eliavb43) [@&#8203;elikampf](https://github.com/elikampf) [@&#8203;Embracex1998](https://github.com/Embracex1998) [@&#8203;EmeraldPi](https://github.com/EmeraldPi) [@&#8203;EndeavorPioneer](https://github.com/EndeavorPioneer) [@&#8203;engagepy](https://github.com/engagepy) [@&#8203;enki](https://github.com/enki) [@&#8203;ensignwesley](https://github.com/ensignwesley) [@&#8203;ericcaiwx-star](https://github.com/ericcaiwx-star) [@&#8203;ericcurtin](https://github.com/ericcurtin) [@&#8203;erlightbourn-source](https://github.com/erlightbourn-source) [@&#8203;etzelm](https://github.com/etzelm) [@&#8203;EvolveAegis](https://github.com/EvolveAegis) [@&#8203;exGeni](https://github.com/exGeni) [@&#8203;exisz](https://github.com/exisz) [@&#8203;ExoHumann](https://github.com/ExoHumann) [@&#8203;fanmeng-felix](https://github.com/fanmeng-felix) [@&#8203;fbuechler](https://github.com/fbuechler) [@&#8203;fede-kamel](https://github.com/fede-kamel) [@&#8203;feiniaoivp](https://github.com/feiniaoivp) [@&#8203;fhgffy](https://github.com/fhgffy) [@&#8203;forrystudio](https://github.com/forrystudio) [@&#8203;franssauermann](https://github.com/franssauermann) [@&#8203;freeqaz](https://github.com/freeqaz) [@&#8203;fuller-stack-dev](https://github.com/fuller-stack-dev) [@&#8203;funnysubaru](https://github.com/funnysubaru) [@&#8203;gdpu11](https://github.com/gdpu11) [@&#8203;geekforlife](https://github.com/geekforlife) [@&#8203;giodl73](https://github.com/giodl73) [@&#8203;giodl73-repo](https://github.com/giodl73-repo) [@&#8203;git-larry-roots](https://github.com/git-larry-roots) [@&#8203;gkoch02](https://github.com/gkoch02) [@&#8203;Glukmann](https://github.com/Glukmann) [@&#8203;GoldArowana](https://github.com/GoldArowana) [@&#8203;gorkem2020](https://github.com/gorkem2020) [@&#8203;goslingmanagment](https://github.com/goslingmanagment) [@&#8203;gregbond](https://github.com/gregbond) [@&#8203;Grynn](https://github.com/Grynn) [@&#8203;hamedshehab](https://github.com/hamedshehab) [@&#8203;hannesrudolph](https://github.com/hannesrudolph) [@&#8203;hannnnn-l](https://github.com/hannnnn-l) [@&#8203;harjothkhara](https://github.com/harjothkhara) [@&#8203;harshitgavita-07](https://github.com/harshitgavita-07) [@&#8203;Hawk5150](https://github.com/Hawk5150) [@&#8203;Hawkeye2611](https://github.com/Hawkeye2611) [@&#8203;hbgangcn1](https://github.com/hbgangcn1) [@&#8203;Heighte](https://github.com/Heighte) [@&#8203;hengtested-design](https://github.com/hengtested-design) [@&#8203;HerbertHuerto](https://github.com/HerbertHuerto) [@&#8203;HeZ2z](https://github.com/HeZ2z) [@&#8203;hidaba](https://github.com/hidaba) [@&#8203;hippoley](https://github.com/hippoley) [@&#8203;holgergruenhagen](https://github.com/holgergruenhagen) [@&#8203;homeworld520](https://github.com/homeworld520) [@&#8203;Honghe](https://github.com/Honghe) [@&#8203;hoobnn](https://github.com/hoobnn) [@&#8203;HootRock](https://github.com/HootRock) [@&#8203;htuyer121](https://github.com/htuyer121) [@&#8203;hugenshen](https://github.com/hugenshen) [@&#8203;husodrn46](https://github.com/husodrn46) [@&#8203;HussonT](https://github.com/HussonT) [@&#8203;imadal1n](https://github.com/imadal1n) [@&#8203;IndySweeney](https://github.com/IndySweeney) [@&#8203;Iolaum](https://github.com/Iolaum) [@&#8203;Irish-Joseph](https://github.com/Irish-Jose…
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 P2 Normal backlog priority with limited blast radius. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. security-sensitive-changed size: S 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.

[Bug]: Directory-resolution warning throws TypeError and emits nothing when the rejected config has malformed logging.redactPatterns

2 participants