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.
53 lines
1.4 KiB
Markdown
53 lines
1.4 KiB
Markdown
---
|
|
name: status-watcher-hook
|
|
description: "Auto-starts the Live Status v4 watcher daemon on gateway startup"
|
|
metadata: { "openclaw": { "emoji": "📡", "events": ["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:
|
|
|
|
```sh
|
|
cp -r hooks/status-watcher-hook /home/node/.openclaw/workspace/hooks/
|
|
```
|
|
|
|
The hook activates on the next gateway startup.
|