-
#444
6596fb4Thanks @andyylin! - Fix context-engine registration so the plugin only registers its canonicallossless-clawid, align runtime Pi package versions with the current OpenClaw stack, and tighten selection helpers to stop treating the olddefaultalias as equivalent to the plugin id. -
#455
370b91bThanks @copilot-swe-agent! - Wrap SQLite migrations in a single exclusive transaction so concurrent startup agents serialize migration work instead of racing on per-statement autocommit writes. -
#465
6f7f942Thanks @liu51115! - Harden defensive handling for non-string database path and timestamp values so malformed runtime data does not trigger.trim()crashes or silently skew stored chronology. -
#405
5949a4bThanks @uf-hy! - Restrict the missed-/resetbootstrap fallback to confirmed missing transcript paths so transientstat()failures do not rotate a live conversation. -
#450
36c80d5Thanks @coryscook! - Use the resolved plugin summary config when runtime config is unavailable so compaction keeps the configured summary model instead of falling back to emergency truncation. -
#418
f8fe367Thanks @gitchrisqueen! - Fix manual and threshold-triggered compaction results so a full sweep that ends under the target budget reportsalready under targetinstead of a misleading no-op failure. -
#468
082b2a9Thanks @jalehman! - Unifylcm-tuisummary provider configuration across doctor, repair, rewrite, and backfill so the standalone commands honor the same provider, model, and base URL overrides as interactive rewrite. -
#467
6580e8fThanks @jalehman! - Fixlcm-tuiOAuth-backed Claude rewrites, repairs, and doctor apply runs so large prompts stream over stdin instead of overflowing the CLI argument limit. -
#456
134bb8aThanks @jalehman! - Improve prompt-cache stability by making compacted-context guidance static and disabling prompt-aware eviction by default.
-
#392
00d1fa2Thanks @GodsBoy! - Avoid repeated full bootstrap rereads when an unchanged session transcript misses the normal checkpoint fast paths. -
#305
2d1446fThanks @stilrmy! - Fix startup-time summary model resolution when OpenClaw populates plugin config before the top-level runtime config surface. -
#388
5bdd596Thanks @bennybuoy! - Fix the built-in API-family fallback forollamaproviders so summarization can use OpenAI-compatible Ollama models without requiring an explicitmodels.providers.ollama.apisetting. -
#433
5c8ef34Thanks @jalehman! - Apply content-recency sorting consistently to CJK summary full-text search so recent summarized content does not lose to older but stronger trigram matches. -
#441
26708b9Thanks @jalehman! - Keep deferred incremental compaction debt pending until oversized raw backlog is actually compacted, and let budget-triggered catch-up scale passes with prompt overage instead of forcing one pass per turn. -
#434
049ce3bThanks @jalehman! - Keep deferred Anthropic leaf compaction moving once the prompt-cache TTL has gone stale, even if cache-aware cold-observation smoothing still treats the session as effectively hot for routing-noise protection.
-
#408
abf31daThanks @100yenadmin! - Added deferred proactive compaction as the default mode, with explicit maintenance debt tracking and status visibility so foreground turns no longer run threshold compaction inline unless compatibility mode is enabled. -
#355
6e9388cThanks @LanicBlue! - Externalize inline base64 images before large tool-result text compaction, and addlargeFilesDir/LCM_LARGE_FILES_DIRso externalized payload storage can be configured explicitly.
-
#403
ea7d532Thanks @jetd1! - Convert bootstrap's file I/O off the Node.js event loop.readFileSegmentandreadLastJsonlEntryBeforeOffsetpreviously used syncopenSync/readSync/statSync, which could block the gateway for minutes while scanning multi-MB JSONL transcripts during the bootstrap append-only path. The bootstrap entrystatSyncandrefreshBootstrapStatehelper are now async as well. The backward-scan loop now only reads new chunks when the current carry has no more newlines, and the fast path short-circuits before the backward scan when the DB's latest hash no longer matches the checkpoint (the common case during active sessions, where the scan can never succeed). -
#395
2c05599Thanks @100yenadmin! - Add/lcm backupand/lcm rotateplugin commands so users can snapshot the SQLite database on demand and split oversized active LCM conversations without changing their live OpenClaw session identity. Rotation now checkpoints the current transcript frontier so the fresh row starts from now forward instead of replaying older transcript history. -
#425
3faa9bdThanks @jalehman! - Report the canonicallossless-clawcontext-engine id from the runtime engine metadata so newer OpenClaw builds accept the plugin's registered engine slot. -
#420
e0fa375Thanks @100yenadmin! - Fix/lcm rotateso it waits for the live database connection to become idle, takes a faithful pre-rotate backup on that connection, and then compacts the current session transcript without replacing the active LCM conversation. Rotation now preserves the existing conversation id, summaries, and context items while refreshing bootstrap state so dropped transcript history is not replayed. -
#415
7668717Thanks @ryanngit! - Handle conversation creation races on active session keys without crashing the caller. -
#413
347add7Thanks @ryanngit! - Increase the SQLite busy timeout to 30 seconds to better tolerate concurrent writer contention without spuriousSQLITE_BUSYfailures.
- #400
1711957Thanks @jalehman! - Strip comments from the pre-bundled dist/index.js so the OpenClaw install-time code safety scanner no longer flags JSDoc prose (e.g. "Fetch all context items") as a network-send pattern and blocks installation with anenv-harvestingfalse positive.
-
#379
7f42703Thanks @jalehman! - Improve thesession_idfallback conversation lookup by adding the matching composite index so SQLite can satisfy the latest-conversation query without a scan and temp sort. -
#366
f4177ecThanks @100yenadmin! - Fix bootstrap recovery when a session rotates to a new transcript file so stale summaries and checkpoints are cleared before re-importing the replacement session history. -
#376
06a05e5Thanks @100yenadmin! - Add startup diagnostics that attribute resolved ignore/stateless pattern sources, and warn when env-backed pattern arrays override plugin config arrays. -
#353
6fa2829Thanks @copilot-swe-agent! - Pre-bundle the plugin todist/index.jsusing esbuild before publishing. This eliminates the per-invocation TypeScript compilation overhead caused by OpenClaw's JITI loader recursively transpiling every.tssource file, reducing CLI startup latency from 15–25 s to near-instant. -
#354
b0ad788Thanks @copilot-swe-agent! - HonorOPENCLAW_STATE_DIRfor the default database, large-file storage, auth-profile, and legacy secret paths so multi-profile OpenClaw gateways do not read and write each other's state. -
#380
33ecb88Thanks @jalehman! - Stop rerunning startup summary and tool-call backfills after they complete successfully, while still retrying the same backfill version cleanly if startup fails before the completion marker is written. -
#371
597ec70Thanks @holgergruenhagen! - Avoid treating omitted LCM summarizer reasoning settings like reasoning-disabled requests for reasoning-capable models by applying a low default only when the resolved model supports reasoning. -
#377
3b2d34cThanks @100yenadmin! - Add an opt-intranscriptGcEnabledconfig flag, defaulting it tofalse, and skip transcript-GC rewrites duringmaintain()unless the flag is enabled. Also add startup diagnostics and documentation for the new setting. -
#387
5113044Thanks @oguzbilgic! - Refresh the bootstrap checkpoint after normalafterTurn()ingestion so persistent sessions can keep using the append-only bootstrap fast path after real conversation turns.
-
#337
0c139a2Thanks @100yenadmin! - Add/lossless doctor clean applyfor backup-first cleanup of approved high-confidence junk conversations, while preserving archived-only handling for NULL-key subagent rows and surfacing integrity-check warnings after apply. -
#323
e781980Thanks @jalehman! - Allowlcm_expand_query(allConversations: true)to synthesize bounded answers across multiple conversations, including per-conversation diagnostics for partial or truncated results.
-
#332
98cb02aThanks @jalehman! - Clarifylcm_grepandlcm_expand_queryguidance so agents use shorter FTS5 queries, keep natural-language instructions inprompt, and avoid over-constraining recall with extra keywords. -
#344
897a953Thanks @jetd1! - Keep compaction summary caps and deterministic fallback truncation within budget for CJK-heavy and emoji-heavy content. -
#331
d7a57c5Thanks @jalehman! - Recover from malformed legacysummaries_ftstables during migration instead of crashing plugin startup. -
#334
71d6d9cThanks @100yenadmin! - Harden malformed FTS migration recovery so stale trigram tables are cleaned up before other FTS schema probes and startup migrations no longer skip recovery by reusing a cached FTS5 capability check. -
#172
8bf5e7fThanks @craigamcw! - Skip ingesting empty assistant messages from errored or aborted provider responses so they do not accumulate in assembled context and trigger retry loops. -
#330
acf1e02Thanks @little-jax! - Restore direct-credential summarizer retries for custom provider aliases and avoid misreporting transient provider failures asprovider_configerrors. -
#351
ea1f80dThanks @kitcommerce! - Ensure forced overflow recovery still runs compaction when live observed token counts are unavailable. -
#328
3de1f9eThanks @jalehman! - Fall back toplugins.entries["lossless-claw"].configwhen older or otherwise incompatible OpenClaw runtimes do not provide a usableapi.pluginConfig.
-
#318
b7078dfThanks @jalehman! - Add optional dynamic leaf chunk sizing for incremental compaction, including bounded activity-based chunk growth, cold-cache max bumping, and automatic retry with smaller chunk targets when a provider rejects an oversized compaction request. -
#296
4906c62Thanks @100yenadmin! - Improvelcm_grepfull-text recall with phrase-preserving queries andsortmodes (recency,relevance, andhybrid) that rank results beforelimitis applied. -
#285
aac2668Thanks @mvanhorn! - Add conversation prune function for bulk data retention, allowing deletion of conversations where all messages are older than a configurable threshold.
-
#295
1ef1b29Thanks @100yenadmin! - Reduce compaction database work by caching per-phase context reads, skipping redundant ordinal resequencing, and tracking token-count deltas instead of re-querying after each pass. -
#318
b7078dfThanks @jalehman! - Make incremental leaf compaction cache-aware by deferring extra passes while prompt caching is hot, allowing bounded catch-up when the cache goes cold, and addingcacheAwareCompactionconfig controls for the behavior. -
#319
3bc5bdeThanks @jalehman! - Document the full lossless-claw configuration surface and align the plugin manifest schema and UI hints with the runtime-supported config keys. -
#288
d74ad07Thanks @100yenadmin! - Wait for deferred LCM database initialization after lock-contended gateway restarts, and surface the real retry failure when deferred startup cannot recover. -
#294
43342d9Thanks @100yenadmin! - Tune SQLite defaults for large lossless-claw databases by increasing the page cache, keeping temporary structures in memory, and using WAL-friendly synchronous settings.Add missing indexes for
summary_messages(message_id)andsummaries(conversation_id, depth, kind)so summary cleanup and depth-filtered queries avoid full table scans on existing databases. -
#302
558183dThanks @100yenadmin! - Fix compaction summarizer exhaustion handling so multi-provider non-auth failures log the terminal exhaustion path and fall back to deterministic truncation instead of returning an empty summary. -
#322
d0dacc9Thanks @jalehman! - Use OpenClaw runtime-ready model auth for summarization requests so managed auth providers work correctly. -
#329
6579b91Thanks @jalehman! - Improve lossless-claw reliability around cache-aware compaction and transcript replay, including heartbeat-turn pruning, bootstrap compatibility for legacy JSONL message envelopes, and updated runtime logging/docs alignment. -
#300
a42f422Thanks @jalehman! - Fixlcm-tuiTelegram topic session lookups so topic-backed sessions show the correct conversation metadata, summary counts, and file counts when browsing session keys.
-
#244
cb51dd2Thanks @jalehman! - Use OpenClaw's enrichedsession_endhook to preserve clean LCM conversation boundaries across automatic session rollover, compaction session replacement, and session deletion. -
4ddf05cThanks @mvanhorn! - Route all LCM startup diagnostics to stderr so--jsonCLI output stays machine-readable, while keeping debug-only migration details behind the host logger's debug gating. -
#280
9a2c3e1Thanks @liu51115! - Fix bootstrap checkpoint refresh after transcript maintenance so unchanged restarts stay on the fast path, and avoid advancing the checkpoint when replay-safety import caps abort reconciliation.
-
#270
8618ea7Thanks @jalehman! - Fix forced timeout-recovery compaction so live budget overflows use the cappedcompactUntilUnder()path instead of no-oping through a stored-context full sweep. -
#273
40c90b1Thanks @100yenadmin! - Fix LCM summarization for runtime-managed OAuth providers likeopenai-codexby preserving first-pass credential resolution and skipping the incompatible direct-credential retry path. Also add configurable summarizer timeouts viasummaryTimeoutMsandLCM_SUMMARY_TIMEOUT_MS. -
#261
65c76f1Thanks @100yenadmin! - Fix shared-SQLite transaction coordination during bootstrap and compaction so concurrent sessions do not collide on one database connection, and nested transaction scopes on the same async path stay safe.
d1a9eb3Thanks @jalehman! - Fix conversation integrity regressions by pruning heartbeat-shaped ACK turns before compaction, avoiding synthetic compaction telemetry in canonical transcript history, and deduplicating replayed history using stable session key continuity during afterTurn processing.
-
#195
8efd2e9Thanks @jalehman! - Add explicit/newand/resetlifecycle handling for OpenClaw sessions./newnow prunes fresh context from the active conversation while preserving retained summaries by configured depth, and/resetnow archives the current conversation before starting a fresh active conversation for the same stable session key. -
#243
f074000Thanks @jalehman! - Add the bundledlossless-clawskill and the MVP/lcmcommand surface with summary-health diagnostics. -
#148
ef445daThanks @jalehman! - Add runtime-assisted transcript GC for summarized externalized tool results so active session transcripts can shrink after oversized tool output has been condensed and preserved inlarge_files.
-
#255
a1bda9bThanks @jalehman! - Limit first-time fork bootstrap imports so new conversations only inherit the newest slice of raw parent history instead of loading the entire parent transcript into lossless memory. -
#258
cd18739Thanks @100yenadmin! - Add regression coverage for bootstrap budget edge cases and invalid numeric env fallback behavior. -
#230
ca51445Thanks @liu51115! - Fix compaction auth circuit breaker handling so auth failures during multi-pass sweeps still trip the breaker, while failures for one resolved summarizer no longer block unrelated providers or sessions. -
#229
1fb8b8fThanks @tingyiy! - Preserve explicit timezone offsets when parsing stored timestamps while still treating bare SQLitedatetime('now')values as UTC. -
#219
69e5f6aThanks @catgodtwno4! - Fix CJK summary search so mixed-language queries still require all terms, and single-character CJK queries continue to return matches. -
#222
d8261d7Thanks @copilot-swe-agent! - Block overlappinglcm_expand_querydelegations from the same origin session so concurrent expansion requests fail fast instead of deadlocking on the shared sub-agent lane. -
#257
ea43f58Thanks @100yenadmin! - Fix the hardenedafterTurn()replay dedup path so it ingests the intended post-turn batch, and add coverage for restart replay when an auto-compaction summary is present. -
#180
ea84f45Thanks @GodsBoy! - Fix prompt-aware context eviction so blank or otherwise unsearchable prompts fall back to the existing chronological behavior instead of entering the relevance-scoring path. -
#178
0613b7fThanks @catgodtwno4! - Fix summarizer auth-error detection so real provider auth envelopes nested underdataorbodystill trigger handling, while successful summary payloads inmessageorresponseno longer cause false-positive auth failures. -
#242
3fe823fThanks @jalehman! - Move static lossless recall policy guidance into the plugin prompt hook while keepingsystemPromptAdditionlimited to session-specific compaction reminders.This makes the stable recall-order guidance cacheable, clarifies that lossless-claw takes precedence over generic memory recall only for compacted conversation history, and leaves deep-compaction expand-before-asserting guidance in the dynamic assembled prompt.
-
#252
e843638Thanks @jalehman! - Sync the published plugin manifest schema with the runtime-supported plugin config surface so documented config keys are accepted by OpenClaw. This also removes the undocumentedautocompactDisabledsetting from the advertised config surface because it was parsed but not wired to runtime behavior.
-
#228
2f5735dThanks @jalehman! - Make compaction summarization fall back to the next resolved model when the preferred model times out or returns repeated empty provider errors, and make the startup banner reflect the same compaction model precedence used at runtime. -
#221
9fa4f3dThanks @jalehman! - Raise the default protected fresh tail to 64 messages and make incremental compaction run one condensed pass by default. -
#224
1fd2a44Thanks @copilot-swe-agent! - Add a configurable delegated expansion timeout forlcm_expand_queryvia plugin config (delegationTimeoutMs) andLCM_DELEGATION_TIMEOUT_MS. -
#223
028f171Thanks @copilot-swe-agent! - ExposeleafChunkTokensas a first-class plugin config option so deployments can tune leaf compaction frequency without patching the plugin manifest. -
#220
8f84d8eThanks @jalehman! - Improve LongMemEval compaction and retrieval reliability by filtering reasoning text from summaries, retrying truncated summaries, hardening delegated expansion, and falling back to raw-message search in shallow trees. -
#205
ef4865fThanks @aquaright1! - Preserve assistant text and matched tool calls when pruning stale orphaned tool calls from assembled context. -
#211
7975a1eThanks @GodsBoy! - Fix compaction cap handling so capped summaries stay within the configured token limit and direct compaction APIs respectmaxAssemblyTokenBudget.
-
#185
ec74779Thanks @jalehman! - Fixlcm-tui doctorto detect third truncation marker format ([LCM fallback summary; truncated for context management]) and harden Claude CLI summarization with--system-promptflag and neutral working directory to prevent workspace contamination. -
#186
c796f7dThanks @jalehman! - Harden LCM summarization so provider auth failures no longer persist fallback summaries, and stop forcing explicit temperature overrides on summarizer requests. -
#182
954a2fdThanks @jalehman! - Improvelcm-tuisession browsing by showing stable session keys in the session list and conversation header, and align the session list columns so message counts and LCM metadata are easier to scan. -
#128
0f1a5d8Thanks @TSHOGX! - Honor custom API base URL overrides forlcm-tui rewrite,lcm-tui backfill, and interactive rewrite so TUI summarization can use configured provider proxies and non-default endpoints.
-
#159
20b6c1bThanks @tmchow! - Fix legacy tool-call backfill for rows that stored ids undermetadata.raw.call_id. -
#163
31307a6Thanks @jalehman! - Prevent the summarizer from reusing the active session auth profile when an explicit LCM summary provider and model are configured.
-
#157
f3f0aa2Thanks @jalehman! - Addlcm-tui doctorcommand for auto-detecting and repairing truncation-fallback summaries. Features position-aware marker detection (rejects false positives from summaries that quote markers in narrative text), bottom-up repair ordering, OAuth/token CLI delegation, and transaction-safe dry-run mode. -
#138
9047e49Thanks @jalehman! - Add incremental bootstrap checkpoints and large tool-output externalization.This release speeds up restart/bootstrap by checkpointing session transcript state, skipping unchanged transcript replays, and using append-only tail imports when a session file only grew. It also externalizes oversized tool outputs into
large_fileswith compact placeholders so long-running OpenClaw sessions keep their full recall surface without carrying giant inline tool payloads in the active transcript.
-
#156
968b1d6Thanks @jalehman! - Fix compaction auth failures: surface provider auth errors instead of silently aborting, fall back to deterministic truncation when summarizer returns empty content, fall through to legacy auth-profiles.json when modelAuth returns scope-limited credentials. TUI now sets WAL mode and busy_timeout to prevent SQLITE_BUSY during concurrent usage. -
#129
133665cThanks @semiok! - Use LIKE search for full-text queries containing CJK characters. SQLite FTS5'sunicode61tokenizer can return empty or incomplete results for Chinese/Japanese/Korean text, so CJK queries now bypass FTS and use the existing LIKE-based fallback for correct matches. -
#132
4522a72Thanks @hhe48203-ctrl! - Persist the resolved compaction summarization model on summary records instead of always showingunknown.Existing
summariesrows keep theunknownfallback through an additive migration, while newly created summaries now record the actual model configured for compaction. -
#126
437c240Thanks @cryptomaltese! - Annotate attachment-only messages during compaction without dropping short captions.This release improves media-aware compaction summaries by replacing raw
MEDIA:/...placeholders for attachment-only messages while still preserving real caption text, including short captions such asLook at this!, when a message also includes a media attachment. -
#146
c37777fThanks @qualiobra! - Fix a session-queue cleanup race that could leak per-session queue entries during overlapping ingest or compaction operations. -
#131
bab46ccThanks @semiok! - Add 60-second timeout protection to summarizer LLM calls. Previously, a slow or unresponsive model provider could block thedeps.complete()call indefinitely, starving the Node.js event loop and causing downstream failures such as Telegram polling disconnects. Both the initial and retry summarization calls are now wrapped with a timeout that rejects cleanly and falls through to the existing deterministic fallback.
- 45f714c: Add
expansionModelandexpansionProvideroverrides for delegatedlcm_expand_querysubagent runs. - 1e6812a: Add session scoping controls for ignored and stateless OpenClaw sessions, including cron and subagent pattern support, and make runtime summary model environment overrides win reliably over plugin config during compaction.
- 518a1b2: Restore automatic post-turn compaction when OpenClaw omits the top-level
tokenBudget, by resolving fallback budget inputs consistently before using the default compaction budget. - 6c54c7b: Declare explicit OpenClaw tool names for the LCM factory-registered tools so
plugin metadata and tool listings stay populated in hosts that require
registerTool(..., { name })hints for factory registrations. - 9ee103a: Fix condensed summary expansion so replay walks the source summaries that were compacted into a node, and skip proactive compaction when turn ingest fails to avoid compacting a stale frontier.
- ae260f7: Fix the TUI Anthropic OAuth fallback so Claude CLI summaries respect the selected model and stay within the expected summary size budget.
- 8f77fe7: Run LCM migrations during engine startup and only advertise
ownsCompactionwhen the database schema is operational, while preserving runtime compaction settings and accurate token accounting for structured tool results. - 7fae41c: Fix assembler round-tripping for tool results so structured
tool_resultcontent is preserved and normalized tool metadata no longer inflates context token budgeting. - ceee14e: Restore stable conversation continuity across OpenClaw session UUID recycling
by resolving sessions through
sessionKeyfor both writes and read-only lookups, and keep compaction/ingest serialization aligned with that stable identity. - bbd2ecb: Emit LCM startup and configuration banner logs only once per process so repeated OpenClaw plugin registration during snapshot loads does not duplicate the same startup lines.
- 82becaf: Remove hardcoded non-LCM recall tool names from the dynamic summary prompt so agents rely on whatever memory tooling is actually available in the host session.
- 6b85751: Restore compatibility for existing OpenClaw sessions that still reference the
legacy
defaultcontext engine, and improve container deployments by adding a supported Docker image and startup flow for LCM-backed OpenClaw environments. - 828d106: Improve LCM summarization model resolution so configured
summaryModeloverrides, OpenClawagents.defaults.compaction.model, and newerruntimeContextinputs are honored more reliably while preserving compatibility with olderlegacyCompactionParamsintegrations.
-
f1dfa5c: Catch up the release notes for work merged after
0.2.8.This release adds Anthropic OAuth setup-token support in the TUI, resolves SecretRef-backed auth-profile credentials and provider-level custom provider configuration during summarization, and formats LCM tool timestamps in the local timezone instead of UTC.