No description
cmd/agent-watcher/main_test.go builds the real binary in TestMain, then
launches it twice with temp configs to exercise the full path:
TestEndToEnd_BothSourcesEmitToInbox
- drops a *.json file via tmp+rename (mirrors Syncthing semantics)
- POSTs a webhook with template variables ({{ .repo }}, {{ .actor }})
- POSTs a urgent alert with empty body and fixed-string template
- asserts 3 JSONL lines land in bob.inbox with exact shape
- confirms each event's source field tracks origin
("drop-folder:drop1.json", "webhook:/forgejo/push")
- hits /health and verifies emitted=2 (one webhook didn't 200, that
counter only counts successful emits)
TestEndToEnd_GracefulShutdown
- SIGTERM after listener up
- asserts process exits within 3s
Total: 43 tests across 5 packages, all passing. Real binary verified
end-to-end on Linux/amd64.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| cmd/agent-watcher | ||
| docs/channels | ||
| internal | ||
| spec | ||
| .gitignore | ||
| go.mod | ||
| go.sum | ||
| README.md | ||
agent-watcher
Push-delivery layer for agent-ping. The "secondary nervous system" for Claude Code agents on this network.
agent-ping queues messages in inbox files; agent-watcher notices them (and other external events) and wakes the recipient agent without a human in the loop.
Two layers:
- Collector — small Go daemon,
systemd --user, always on, brain-blind. Converts external events (HTTP webhooks, drop-folder file arrivals) into ping inbox writes. Runs whether or not any agent is alive. - MCP Watcher — Claude Code MCP subprocess, declared in each agent's
mcp.json. Watches the agent's inbox via inotify and surfaces events into the live session via Channels (research preview). Provides reply tools (ack,respond,mark_handled).
Filesystem is the queue. OpenBrain is not involved.
Spec
spec/agent-watcher.md. Read that for architecture, decisions, scope.
Status
v1 spec signed off by Bob (VPS) 2026-05-06. Implementation pending.
Install
Per CLAUDE.md rule #2, Angus runs the install commands — agents do not modify their own configuration. Install script will land alongside INSTALL.md once the binaries are built.