OpenClaw Weekly Dev Update #xx — September 7–13, 2026
- Commits summarized
- 3,773
- Period
- Sep 07 - Sep 13, 2026
- Published
- Sep 15, 2026
OpenClaw Weekly Development Update
Repository: openclaw/openclaw
Period: September 7–13, 2026
Total commits this period: 3,773
This report highlights a selection of notable changes from available commit summaries. Not every commit is covered.
Who Should Read This
If you use OpenClaw for session management, subagent orchestration, mobile chat, talk/voice features, plugins, or CI/CD, this week brought numerous fixes and performance improvements that reduce memory use, tighten correctness, and improve observability.
Highlights
Session & Conversation Management
-
Archived aged conversations, raised active cap
Raised the default active session target to 5,000 and now archive eligible durable conversations at the age cutoff instead of deleting them. Retained generations are protected through the canonical reference owner.
Commit98c0918709 -
Clear stale task progress on conversation reset
A full reset now retires the previous task's durable progress card in the same guarded transaction as the reset boundary. Rejects delayed PUTs whose lifecycle revision has changed. Fixes #140356.
Commit0d52ff9c -
Identify workers behind slow session-write warnings
Added worker identity to slow session-write diagnostics so operators can trace which worker is responsible for delays.
Commit17a7bf646e
Subagent & Handoff Correctness
- Acknowledge settled serial handoffs
A child completion could previously run its requester again after the requester had already accepted the next child and explicitly yielded. This fix carries the core registry's successful settlement through runner/command boundaries, acknowledging the handoff without inventing a visible final reply.
Commitad324df48d
Mobile & UI
-
Align mobile chat messages with composer
Fixed misalignment between the mobile transcript and composer on narrow screens. Removes unused row gutters while retaining shared/forwarded identity. Fixes #139994.
Commit5b9246ce -
Show complete skill instructions in Workshop comparisons
Workshop now renders full skill instructions with inline changes in one scrollable view instead of clipped previews.
Commit52dd6629 -
Stop catalog paging in hidden tabs
Automatic page requests are gated at the refresh owner, preventing wasted network activity when a catalog tab is hidden.
Commit0a55c7c0 -
Keep usage exports bound to their session instance
The export hydration key now includes the concrete session ID, preventing stale usage data from mixing with a replacement session's prompt report.
Commitb39b6276
Talk / Voice / Real-Time
-
Keep opaque realtime routes out of public config
A large multi-commit fix ensures realtime relay routes, voice selection, and auth flows are properly projected. Opaque routing details no longer leak into public configuration.
Commit7ff0e11c -
Prevent Talk E2E audio capture stalls
Stabilized Talk audio fixtures and isolated media fixtures to prevent stalls during end-to-end audio capture.
Commit78503532
Plugins & Extensibility
-
Bundled catalog lookups made lightweight
Shared typed raw bundled inventory and short-circuited direct lookups reduced lookup time from ~1001 ms to ~531 ms for 95,000 lookups, and cold import loading dropped from 255 to 58 modules.
Commit8a540c25 -
Simplify approval forwarding mode resolution
Cleaned up the Plugin SDK's approval forwarding resolution logic.
Commitc371a00a
Performance & Memory
-
Release completed document source buffers
Cache-owned source buffers are now released as each document classification settles, reducing retained buffers from ~160 MiB to ~20 MiB on an eight-document text extraction probe.
Commitdd3faf5f -
Release consumed resume payloads (code-mode)
Worker-owned incoming snapshot bytes are retired after QuickJS restores its independent heap, freeing ~5.6 MB per resumed leg.
Commitb38d791b -
Avoid retaining discarded tool output
Copy selected single-line results at the truncation owner to release otherwise retained large source strings.
Commit6002950d -
Share process metadata across socket rows (ports)
Collected unique PIDs once per Unix inspection boundary, reusing their metadata across socket rows. Reduced repeated PID ps launches from 120 to 2 for repeated PIDs (or 120 to 80 for 40 distinct PIDs).
Commitcc13ef84 -
Reduce cloud node bootstrap downloads
Commitc3123cb8 -
Skip link parsing for bracket-free pages (memory-wiki)
Commit46174814
Infrastructure & CI
-
Avoid Linux packaging on pull requests
Linux packaging is now skipped on PRs while retaining compile/link/test coverage. Full packaging remains on manual dispatch.
Commit55fc54ca -
Keep routine iOS checks on a build smoke
Commita93deab9 -
Start source workers outside the package directory
Fixed a bug where workers spawned from outside the package root would crash withERR_MODULE_NOT_FOUNDbecause thetsxloader was resolved against the child process cwd instead of the OpenClaw package root. Closes #140416.
Commit25518783
Gateway & Systemd
-
Preserve child turns during systemd drain
Child runtimes are now kept alive during cooperative drain while retaining final cgroup cleanup. Addresses #140479 and #140467.
Commit9ae24dff -
Close startup trace on terminal failure
Gateway startup tracing is now properly closed at terminal lifecycle owners while preserving recoverable channel startup diagnostics.
Commitdbac2c10
Platform Integrations
-
Feishu: expand quoted merged-forward messages
Merged-forward children are now expanded in shared message retrieval so direct inbound messages, quoted replies, and thread starters receive ordered context. Bounded at 50 messages and 20,000 UTF-16 code units. Fixes #136200.
Commit43698a76 -
Telegram: unify delivery ownership, remove retired paths
Consolidated polling, accepted-delivery bookkeeping, and send-context leases. Removed retired polling paths and obsolete tests. HTML table context is now scanned once instead of repeatedly rescanning prefixes.
Commitf34ec093 -
Discord: reject numeric application ID as bot token during setup
Commita58d1245 -
Anthropic: preserve resumed CLI caches across Git changes
Commit940c359a
Documentation
- Plugin manifest reference split by domain
The single 158k-character manifest reference page was split into seven child pages underdocs/plugins/manifest/, keeping the parent as a short index with the full top-level field table. Every anchor and inbound link preserved. Closes audit findings r3-0501 and r3-1895.
Commit9da1f244
CLI & Tooling
-
Reject blank numeric options across inference and scans
Blank numeric options in CLI scan and capability commands are now properly rejected.
Commit934f9942 -
Accept no-pager overrides without executable lookup
Normalizedcat/emptyGIT_PAGERandPAGERrequests to empty values at the host environment boundary, matching node and macOS semantics.
Commita56913aa -
Omit Trae machine squash credit
Classifies only the exact published Trae machine address in native squash composition so machine attribution is excluded without matching human names.
Commitae2f990d -
Correct advice for nested declaration failures
Commit4972d560
Translations & Locales
- Refreshed native locales and control UI locales.
Commit4f77c180· Commit3c6c2a46
This report covers highlights from September 7–13, 2026. With 3,773 commits in the period, only a subset of summaries is represented here. Full commit history at github.com/openclaw/openclaw.