Skip to content

Fix tool result counting on session restart - #114

Merged
Tarquinen merged 1 commit into
masterfrom
fix/tool-count-on-restart
Dec 11, 2025
Merged

Fix tool result counting on session restart#114
Tarquinen merged 1 commit into
masterfrom
fix/tool-count-on-restart

Conversation

@Tarquinen

Copy link
Copy Markdown
Collaborator

Summary

  • Fix tool result counting to not re-count already-pruned tools when a session is restarted
  • Properly clear tool tracker state (seenToolResultIds, skipNextIdle) when switching sessions

Details

When restarting a session, the tool cache sync was counting all tool results again, including those that had already been pruned. This could cause the pruning threshold to be reached prematurely.

This fix:

  1. Adds a clearToolTracker function that resets all tracker state when switching sessions
  2. Modifies syncToolCache to skip already-pruned tools when counting toward the nudge threshold
  3. Removes unused PruneReason import from janitor.ts

Version bump: 0.4.15 → 0.4.16

@Tarquinen
Tarquinen merged commit 8d30228 into master Dec 11, 2025
1 check passed
@Tarquinen
Tarquinen deleted the fix/tool-count-on-restart branch December 11, 2025 16:26
Ther-zh added a commit to Ther-zh/opencode-dynamic-context-pruning that referenced this pull request Aug 31, 2026
Real-session replay (fork-1.json) showed prompt guidance alone is not
enough: after one good large merge (Opencode-DCP#113: -88.8K/+15.3K), the model fell
back to folding a single poll message (Opencode-DCP#114: -121/+453) and writing a
merge summary 2.6x larger than what it replaced (Opencode-DCP#115: -6.7K/+17.5K).
Both are net-positive context growth - the exact anti-pattern.

Add a hard code-level gate: when compress.enforceSummaryShrink is on
(default true), the range compress tool rejects any compression whose
summary tokens are not strictly smaller than the tokens it replaces
(raw messages + consumed child block summaries). The model must rewrite
a much more condensed summary or merge existing blocks instead.

Adds config key, range-utils helper, tool integration, and unit test.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant