fix(mem0-agent): bundle a launcher so hooks never depend on a global CLI
SessionStart failed with 'pyenv: mem0-agent: command not found' in any repo whose
.python-version selects a Python the console script was not installed into. A
pip entry point is the wrong dependency for a plugin.
- bin/mem0-agent: POSIX launcher that picks the first CPython >= 3.10 it can find
and runs the package from source (there are no third-party dependencies)
- hooks now invoke ${CLAUDE_PLUGIN_ROOT}/bin/mem0-agent, matching how the v1
plugin calls its own scripts; the generator enforces this
- app_id override renamed to MEM0_AGENT_APP_ID: v1 exports MEM0_PROJECT_ID, which
was silently overriding this plugin's project scope while both are installed
Verified: all six hooks exit 0 from a pyenv-3.11 repo, and app_id resolves per
repository again.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
a07756f6d7
commit
dda5f21332
@@ -48,7 +48,10 @@ def test_every_hook_declares_its_contract(spec):
|
||||
assert entry["why"], f"{entry['id']} must say why it exists"
|
||||
assert isinstance(entry["local_only"], bool)
|
||||
assert isinstance(entry["background"], bool)
|
||||
assert entry["command"].startswith("mem0-agent ")
|
||||
assert entry["command"].startswith("${CLAUDE_PLUGIN_ROOT}/bin/mem0-agent "), (
|
||||
"hooks must call the plugin's bundled launcher, not a global console script "
|
||||
"(a pyenv shim resolves against the directory's Python version and can vanish)"
|
||||
)
|
||||
|
||||
|
||||
def test_tiny_parser_handles_quotes_comments_and_nesting():
|
||||
|
||||
Reference in New Issue
Block a user