1. session-monitor: handle timestamp-prefixed transcript filenames
OpenClaw uses {ISO}_{sessionId}.jsonl — glob for *_{sessionId}.jsonl
when direct path doesn't exist.
2. session-monitor: skip stale sessions (>5min since last transcript write)
Prevents creating status boxes for every old session in sessions.json.
3. status-watcher: parse actual OpenClaw JSONL transcript format
Records are {type:'message', message:{role,content:[{type,name,...}]}}
not {type:'tool_call', name}. Now shows live tool calls with arguments
and assistant thinking text.
4. handler.js: fix module.exports for OpenClaw hook loader
Expects default export (function), not {handle: function}.
5. HOOK.md: add YAML frontmatter metadata for hook discovery.
1.4 KiB
1.4 KiB
name, description, metadata
| name | description | metadata | |||||||
|---|---|---|---|---|---|---|---|---|---|
| status-watcher-hook | Auto-starts the Live Status v4 watcher daemon on gateway startup |
|
status-watcher-hook
Auto-starts the Live Status v4 daemon when the OpenClaw gateway starts.
Description
On gateway startup, this hook checks whether the status-watcher daemon is already
running (via PID file). If not, it spawns watcher-manager.js start as a detached
background process, then exits immediately. The daemon continues running independently
of this hook handler.
Required Environment Variables
The following environment variables must be set for the watcher to function:
MM_BOT_TOKEN Mattermost bot token
MM_BASE_URL Mattermost base URL (e.g. https://slack.solio.tech)
Optional (defaults shown):
TRANSCRIPT_DIR /home/node/.openclaw/agents
THROTTLE_MS 500
IDLE_TIMEOUT_S 60
MAX_STATUS_LINES 20
MAX_ACTIVE_SESSIONS 20
MAX_MESSAGE_CHARS 15000
HEALTH_PORT 9090
LOG_LEVEL info
PID_FILE /tmp/status-watcher.pid
CIRCUIT_BREAKER_THRESHOLD 5
CIRCUIT_BREAKER_COOLDOWN_S 30
Installation
This hook is deployed automatically by install.sh or deploy-to-agents.sh.
To deploy manually:
cp -r hooks/status-watcher-hook /home/node/.openclaw/workspace/hooks/
The hook activates on the next gateway startup.