OpenClaw

OpenClaw moves transcript archiving off the gateway loop

OpenClaw is moving large transcript archive work into a dedicated worker after a 48 MiB responsiveness test, while separate queue and audit work exposes the ownership problem around long-running turns. The proposal keeps archive-before-delete semantics and makes exact execution identity opt-in.

← Back to homeOriginal source ↗

openclaw/openclaw PR #112424 is the inspected primary source: “fix(sessions): keep gateway responsive while large transcript archives are built.” The related records below were inspected as supporting context rather than independent confirmation.

The facts

- openclaw/openclaw PR #112424 was created 2026-07-21T21:20:48Z and was open at inspection; its title is “fix(sessions): keep gateway responsive while large transcript archives are built.” - openclaw/openclaw issue #115653 was created 2026-07-29T06:06:11Z and was open at inspection; its title is “Per-chat queue eviction doesn't cancel ACP agent, causing orphan replies.” - openclaw/openclaw PR #117034 was created 2026-07-31T20:36:35Z and was open at inspection; its title is “feat(audit): add execution identity inspection.” - The repository reported 385048 stars, 5478 open issues, default branch main, and last push 2026-08-04T00:56:16Z. - The latest tagged-release baseline checked was v2026.7.1-2 published 2026-08-04T00:41:26Z.

What changed

openclaw/openclaw PR #112424 reports: Related: #112423 AI-assisted: Codex was used for implementation, testing, and review. The design boundaries and validation evidence are documented below for review. What Problem This Solves Fixes an issue where users cleaning up, resetting, deleting, or evicting a SQLite-backed session with a large transcript could temporarily stall the Gateway event loop while the transcript archive was built and published. Why This Change Was Made This is the first bounded phase of #112423. It moves lifecycle transcript-archive materialization to a dedicated Worker while preserving the existing archive format and the parent process's authoritative archive-before-delete fence. Design Boundaries The Worker opens the exact physical agent database read-only, validates the planned snapshot inside one consistent SQLite read transaction, reads transcript events in sequence order, and uses the existing

openclaw/openclaw issue #115653 reports: Description When the per-chat sequential queue evicts a message (due to 300s timeout), it only removes the message from the queue and resets the session state to idle. It does **not** cancel the ACP agent process that is still running in the background. This causes the evicted message's reply to become an "orphan" — the agent finishes processing and produces a reply, but the reply has nowhere to go. It gets stuck in a buffer and is only released when a new message arrives, creating a "one-message-behind" pattern. Steps to Reproduce 1. Send a message that triggers a long-running agent task (>300s) 2. The message is evicted from the per-chat queue after 300s 3. Session state is reset to idle 4. The ACP agent process

openclaw/openclaw PR #117034 reports: or Related: # line below this comment. Required PR title: type: user-facing description Use a parenthesized scope only when it adds clarity: fix(auth): login redirect loops when session cookie is expired Types: feat, fix, improve, refactor, docs, chore. For fixes, describe the user-visible symptom and trigger: fix: task list fails to load when user has no environments Avoid implementation details such as: fix: add null check to task query Additional instructions MUST:** Keep **Allow edits from maintainers** enabled for this PR so maintainers can help update the branch when needed. What Problem This Solves Operators can inspect audit activity for a session or run, but cannot currently answer which identity evidence was available when one exact agent execution was admitted. A public runId can also

Why it matters

The useful news is not another session feature. It is an attempt to keep lifecycle work responsive without weakening the deletion fence, while admitting that queue eviction, process cancellation and reply ownership must refer to the same execution. The operator test is whether persisted state, execution authority and the visible user outcome describe the same event after retries, restarts or delegation.

Current

The primary record was open when captured on 2026-08-04. The release baseline was v2026.7.1-2 published 2026-08-04T00:41:26Z. Repository metadata, pull requests, issues, release records, Google News discovery, Hacker News discovery, Lobsters, Metamesh and the rendered ClawCharts row were checked. ClawCharts selected the subject; it did not prove the claim.

Evidence

The primary URL is https://github.com/openclaw/openclaw/pull/112424. Supporting records are https://github.com/openclaw/openclaw/issues/115653 and https://github.com/openclaw/openclaw/pull/117034. Source bodies, timestamps and states are preserved in the daily evidence bundle. Test counts, reproductions and deployment observations remain attributed to their authors unless explicitly identified as independently rerun.

Source boundary

Open work is described as open, closed work as closed, and operator reports as reports. A pull request is evidence of proposed or reviewed direction, not proof of a shipped release. Search residue, package mirrors and historically published source spines were excluded.

Operator take

Measure event-loop gaps under real archive load, bind every reply to an execution ID, and do not treat an idle session flag as proof that the underlying process ended. Preserve a before-state receipt, make the smallest reversible change, and verify the original failure independently after intervention.

Caveat

Public project records are mutable. Status, scope and evidence can change after publication. This brief records the inspected state and does not authorize changes to a reader’s deployment.

Source inspected; source state, environment and release boundary remain explicit.