OpenClaw Main Fixes Steering ACKs and Active-Session Archiving
Steering could acknowledge before the runtime accepted the instruction, while archive could commit around active work. Merged fixes make both controls wait for the owner that must enforce them.
OpenClaw has merged a second steering repair and a related archive fix into main. Together they tighten a basic operator contract: a successful control response should mean the runtime owner has accepted the instruction, and an archived session should not still have work writing into it.
These are not glamorous changes, but they matter anywhere an operator steers a long tool run or archives a session during incident response. They are merged source changes; identify the containing release before relying on the new semantics.
Why an early ACK is dangerous
A steering request changes the next safe boundary of a running agent. If the caller sees success before the active runtime has actually accepted that request, the UI can claim the agent was redirected while the agent continues into another tool boundary under the old instruction.
PR #120914 first moved acknowledgement behind the durable transcript commit. That closed one gap: a steering record could no longer be reported as accepted before its transcript evidence existed.
PR #120964 closes the remaining ownership gap. The upstream summary says steering could still miss the next tool boundary after an ACK. The repair waits for queue acceptance before acknowledging and preserves the session-steer call contract across runtime ownership transitions.
Interpretation: durability and admission are separate proofs. A record can exist in storage while the live owner has not yet adopted it. A trustworthy control path needs both.
What operators should expect now
After the containing upgrade, a successful steer should mean the request reached the queue owner that can apply it. That still does not reverse a tool side effect already committed before the safe boundary.
Treat outcomes distinctly:
- accepted — the live run owns the steer and can apply it at the next supported boundary;
- refused or unavailable — no claim that behaviour changed;
- timed out or connection lost — outcome is ambiguous and must be reconciled from the session transcript and run state; and
- accepted after a side effect — the steer affects subsequent work, not the completed action.
Do not build automation that equates an HTTP or WebSocket response with rollback.
Archive now drains active work first
PR #120892 fixes the other side of session custody. Archiving now fences the exact session, stops and drains active work before committing the archive, while preserving protections for main, global-main and unknown sessions. Batch patching retains per-target ordering.
Previously, an archive action and a running turn could disagree about ownership. The archive might appear complete while the run still held timers, tools or transcript writes. That is a data-integrity and operator-expectation problem even if no external side effect occurs.
The new sequence is the right one: fence admission, stop the owner, drain it, then commit the lifecycle transition.
A combined regression test
Test steering and archive together because they compete for the same live session owner:
- start a harmless run that pauses before a synthetic tool call;
- send a steer that changes the next action;
- wait for the accepted response and prove the next boundary uses the new instruction;
- repeat while reconnecting the Control UI or Gateway client;
- start another run, archive its exact session, and verify the run stops before archive completion;
- confirm no later transcript entries, terminal activity or tool calls appear under the archived session;
- try the same operation against protected main/global-main identities and require refusal; and
- run a small batch archive to confirm one target’s drain does not reorder another target’s lifecycle.
Use a no-op or disposable tool. A payment, message send or deployment is a rotten test fixture for a control-boundary regression.
Monitoring guidance
Capture timestamps for the steer request, durable transcript record, queue acceptance, tool boundary and archive commit. If those events are collapsed into one generic success log, future incidents will remain difficult to reconstruct.
A steer that times out should not be blindly resubmitted with a different identity; that can produce two accepted instructions. Reconcile the original request first. Likewise, an archive timeout should trigger a state check rather than a second independent deletion path.
Bottom line
OpenClaw’s merged fixes move steering and archiving toward honest control semantics: storage is not acceptance, and archive is not complete while the active owner still runs. Upgrade the component that contains both repairs, then prove ACK, drain and transcript ordering with a harmless long-running session before trusting them in consequential automation.
THE RECEIPTS
Claims should survive the click.
Primary links used for this article are listed openly. If the evidence changes, the verification date changes with it.THE OPERATOR BRIEF