fix(memory): status reflects runtime lazy_deps predicate - #80555
Open
patil2001 wants to merge 1 commit into
Open
fix(memory): status reflects runtime lazy_deps predicate#80555patil2001 wants to merge 1 commit into
patil2001 wants to merge 1 commit into
Conversation
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
12 tasks
16 tasks
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.
What
hermes memory statusnow 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 onprovider.is_available().Why
The status check in
hermes_cli/memory_setup.pydecidedinstalled ✓ / available ✓purely fromprovider.is_available()(which checks config/credentials only, e.g. hindsight's API key). The actual runtime retain path gates availability on the lazy-deps predicateensure("memory.hindsight")(thehindsight-clientSDK). The two disagreed, so status could printavailable ✓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 testtest_status_not_available_when_lazy_deps_unsatisfiedasserts that whenprovider.is_available()returns True but the lazy-deps predicate is unsatisfied, status printsnot available ✗.memory.provider: hindsightwith a key but nohindsight-clientpackage installed;hermes memory statusnow reportsnot available ✗, matching what retain will actually do.Platforms
Windows (hermetic test runner, CI-parity env).
Fixes #80388