Skip to content

v0.15.0

Choose a tag to compare

@github-actions github-actions released this 26 Jul 19:27
4347bd9

0.15.0

Minor Changes

  • #981 189efba Thanks @cxbAsDev! - /lossless doctor apply can now repair a specific conversation with doctor apply <conversation-id> confirm-offline. Targeted repair is limited to authorized OpenClaw command senders and requires the explicit offline confirmation after the target's active channel path is isolated. The existing current-conversation behavior is unchanged when no id is provided.

Patch Changes

  • #979 dffba95 Thanks @cxbAsDev! - lcm_describe now accepts full copied reference strings such as [LCM Tool Output: file_xxx | ...] and [LCM File: file_xxx | ...] as id, extracting the embedded file_xxx or sum_xxx ID automatically. Bare IDs continue to work; ambiguous input (multiple IDs), zero/empty IDs, and malformed IDs now return clear errors.

  • #935 2b84753 Thanks @gorkem2020! - Preserve conversation continuity when never-ingested recovery encounters an exact metadata-decorated runtime copy of a bare transcript row.

  • #991 1b12e4b Thanks @gorkem2020! - Fix the ambiguous-rollover identity-scope wedge on rapid same-day /new resets. messageIdentity compares role+content only, unscoped by session generation, so a lane whose first post-reset turn happened to repeat trivial content (e.g. a literal "ping" health check) collided with the prior generation's persisted history and the freshness gate froze the lane instead of rotating it, re-warning on every subsequent bootstrap/afterTurn call. Identity overlap on trivial, low-entropy content no longer blocks rotation when the rollover is independently proven deliberate (a durable /new marker plus its archive sibling); substantial overlapping content still fails closed exactly as before, so a foreign session reusing a stale sessionKey is still rejected. A genuine freeze now warns once per session generation instead of on every turn. The once-only memo is capped (FIFO-evicted past 500 distinct generations) so a long-lived host process doesn't accumulate it indefinitely; a generation whose entry is evicted may warn once more on its next occurrence.

  • #996 c4a69c7 Thanks @Kaspnov! - Add an opt-in hostFallbackMode: "capture-only" setting so generic CLI backends can persist turns and use recall tools without Lossless prompt assembly or host-triggered Lossless compaction. Strict full-lifecycle validation remains the default, backend-native compaction remains host-owned, and subagent projection requirements remain unchanged.

  • #830 bc261ec Thanks @mpz4life! - Prevent duplicate tool-call replay ingestion when OpenClaw stores a host-redacted form of sensitive message content.

  • #808 be366bd Thanks @holgergruenhagen! - Tolerate and cap oversized CLI summary output instead of failing historical backfill.

  • #939 763ad06 Thanks @gorkem2020! - Recognize the specific OpenClaw runtime/transcript whitespace divergence, where core collapses runs of spaces in the runtime message to a single space while the transcript persists them verbatim, as one user turn during afterTurn frontier-coverage. This prevents a store double-write of the same turn without collapsing newlines, tabs, or leading and trailing whitespace, so two turns that differ in meaningful whitespace (line breaks or tab indentation) are never merged. Storage stays byte-verbatim; the persisted row is the survivor.

Release Verification

What's Changed

Features

  • test(lcm): cover grep-to-delegated-expansion handoff by @vincentkoc in #820

Fixes

New Contributors

Full Changelog: v0.14.0...v0.15.0