openclaw - 💡(How to fix) Fix Compaction quality guard does not verify identifier survival in summaries [1 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Root Cause

Identifiers like UUIDs, commit SHAs, session keys, file hashes, and run IDs appear throughout tool call arguments, tool results, and message text. When the summarization model drops these identifiers, subsequent tool calls and references in the conversation break silently because the agent loses context about which specific resource was being operated on.

Fix Action

Fixed

RAW_BUFFERClick to expand / collapse

Problem

The compaction quality guard validates that summaries are well-formed and meet length thresholds, but it does not verify that opaque identifiers from the original transcript survive into the post-compaction summary.

Identifiers like UUIDs, commit SHAs, session keys, file hashes, and run IDs appear throughout tool call arguments, tool results, and message text. When the summarization model drops these identifiers, subsequent tool calls and references in the conversation break silently because the agent loses context about which specific resource was being operated on.

Impact

After compaction, the agent may:

  • Reference the wrong resource because a UUID was lost
  • Fail tool calls that require an exact identifier (run IDs, session keys)
  • Confuse multiple similar resources when their distinguishing identifiers were dropped
  • Silently produce incorrect results without any warning that context was lost

Expected behavior

The compaction quality guard should:

  1. Extract opaque identifiers from all original messages (including tool call arguments and tool result content)
  2. Verify that those identifiers appear in the post-compaction summary
  3. When identifiers are lost and policy is strict, trigger a re-summarization retry with the lost identifiers injected as a preservation hint
  4. Log identifier loss even when the threshold for retry is not reached

Scope

This covers identifiers in:

  • Regular message text content
  • Tool call arguments (toolCall, toolUse, functionCall blocks)
  • Tool result content (excluding toolResult.details which are stripped for security)

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

The compaction quality guard should:

  1. Extract opaque identifiers from all original messages (including tool call arguments and tool result content)
  2. Verify that those identifiers appear in the post-compaction summary
  3. When identifiers are lost and policy is strict, trigger a re-summarization retry with the lost identifiers injected as a preservation hint
  4. Log identifier loss even when the threshold for retry is not reached

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix Compaction quality guard does not verify identifier survival in summaries [1 pull requests]