1.0.0
Major Changes
- #952
d98a7ddThanks @jalehman! - Remove Lossless-owned transcript GC and session-file rotation surfaces for the SQLite-backed OpenClaw runtime. Active transcript storage is now owned by OpenClaw; Lossless no longer exposes/lossless rotate, transcript GC config, or automatic session-file rotation config. Existing plugin configs must removetranscriptGcEnabledandautoRotateSessionFilesbefore upgrading because OpenClaw's manifest validation rejects removed config keys.
Patch Changes
-
#1114
4bcfc06Thanks @jalehman! - Move Lossless Claw 1.0 install, update, migration, and status repair commands to npm's stablelatestchannel. Installations that still followbetareceive repair guidance for the stable track. -
#1116
0fef96bThanks @jalehman! - Precompute live-coverage signatures before exact prompt-time reconciliation. -
#1102
c686ad1Thanks @jalehman! - Publish the built npm tarball through ClawHub so marketplace installs include the declareddist/index.jsextension entrypoint. -
#1142
bf3d69eThanks @jalehman! - Add read-only inactive compaction-debt diagnostics and a backup-first, explicitly confirmed administrative close command that preserves recall data. -
#1122
abbea93Thanks @jalehman! - Expose the four Lossless recall tools through OpenClaw's coding, messaging, and full tool profiles, and mark their read-only executions as replay-safe. -
#1126
479beb6Thanks @t3t5ujin! - Deduplicate host-accepted turn messages against the covered transcript frontier before recording a durable advancement, preventing native runtimes from storing a second copy when transcript projection ingestion wins the race while preserving unflushed suffixes and ambiguous data. -
#1142
e9f8fe4Thanks @jalehman! - Preserve each message's role in leaf-summary source text rebuilt bydoctor apply,
so repaired summaries can distinguish operator input from assistant and tool content. -
#1070
267f006Thanks @hannesrudolph! - Persist accepted OpenClaw turns with an atomic idempotency ledger so host retries cannot duplicate or partially advance LosslessClaw context. -
#1134
aa85938Thanks @jalehman! - Leave configured threshold headroom when OpenClaw forces overflow recovery, preventing a raw context-window budget from causing no-op compaction. -
#1108
b3e144bThanks @jalehman! - Inherit OpenClaw's effective default model during context-free durablecommitTurnsummary preparation when no Lossless summary override is configured. Automatic pending-summary work now retains raw context instead of persisting emergency truncations when no model-backed summarizer can be resolved. -
#952
d98a7ddThanks @jalehman! - Keep CLI conversation diagnostics readable for databases that retain a legacy transcript bootstrap table without newer reconciliation and fork columns. -
#1052
fa578d0Thanks @octo-patch! - Add MiniMax API-key support to standalone TUI summarization with global and China endpoints andMiniMax-M3model inference. -
#952
d98a7ddThanks @jalehman! - Publish pending summaries for the longest prepared projection prefix, bridge undersized raw islands when later eligible work would otherwise become unreachable, leave undersized trailing suffixes live, refresh deferred pressure after publication, report the active post-publication token count to the host, and avoid double-counting raw backlog as threshold pressure when it is already present in the active projection. -
#1030
f25e54bThanks @cxbAsDev! - Remove duplicatelargeFilesDirdeclarations fromopenclaw.plugin.json. The surviving entries describe the default as relative toOPENCLAW_STATE_DIR, consistent with the runtime resolver and configuration reference. A regression test now guards against duplicate keys and stale default descriptions. -
#1057
8f65b00Thanks @gorkem2020! - Preserve completed trailing assistant replies in degraded context assembly when
OpenClaw supplies the current user prompt separately, while continuing to strip
blank assistant prefill tails. -
#1106
fe891a4Thanks @astra-openclaw! - Preserve stablethread_bootstrapprojection metadata when a managed conversation uses bounded or degraded live fallback, preventing persistent Codex threads from appending the reconstructed transcript again on every turn while compaction maintenance is pending. -
Preserve allowlisted OpenClaw group sender identity through SQLite storage, replay, transcript migration, and leaf-summary source text.
-
#1091
4aa98c6Thanks @jalehman! - Preserve newafterTurnmessages when an unaligned runtime batch only partially overlaps persisted history. Ambiguous mixed batches now ingest in full instead of repeatedly discarding genuine turns beside recurring control rows. -
#1091
4aa98c6Thanks @jalehman! - Preserve distinct tool results when a model reuses tool-call IDs across turns. Only provider-minted IDs now participate in conversation-global event deduplication, and unexpected stable-key collisions retain the row without the conflicting key. -
#1053
9f5f5f5Thanks @jetd1! - Preserve reasoning replay integrity for DB-assembled assistant messages.Ingestion now records the assistant message's model identity
(provider/api/model/responseModel) in ordinal-0 part metadata, and
assembly re-attaches it so the host's model-bound thinking replay policy can
recognize same-model history instead of downgrading replayed thinking blocks
to plain text.Assembly applies a three-way
thinkingSignaturegate:-
Sentinel
"reasoning_content"— the host's cross-provider reasoning-
native replay marker, not a provider-issued signature. Preserved only when
the assembled message carries stored model identity; dropped from legacy
rows without identity so the host'stransformMessagesdoesn't downgrade
it to response-channel text (the contamination this patch fixes). -
Provider-issued signatures — kept only when a stored model identity
survives to the assembled message (the host'stransformMessagesthen
applies its own same-model replay policy). The identity gate is decided at
message level (identity lives on ordinal-0 metadata, but signature-bearing
blocks may sit at any ordinal). -
Legacy rows without identity — keep the historical strip (#365) for
provider-issued signatures; sentinel blocks are dropped entirely.
Comparison paths that treat part metadata as message identity
(createLosslessMessageSignature,externalizedReplayMetadataMatches) now
strip model-identity keys before comparing, so rows persisted before the
upgrade still match their post-upgrade live/assembled representations for
replay-prefix detection and live-coverage fork-anchor matching. -
-
#1130
bcaad7aThanks @jalehman! - Ignore top-level private OpenClaw metadata when estimating model-boundary tokens. -
#1111
5185250Thanks @astra-openclaw! - Publish deterministic, raw-linked coverage for pending summary sources that sanitize empty, without retrying or calling the summary model, so later meaningful compaction work can continue and publish without an ordinal gap. -
#1136
bad9c34Thanks @jalehman! - Remove the unsupportedcontracts.sessionActionsmanifest field while preserving the runtimelcm-controlsession action. -
#1089
13c70ecThanks @PollyBot13! - Reopen the SQLite-backed context engine when OpenClaw starts a new gateway lifecycle from a cached plugin registry, preventing fallback to the legacy engine after in-process restarts and resolving the current host default model after config changes. -
#1061
ccad297Thanks @jjjhenriksen! - Use OpenClaw's supportedsubagent.getSessionMessages()runtime method when collecting delegated expansion replies, restoringlcm_expand_querycompatibility with current OpenClaw beta releases. -
#952
d98a7ddThanks @jalehman! - Give a complete pending-summary frontier a publication-only session-queue opportunity when context crosses the compaction threshold. Publication waits for foreground work already in progress, runs before later queued foreground work, and does not call the summary model. Incomplete frontiers remain deferred for background preparation. -
#1091
4aa98c6Thanks @jalehman! - Separate host-owned prompt framing from Lossless-owned context during threshold compaction. Typed OpenClaw runtime ownership metadata now survives host-parameter projection and follows foreground, maintenance, and deferred compaction paths so uncompactable system, tool, or native-thread history cannot make convergence impossible. -
#952
d98a7ddThanks @jalehman! - Clamp assembled messages at 90% of the serialized output budget so OpenClaw's final renderer retains headroom for prompt and message-boundary overhead. -
#1089
13c70ecThanks @PollyBot13! - Skip restart and shutdownsession_endhooks before acquiring the context engine, preventing closed-database errors aftergateway_stop. -
#952
d98a7ddThanks @jalehman! - Require OpenClaw 2026.7.2-beta.2 or newer for the branch-safe visible transcript projection used during SQLite session bootstrap, and preserve continuity when that projection uniquely matches a metadata-decorated runtime row. -
#1044
8ac4720Thanks @bowenluo718! - Fix duplicate ingestion of the same message when the transcript is
redacted bylogging.redactPatternsand the liveafterTurnbatch is
not. Stable assistant response and unambiguous tool-call identities are
persisted in a newmessages.stable_event_keycolumn, checked before
ingest side effects, and protected by a partial unique index. Messages
without an unambiguous stable identity retain the existing
content-based and redaction-aware deduplication behavior. -
#952
d98a7ddThanks @jalehman! - Tighten the structural same-turn supersede so it only collapses a runtime or live copy onto a bare persisted row when the bare body is carried under a channel timestamp, rather than whenever the content merely contains the substring "(untrusted metadata)" or ends with a line equal to the bare body. Structured metadata blocks remain untrusted user-facing text until OpenClaw provides a trusted marker, so metadata-only copies are preserved rather than risk silently superseding an earlier user turn. The guard now covers both the store after-turn path and the assembly supersede path. -
#1042
4a19e16Thanks @gorkem2020! - Require transcript provenance before untimestamped metadata-body matches can support covered-frontier replay alignment, while keeping unannounced recaps and heuristic matches fail-closed. -
#952
d98a7ddThanks @jalehman! - Document the OpenClaw host trust grant required to keep the Losslessbefore_prompt_buildrecall-policy hook active. -
#1077
d7d58ceThanks @jalehman! - Accept the turn-local durablecommitTurnpayload defined by OpenClaw PR 122149, and preserve idempotent retries for beta.1 receipts after the host removesprePromptMessageCount. -
#952
d98a7ddThanks @jalehman! - Verify SQLite transcript anchors before using them for reconciliation, repair safe non-empty legacy anchors, ignore false stale anchors, and add/lossless doctor anchorsaudit counts.
Release Verification
- Source: 988dee85592b9066ffe1c859542e8e18c23f2345
- Package: @martian-engineering/lossless-claw@1.0.0
- Workflow: 33362127985
- Rollback: install @martian-engineering/lossless-claw@0.15.6.
New Contributors
- @jjjhenriksen made their first contribution in #1061
- @octo-patch made their first contribution in #1052
- @Patrick-Erichsen made their first contribution in #1060
- @PollyBot13 made their first contribution in #1083
- @syltharion made their first contribution in #1034
- @meatwife made their first contribution in #1086
- @t3t5ujin made their first contribution in #1126
- @astra-openclaw made their first contribution in #1106
Full Changelog: v0.15.1...v1.0.0