Problem
integrations/hermes/plugin.yaml declares only 3 hooks:
hooks:
- on_session_end
- on_pre_compress
- on_memory_write
But init.py implements 6 hooks, including three critical ones never invoked without manual patching:
prefetch()
• Hook: prefetch()
• Declared?: ❌
• What it does: Injects relevant memories before each LLM call
sync_turn()
• Hook: sync_turn()
• Declared?: ❌
• What it does: Captures every conversation turn in background
on_session_end()
• Hook: on_session_end()
• Declared?: ✅
• What it does: Marks sessions complete
on_pre_compress()
• Hook: on_pre_compress()
• Declared?: ✅
• What it does: Re-injects context before compaction
on_memory_write()
• Hook: on_memory_write()
• Declared?: ✅
• What it does: Mirrors MEMORY.md writes
system_prompt_block()
• Hook: system_prompt_block()
• Declared?: ❌
• What it does: Injects project profile at session start
Without sync_turn, auto-capture is silently disabled. Without prefetch, no context injection at session start.
Suggested Fix
Update plugin.yaml to declare all 6 hooks:
hooks:
- prefetch
- sync_turn
- on_session_end
- on_pre_compress
- on_memory_write
- system_prompt_block
Problem
integrations/hermes/plugin.yaml declares only 3 hooks:
hooks:
But init.py implements 6 hooks, including three critical ones never invoked without manual patching:
prefetch()
• Hook: prefetch()
• Declared?: ❌
• What it does: Injects relevant memories before each LLM call
sync_turn()
• Hook: sync_turn()
• Declared?: ❌
• What it does: Captures every conversation turn in background
on_session_end()
• Hook: on_session_end()
• Declared?: ✅
• What it does: Marks sessions complete
on_pre_compress()
• Hook: on_pre_compress()
• Declared?: ✅
• What it does: Re-injects context before compaction
on_memory_write()
• Hook: on_memory_write()
• Declared?: ✅
• What it does: Mirrors MEMORY.md writes
system_prompt_block()
• Hook: system_prompt_block()
• Declared?: ❌
• What it does: Injects project profile at session start
Without sync_turn, auto-capture is silently disabled. Without prefetch, no context injection at session start.
Suggested Fix
Update plugin.yaml to declare all 6 hooks:
hooks: