OpenClaw’s Dashboard Compact Button Can Turn Claude’s 1M Context Into Silent Amnesia

OpenClaw’s Dashboard compact button has found one of the worst possible ways to fail: it can make a user believe they are saving context while the runtime is actually preserving an empty apology note. Issue #87284 is not just another compaction bug. It is a reminder that context is operational state, and any UI that lies about it is not a dashboard — it is a footgun with charts.

The report describes Claude CLI sessions in OpenClaw 2026.5.22 where the Dashboard displays cumulative billed totalTokens as if it were current context-window fill. The Compact button appears inert. Then, after the underlying Claude CLI transcript crosses Anthropic’s 1M-token cap, a typed /compact silently rotates into a fresh session with no useful carry-over. The saved checkpoint summary reportedly begins with “No conversation content provided to summarize” and explicitly says the conversation block in the prompt was empty. That placeholder was persisted as if it were a legitimate compaction result.

That is not compaction. That is amnesia with a progress bar.

The specifics are ugly in the useful way. The issue was opened May 27 at 12:40 UTC and labeled P1, impact:session-state, and impact:data-loss. The environment is Linux x86_64, Node 22.22.2, Claude Opus 4.7 through the Claude CLI harness, and the Dashboard/WebChat surface. The reporter found four distinct Claude CLI session IDs within roughly 30 minutes. The over-cap transcript was 1,479,657 bytes and covered activity from May 26 11:17 to May 27 12:00 UTC; later rotated transcripts were 260,503, 482,442, and 253,358 bytes.

The killer detail is that OpenClaw’s sessions.json recorded tokensBefore: 1567 for the failed compaction. That number is wildly inconsistent with the live Claude transcript approaching the 1M-token boundary. The most plausible diagnosis is source-of-truth drift: OpenClaw’s compactor was looking at sparse OpenClaw session JSONL while Claude CLI held the authoritative live transcript. The Dashboard meter, session metadata, harness transcript, and compaction checkpoint all disagreed about what conversation existed.

A bad token meter is worse than no token meter

The Dashboard math matters because it changes user behavior. If the UI presents lifetime billed tokens as current context pressure, users are trained to click Compact at the wrong time for the wrong reason. It is the context-management equivalent of a disk meter that counts every byte ever written instead of bytes currently on disk. You can build rituals around it, but the rituals will be wrong.

Agent platforms need current-window estimates, not vibes. The difference between cumulative usage and active context is not pedantry. Cumulative usage answers “what did this cost?” Active context answers “how close am I to losing continuity?” Those are different operational questions. Mixing them creates false confidence, and false confidence is how users end up checkpointing empty summaries right before a harness rotation.

This is especially dangerous with Claude’s large context windows because the numbers create a psychological trap. A 1M-token cap sounds spacious enough that users wait until the cliff is near. Once they are near it, compaction becomes a rescue operation rather than routine maintenance. Rescue operations must be conservative. If the runtime cannot prove it is summarizing the authoritative transcript, it should refuse to compact and show the user why. Saving a summary that says “no conversation content provided” should be treated as a failed compaction artifact, not memory.

Source-of-truth drift is the real bug class

The deeper issue is not confined to Claude CLI. It is a general failure mode for agent systems that wrap external harnesses. Claude CLI has its own transcript. OpenClaw has session metadata. WebChat has a user-facing history. The compactor has a checkpoint store. Telemetry has token counters. If each surface is allowed to answer “what happened?” independently, eventually one of them will answer from the wrong book.

That is why this bug belongs in the same family as recent OpenClaw issues around lost post-tool turns, no-op compaction, context overflow, and dreaming memory injection. In every case, context management stops being an implementation detail and becomes the product’s trust boundary. An agent can only act coherently if the runtime knows what the agent has seen. An operator can only debug it if the runtime can prove what it summarized, dropped, replayed, or rotated away.

ClawSweeper’s review reportedly kept the issue open because source inspection matched the reported failure mode closely enough to warrant maintainer review, even without running a live 1M-token reproduction. That is the right bar. Reproducing a million-token edge case is expensive and slow; proving that the source path can select the wrong transcript and checkpoint an empty summary is enough to treat it seriously.

What practitioners should do now

If you use Claude CLI through OpenClaw, do not assume /compact is a guaranteed parachute near the 1M-token edge. Preserve or export the underlying Claude transcript before experimenting with manual compaction. If you see a checkpoint summary that says no conversation content was provided, treat it as a failed artifact. Do not continue as if the session retained useful context just because a checkpoint file exists.

Operators should also instrument for impossible summaries. A compaction result with zero conversation content should fail closed. A token count in OpenClaw metadata that is orders of magnitude below the harness transcript should raise a warning. A manual compaction that rotates a session should report exactly what source it summarized, how many turns it included, and whether the resulting checkpoint passed sanity checks. These are not nice-to-have diagnostics; they are the minimum viable guardrails for long-lived agent work.

For maintainers, the fix shape is straightforward even if the implementation is not. The Dashboard should separate lifetime billing from current context fill. Manual compaction for Claude CLI sessions should summarize the authoritative live Claude transcript, or explicitly state that it cannot access it. Empty-conversation summaries should not be persisted as valid checkpoints. If compaction cannot carry context over safely, the runtime should ask the user to choose between preserving the raw transcript, starting a fresh session, or aborting the operation.

The broader industry lesson is that agents make memory visible. Traditional apps can hide some state inconsistencies behind request/response boundaries. Agents cannot. They accumulate context, transform it into summaries, and use those summaries to make future decisions. If the state pipeline is wrong, the agent’s future behavior is wrong in ways that look like intelligence failure but are really bookkeeping failure.

That is why #87284 is worth caring about even if you never touch OpenClaw’s Dashboard. Context windows are becoming operational resources. Compaction is becoming a reliability primitive. Token telemetry is becoming a user safety surface. Treating any of those as UI decoration is how you ship silent amnesia.

Sources: OpenClaw issue #87284, issue #87095, issue #87091, PR #86772