Skip to content

feat(memory): add memory.recall_indicator to suppress recall status line - #3

Merged
AlaisterLeung merged 1 commit into
mainfrom
feat/recall-indicator-toggle
Aug 15, 2026
Merged

feat(memory): add memory.recall_indicator to suppress recall status line#3
AlaisterLeung merged 1 commit into
mainfrom
feat/recall-indicator-toggle

Conversation

@AlaisterLeung

Copy link
Copy Markdown
Owner

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 (default true — behavior unchanged); setting it false keeps 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.pymemory.recall_indicator: True default
  • agent/agent_init.py — derive agent._recall_indicator_enabled from config at init
  • agent/turn_context.py — gate the single _emit_status(_recall_indicator) emission site
  • cli-config.yaml.example — documented key under memory:
  • tests/agent/test_turn_context.pytest_recall_indicator_suppressed_when_config_disabled, mirroring the existing recall-indicator harness

Usage

memory:
  recall_indicator: false   # recall stays internal, no status bubble

Verification

  • tests/agent/test_turn_context.py + tests/agent/test_memory_recall_indicator.py: 27 passed (new base)
  • Config default loads: recall_indicator: True
  • Diff vs fork main: only the 5 files above (52 insertions, 2 deletions); SSH-signed commit

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.
Copilot AI balanced review requested due to automatic review settings August 15, 2026 14:02

This comment was marked as resolved.

@AlaisterLeung
AlaisterLeung merged this pull request into main Aug 15, 2026
1 check passed
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.
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.

2 participants