feat(memory): add memory.recall_indicator to suppress recall status line - #3
Merged
Merged
Conversation
New config flag (default true) lets users keep external-memory recall
internal: memory still auto-injects into context before a turn, but the
deterministic status line ("👁️ Hindsight — recalled N memories") is
suppressed on every surface (CLI + gateway).
Plumbed once at agent init (agent._recall_indicator_enabled) and gated at
the single emission site in turn_context; documented in the memory config
section and covered by a new turn-context test mirroring the existing
recall-indicator harness.
AlaisterLeung
pushed a commit
that referenced
this pull request
Aug 20, 2026
…age_id) Live-canary finding #3 (Alice, staging): the relay inbound leg is at-least-once. On WS re-handshake the connector replays its durable per-instance buffer; a long multi-tool turn (60-100s) straddling a quiet socket drop got its ORIGINAL inbound replayed after the turn finished, re-running the entire turn — the user saw the final answer posted 2-5x (each a separate execution, hence slightly different texts). Receipts: same msg text at history=0 in back-to-back sessions 121647/121840, no Slack-side retry on the connector (envelope dedupe never fired). Consumer-side idempotency: bounded FIFO seen-set (512) keyed by platform message identity; events without a message_id never dedupe (fail-open — dropping a real message is worse than rerunning one). No wire change; contract v1 untouched. Transplanted-from: victor-fork/feat/relay-slack-live-cards@73ce04ae75 (extracted for the rc.4 relay-fixes train; tests moved to a standalone file with no live-cards dependencies)
AlaisterLeung
added a commit
that referenced
this pull request
Aug 20, 2026
…ine (#3) New config flag (default true) lets users keep external-memory recall internal: memory still auto-injects into context before a turn, but the deterministic status line ("👁️ Hindsight — recalled N memories") is suppressed on every surface (CLI + gateway). Plumbed once at agent init (agent._recall_indicator_enabled) and gated at the single emission site in turn_context; documented in the memory config section and covered by a new turn-context test mirroring the existing recall-indicator harness.
AlaisterLeung
added a commit
that referenced
this pull request
Aug 21, 2026
…ine (#3) New config flag (default true) lets users keep external-memory recall internal: memory still auto-injects into context before a turn, but the deterministic status line ("👁️ Hindsight — recalled N memories") is suppressed on every surface (CLI + gateway). Plumbed once at agent init (agent._recall_indicator_enabled) and gated at the single emission site in turn_context; documented in the memory config section and covered by a new turn-context test mirroring the existing recall-indicator harness.
AlaisterLeung
added a commit
that referenced
this pull request
Aug 21, 2026
…ine (#3) New config flag (default true) lets users keep external-memory recall internal: memory still auto-injects into context before a turn, but the deterministic status line ("👁️ Hindsight — recalled N memories") is suppressed on every surface (CLI + gateway). Plumbed once at agent init (agent._recall_indicator_enabled) and gated at the single emission site in turn_context; documented in the memory config section and covered by a new turn-context test mirroring the existing recall-indicator harness.
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
Adds a config option to suppress the deterministic memory-recall status line (e.g.
👁️ Hindsight — recalled 3 memories) on CLI and messaging platforms.The indicator was introduced upstream in NousResearch#85494 with no opt-out. This adds
memory.recall_indicator(defaulttrue— behavior unchanged); setting itfalsekeeps external-memory recall internal: memory still auto-injects into context before each turn, only the status line is suppressed, on every surface (CLI + gateway).Changes
hermes_cli/config_defaults.py—memory.recall_indicator: Truedefaultagent/agent_init.py— deriveagent._recall_indicator_enabledfrom config at initagent/turn_context.py— gate the single_emit_status(_recall_indicator)emission sitecli-config.yaml.example— documented key undermemory:tests/agent/test_turn_context.py—test_recall_indicator_suppressed_when_config_disabled, mirroring the existing recall-indicator harnessUsage
Verification
tests/agent/test_turn_context.py+tests/agent/test_memory_recall_indicator.py: 27 passed (new base)recall_indicator: Truemain: only the 5 files above (52 insertions, 2 deletions); SSH-signed commit