Motivation
Claude Code v2.1.105 added a top-level monitors key to the plugin manifest: long-lived background processes per plugin whose newline-delimited stdout becomes session notifications. Auto-armed at session start ("when":"always") or first skill invoke ("when":"on-skill-invoke:<skill>"), session-lifetime only. Docs: https://code.claude.com/docs/en/plugins-reference#monitors.
Our current plugin/scripts/stop-curate.sh has to dual-gate (concurrency + frequency) because the Stop hook fires per-turn — a monitor serializes by construction. PR #63 fixed the stampede with a kernel-level concurrency gate, but the underlying architecture is still load-bearing on filesystem gymnastics. A monitor replaces the whole thing with a single tailing process per session.
Goal
Replace the Stop-hook + stop-curate.sh + per-session lockfiles with:
…backed by a new streaming producer in the Rust CLI (rememora curate --stream).
Acceptance criteria
Out of scope
- Cross-agent liveness monitor (
rememora events --follow) — separate ticket.
- Skill-scoped ambient search monitor — separate ticket.
Related
Motivation
Claude Code v2.1.105 added a top-level
monitorskey to the plugin manifest: long-lived background processes per plugin whose newline-delimited stdout becomes session notifications. Auto-armed at session start ("when":"always") or first skill invoke ("when":"on-skill-invoke:<skill>"), session-lifetime only. Docs: https://code.claude.com/docs/en/plugins-reference#monitors.Our current
plugin/scripts/stop-curate.shhas to dual-gate (concurrency + frequency) because the Stop hook fires per-turn — a monitor serializes by construction. PR #63 fixed the stampede with a kernel-level concurrency gate, but the underlying architecture is still load-bearing on filesystem gymnastics. A monitor replaces the whole thing with a single tailing process per session.Goal
Replace the Stop-hook +
stop-curate.sh+ per-session lockfiles with:…backed by a new streaming producer in the Rust CLI (
rememora curate --stream).Acceptance criteria
monitorsentry; no per-session lockfiles.CLAUDE.md).Out of scope
rememora events --follow) — separate ticket.Related