hermes-agent/plugins/memory
Sol Aitken de60bf40c6 fix(memory): register parent packages for user-installed provider imports
User-installed memory providers load under the synthetic
_hermes_user_memory.<name> package, but the loader never registered that
parent namespace in sys.modules (it only registers "plugins" and
"plugins.memory" for bundled providers). As a result any external provider
using a relative import failed to load:

    from . import config
    ModuleNotFoundError: No module named '_hermes_user_memory'

The same gap in discover_plugin_cli_commands() meant an external provider's
cli.py with a relative import could never be discovered, so the documented
"hermes <plugin>" CLI integration did not work for standalone plugins.

Register the synthetic parent namespace before loading user-installed
providers, mirror it for cli.py discovery (including the per-provider parent
package, without executing the plugin's __init__.py), and make
_load_provider_from_dir() reuse only modules actually loaded from disk so a
parent shell registered by CLI discovery is never mistaken for the loaded
provider.

Regressions cover: a flat provider with a sibling relative import, a provider
with its implementation in a nested subpackage (including a namespace
intermediate directory), cli.py discovery with a relative import, and
provider load after CLI discovery ran first.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 05:35:43 -07:00
..
byterover chore: ruff auto-fix PLR6201 resweep — tuple → set in membership tests (#27355) 2026-05-17 02:29:41 -07:00
hindsight fix(honcho): harden self-hosted setup paths 2026-05-29 22:29:48 -07:00
holographic fix(sqlite): fall back to journal_mode=DELETE on NFS/SMB/FUSE (#22043) 2026-05-09 02:09:35 -07:00
honcho fix: make Honcho startup fail open 2026-06-01 20:13:42 -07:00
mem0 fix(honcho): harden self-hosted setup paths 2026-05-29 22:29:48 -07:00
openviking fix(openviking): target-aware mirror subdir, drop private-attr access, dedupe URI builder 2026-05-22 01:27:52 -07:00
retaindb refactor: add tool_error/tool_result helpers + read_raw_config, migrate 129 callsites 2026-04-07 13:36:38 -07:00
supermemory refactor(supermemory): session-level ingest + kebab aliases (salvaged from #32487) (#38756) 2026-06-04 11:50:02 +05:30
__init__.py fix(memory): register parent packages for user-installed provider imports 2026-06-04 05:35:43 -07:00