Skip to content

fix(memory): status reflects runtime lazy_deps predicate - #80555

Open
patil2001 wants to merge 1 commit into
NousResearch:mainfrom
patil2001:fix/memory-status-runtime-predicate
Open

fix(memory): status reflects runtime lazy_deps predicate#80555
patil2001 wants to merge 1 commit into
NousResearch:mainfrom
patil2001:fix/memory-status-runtime-predicate

Conversation

@patil2001

Copy link
Copy Markdown

What

hermes memory status now reports a provider as installed/available using the same lazy-deps predicate the runtime retain path uses (ensure("memory.hindsight") / lazy_deps.is_available), instead of relying only on provider.is_available().

Why

The status check in hermes_cli/memory_setup.py decided installed ✓ / available ✓ purely from provider.is_available() (which checks config/credentials only, e.g. hindsight's API key). The actual runtime retain path gates availability on the lazy-deps predicate ensure("memory.hindsight") (the hindsight-client SDK). The two disagreed, so status could print available ✓ while retain would trigger an install or fail at runtime.

How to test

  • bash scripts/run_tests.sh tests/hermes_cli/test_memory_status.py -q — new regression test test_status_not_available_when_lazy_deps_unsatisfied asserts that when provider.is_available() returns True but the lazy-deps predicate is unsatisfied, status prints not available ✗.
  • Manually: configure memory.provider: hindsight with a key but no hindsight-client package installed; hermes memory status now reports not available ✗, matching what retain will actually do.

Platforms

Windows (hermetic test runner, CI-parity env).
Fixes #80388

The status command decided installed/available purely from
provider.is_available(), but the runtime retain path gates on the
lazy-deps predicate ensure("memory.hindsight") (hindsight's cloud client
SDK). The two disagreed, so status could print "available" while retain
would trigger an install or fail.

Status now mirrors the runtime predicate via the check-only
lazy_deps.is_available() for any provider with a registered lazy feature
(memory.honcho/hindsight/supermemory/mem0); providers without one are
unaffected. The check-only variant is used so status never triggers an
install.

Fixes NousResearch#80388
@alt-glitch alt-glitch added type/bug Something isn't working comp/cli CLI entry point, hermes_cli/, setup wizard tool/memory Memory tool and memory providers area/memory Memory subsystem: store, providers, sync, background reviews dependencies Pull requests that update a dependency file P3 Low — cosmetic, nice to have labels Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/memory Memory subsystem: store, providers, sync, background reviews comp/cli CLI entry point, hermes_cli/, setup wizard dependencies Pull requests that update a dependency file P3 Low — cosmetic, nice to have tool/memory Memory tool and memory providers type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

hermes memory status reports "available ✓" while every retain fails — status and runtime use different availability predicates

2 participants