Repository navigation
1.2.0
Minor Changes
-
#1238
99dfe43Thanks @jalehman! - Ingest the OpenClaw transcript through a persisted per-conversation visible-delta cursor instead of re-reading and reconciling the whole transcript on everybootstrapandafterTurn. Steady-state turns now read only new transcript entries (about 2–5 ms with no main-thread SQLite work, down from 0.3–28.5 s on large sessions).commitTurn,afterTurn,ingestandingestBatchno longer persist runtime message arrays for transcript-backed sessions, so every new row carries its transcript entry id.commitTurnrecords its idempotency receipt in the same transaction as the drained rows.- When OpenClaw invalidates a cursor, lossless-claw resyncs in bulk and restamps re-issued entries onto their existing rows instead of importing duplicates.
- Existing conversations migrate to cursor mode once, on first use, with the same bulk resync. Migration never deletes rows or clears transcript entry ids, and never imports history before the last stored entry that is still visible.
- A conversation created by
/resetno longer imports pre-reset history (#1199). - A host without OpenClaw's visible-delta reader now gets a logged capability error instead of the full-transcript reconcile. Every supported OpenClaw release ships the reader. The legacy reconcile code is now unreachable and will be removed in a follow-up release.
-
#1242
924571aThanks @jalehman! - Record transcript history gaps. When a conversation enters cursor mode or resyncs, each run of storable transcript entries that Lossless Claw never stored and that sits before the anchor is saved as a marker in the newconversation_transcript_gapstable, and one warning reports the counts./lcm status,/lcm doctor,lcm status, andlcm conversations showreport the gaps. Markers are diagnostics only; nothing is imported or deleted.Log quality: each incremental transcript drain logs one debug line with imported/restamped counts and duration;
assemblelogs when it reads the full visible transcript to fill missing replay keys; a session with no host transcript logs "transcript missing" once per conversation per process instead of on every turn.
Patch Changes
-
#1239
6d2fedcThanks @jalehman! - Restore raw user replay identity duringassemblefrom replay keys recorded at transcript ingestion, instead of reading the whole visible transcript on every turn where live user messages carry anidempotencyKey. Rows stored before replay keys were recorded are filled from one full visible read, then served from storage. -
#1249
0358968Thanks @razethion! - Use the existing opaque-binary token allowance when estimating structured tool results, including nested image data. This prevents base64 image bytes from overriding the full-message estimate and producing inflated context pressure. Preserve text estimates, including literal data URLs in text blocks, per-image accounting, and the tool-result safety margin. -
#1250
6f3f154Thanks @siraustin! - lcm_grep and lcm_expand now mirror their rendered text intodetails.text, and lcm_grep adds typedmessages/summaries/fileshit arrays (ids, timestamps, 200-char snippets) todetails. OpenClaw code mode and tool search hand the model a tool'sdetailsvalue, not itscontent, so until now a code-mode caller received only the match counts and could not see which messages matched. -
#1253
812eb22Thanks @jalehman! - Deferred maintenance and post-turn compaction evaluation now use the host's currentruntimeSettings.limits.promptTokenBudgetwhen one is supplied, instead of the 128,000-token fallback or a budget recorded for an earlier model. When a direct budget is also present, the smaller value wins.maxAssemblyTokenBudgetstill acts as a ceiling, and hosts that supply no budget keep the conservative behavior. -
#1254
15fc9d6Thanks @jalehman! - Allow forced overflow recovery when OpenClaw includes display-only nested-tool transcript rows. Count only persistable roles when verifying complete current-turn coverage after delta ingestion. Preserve the initiating user, stored history, and recovery refusal checks; emit count-only diagnostics without transcript content. -
#1211
e05d8d3Thanks @TheAngryPit! - Exclude archived conversations' historical pending maintenance debt and failure summaries from the actionable totals reported bylcm status. -
#1243
13a9b6aThanks @jalehman! - Remove the legacy full-transcript reconcile path, which no supported OpenClaw release reaches since transcript ingestion moved to the visible-delta cursor. Existing anchor-trust and transcript-epoch rows are left in place. -
#1259
c063fe1Thanks @jalehman! - Treat OpenClaw model-runtime reload admission rejections as host runtime lifecycle interruptions. Summarization now keeps pending summaries and compaction debt for a later drain instead of logging provider failures and persisting deterministic fallback summaries. Hosts that report theLLM_RUNTIME_LIFECYCLEcompletion error code are recognized by that code; older hosts keep the existing message andadmissionBlockeddetection. -
#1245
6a5915fThanks @jalehman! - Report summarization interrupted by host runtime retirement ("Plugin inventory has retired", "Async work scope is closed") as a single warning instead of two error lines; pending summaries and compaction debt stay queued for the next drain. -
#1253
812eb22Thanks @jalehman! -lcm-tuirepair, rewrite, and backfill now default toclaude-sonnet-4-6when no summary model is configured. The previous default,claude-sonnet-4-20250514, was retired by Anthropic and returned 404 errors.
Release Verification
- Source: 4bd12aa198c4903f6400a42fa00fa0efc6697063
- Package: @martian-engineering/lossless-claw@1.2.0
- Workflow: 39493189821
- Rollback: install @martian-engineering/lossless-claw@1.1.1.
New Contributors
- @TheAngryPit made their first contribution in #1211
- @razethion made their first contribution in #1249
- @siraustin made their first contribution in #1250
- @pcbeingused333 made their first contribution in #1251
- @lordratner made their first contribution in #1247
Full Changelog: v1.1.1...v1.2.0