fix: prevent autoRecall context inflation (#345)#353
Merged
rwmjhb merged 1 commit intoCortexReach:masterfrom Mar 27, 2026
Merged
fix: prevent autoRecall context inflation (#345)#353rwmjhb merged 1 commit intoCortexReach:masterfrom
rwmjhb merged 1 commit intoCortexReach:masterfrom
Conversation
…ion cap + ephemeral marking Fixes CortexReach#345 — autoRecall could cause context to balloon and trigger compaction loops due to three compounding issues: 1. Session state leak: recallHistory and turnCounter Maps were never cleaned on session_end, causing unbounded growth across sessions. Added session_end handler to clean up auto-recall Maps. 2. No hard per-turn safety cap: Added maxRecallPerTurn config (default 10) that acts as a ceiling on top of autoRecallMaxItems to prevent misconfiguration from causing context inflation. 3. Injection blocks persisted in transcript: Added ephemeral: true flag to the returned hook result so the host framework's compaction logic can safely discard injected <relevant-memories> blocks instead of persisting them into the session transcript. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
recallHistoryandturnCounterMaps never cleaned onsession_end, causing unbounded growthmaxRecallPerTurnconfig (default 10) as a ceiling onautoRecallMaxItemsephemeral: trueflag so compaction can safely discard<relevant-memories>blocksChanges
index.ts: AddmaxRecallPerTurnconfig + parsing, applyMath.min(configMaxItems, maxPerTurn)cap, addephemeral: trueto hook return, addsession_endhandler to clean recallHistory/turnCounter/lastRawUserMessageopenclaw.plugin.json: AddmaxRecallPerTurnschema definition + settings hintTest plan
autoRecall=trueconfirms no duplicate injectionmaxRecallPerTurnconfig is respected when set lower thanautoRecallMaxItems🤖 Generated with Claude Code