Repository navigation
Conversation
|
Hi @jalehman — could you give this recovery repair an initial maintainer review? The current head passes upstream test, plugin-inspector and smoke-latest-openclaw checks. The PR records a 2,138-test local suite and recovery of the original previously failing session (44,770 → 11,450 active tokens), without deleting history or relaxing coverage. Patch changesets are included. The most useful review focus is the strict delivered-media matching and current-turn provenance/legacy-fencing boundaries. Please let me know if another regression case or a narrower split would help. |
|
@jalehman The conflict is resolved at ac476e9 through a normal merge of current main. I narrowed the repair to the surviving delta-ingestion owners after #1238 and #1243: the deleted projection reconciler and weak-adoption path stay removed. Delivered-response matches must belong to the offered in-order suffix, with exact host delivery/provider/structured-content proof, and nested display rows no longer count as required persisted coverage. Type checks, all package builds, 54 focused tests, and independent scoped review pass. The updated body also records the full-suite result honestly: 2,086 pass, two existing five-second test timeouts remain under local verification, and the paging timeout also recurs in isolation. Fresh upstream CI now passes on this candidate: https://github.com/Martian-Engineering/lossless-claw/actions/runs/38193388233 (all 2,088 tests, plugin-inspector and smoke-latest-openclaw pass). No unresolved review threads were found. The local timeout observations remain recorded; no timeout/assertion/CI change is included. The most useful review focus is now the delta resync handoff and canonical-content preservation, plus the existing current-turn coverage boundary. I removed the broad #1228 closing claim because its old bare-batch implementation was superseded by main's new ingestion contract; #1224 and #1232 remain the repair's closing scope. No installed plugin or live session was changed. |
Forced overflow recovery compared stored transcript entry ids against every visible entry in the current turn, including OpenClaw's display-only nested-tool `custom` rows, which are never persisted. Coverage could never match on Tool Search turns, so recovery always refused. Count only persistable roles, and log count-only diagnostics when coverage is refused. Fixes #1224. Split from #1233. Co-authored-by: Joe LaPenna <jlapenna@gmail.com>
|
Thanks for this, @jlapenna. I split the nested-tool coverage fix out into #1254 (with you credited as co-author) and landed it, which closes #1224. For the delivered-media half (#1232), there's one change needed before it can land.
About the two local timeouts: I checked them against the merge base. Run alone, both tests take the same time on base and PR (about 1.0–1.2s). When three full suites run at once, unchanged base times out on the same paging test, and |
Problem and resulting behavior
Forced-budget recovery counts OpenClaw's display-only nested-tool rows as missing persisted coverage, and a delivered assistant reply whose terminal MEDIA directives were consumed cannot match its original stored response. Recovery then refuses a fully represented tool turn.
This revision integrates main's delta-cursor ingestion (#1238) and legacy-reconciliation removal (#1243). It counts persistable roles at the existing current-turn coverage gate and lets the delta resync owner restamp a delivered assistant response only when host delivery facts, provider response identity, consumed URL order, and remaining structured content all match. The candidate must belong to the offered suffix and follow prior claims. Original stored bytes and parts remain intact.
The removed projection reconciler, weak-identity adoption planner, and legacy fresh-tail expansion are not restored. The new host-owned ingestion contract handles ordinary committed turns; #1228 remains linked for its historical bare-batch report rather than being claimed as fully closed by this narrowed delta. Existing refusal, initiating-user, unresolved-tool, and raw-history checks remain. Patch changesets and configuration documentation are included; no new host capability is required.
Closes #1224. Closes #1232. Related #1228 and openclaw/openclaw#165459.
Verification
Current head:
ac476e92dcabf8eacda6e4afc81d1bda0c5ea376, a normal merge retaining1842246and current-main snapshot13a9b6a; no history replacement.Earlier runtime evidence and limits
The prior candidate recovered the original failing native session from 44,770 to 11,450 active tokens with two durable leaf summaries, retaining its session and history. That observation belongs to the earlier implementation and is not presented as a new live deployment or current-head runtime proof. This revision changes neither the installed plugin nor the live Gateway, model, sessions, credentials, or printer state.
Upstream maintainer review and merge are required; this contributor has READ access and cannot arm auto-merge. The current scope is the surviving recovery repair under the new ingestion architecture.