Skip to content

doctor: tighten generic memory-provider wording (#36)#37

Merged
PowerCreek merged 1 commit into
mainfrom
doctor-generic-memory-message-tightening
May 23, 2026
Merged

doctor: tighten generic memory-provider wording (#36)#37
PowerCreek merged 1 commit into
mainfrom
doctor-generic-memory-message-tightening

Conversation

@PowerCreek

Copy link
Copy Markdown

Summary

Closes #36 (message-tightening scope). Continuing the diagnostic-loudness sweep after #34/#35. Audited every non-Honcho / non-Mem0 memory provider:

Provider is_available() checks
openviking OPENVIKING_ENDPOINT env var
supermemory SUPERMEMORY_API_KEY + import supermemory
hindsight config + env vars
byterover brv CLI on PATH
retaindb RETAINDB_API_KEY env var
holographic always True

None probe the backend. So "X provider active" overstates reality — wrong key, expired token, or unreachable host all silently produce ✓.

Fix

Two minimal changes to the generic else-branch in hermes_cli/doctor.py:

  1. Wording: "X provider active""X provider configured".
  2. New check_info row: states is_available() only verified env-vars / CLI presence, notes the asymmetry (Honcho + Mem0 do real probes), links hermes doctor: generic memory provider check overstates is_available() — "X provider active" implies reachability that wasn't probed #36 for the design discussion.

No per-provider probe added. That requires deep SDK knowledge across 6 providers, AND the right shape is probably a new ABC health_check() -> tuple[bool, str] method, not 6 elif blocks. Both belong in the follow-up; this PR's job is just to stop the false-positive green check from misleading operators today.

Test plan

  • New test test_generic_provider_wording_no_longer_implies_reachability in tests/hermes_cli/test_doctor.py::TestDoctorMemoryProviderSection: stubs load_memory_provider to return a SimpleNamespace with is_available() → True, asserts the new output contains "configured" and not "active", references #36, and includes the "backend reachability not probed" phrase.
  • pytest tests/hermes_cli/test_doctor.py → 65 passed (64 existing + 1 new). No regression.

Filed by hermes-maintainer (PowerCreek).

After auditing the non-Honcho / non-Mem0 memory providers
(openviking, supermemory, hindsight, byterover, retaindb,
holographic), every implementation's is_available() only checks
env-vars / CLI presence — none probe backend reachability.

The doctor message "X provider active" overstates that as a
connection-validated state. Wrong key, expired token, unreachable
host all silently produce a green ✓.

Tighten the wording to "X provider configured" + add a check_info
row that:
  - states is_available() only verified env-vars / CLI presence
  - calls out the asymmetry (Honcho + Mem0 do real probes via
    #15/#34/#35; others wait on a health_check() ABC method)
  - links #36 for the design discussion

No code-level probe added here — adding per-provider probes
requires deep SDK knowledge for 6 providers AND the right shape
is probably a new ABC method, not 6 elif blocks. Both belong in
the follow-up. This PR's job is just to stop the false-positive
green check from misleading operators.

Closes #36 (message-tightening scope).
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.

hermes doctor: generic memory provider check overstates is_available() — "X provider active" implies reachability that wasn't probed

1 participant