e3bd6c52dd80775f7e583841255bb6374d43b85f
Phase 2 (Session Monitor + Lifecycle): - src/session-monitor.js: polls sessions.json every 2s for new/ended sessions - Detects agents via transcriptDir subdirectory scan - Resolves channelId/rootPostId from session key format - Emits session-added/session-removed events - Handles multi-agent environments - Falls back to defaultChannel for non-MM sessions - src/watcher-manager.js: top-level orchestrator - Starts session-monitor, status-watcher, health-server - Creates/updates Mattermost status posts on session events - Sub-agent linking: children embedded in parent status - Offset persistence (save/restore lastOffset on restart) - Post recovery on restart (search channel history for marker) - SIGTERM/SIGINT graceful shutdown: mark all boxes interrupted - CLI: node watcher-manager.js start|stop|status - MAX_ACTIVE_SESSIONS enforcement Integration tests: - test/integration/session-monitor.test.js: 14 tests - Session detection, removal, multi-agent, malformed JSON handling - test/integration/status-watcher.test.js: 13 tests - JSONL parsing, tool_call/result pairs, idle detection, offset recovery All 86 tests pass (59 unit + 27 integration). make check clean.
OpenClaw Live Status Tool
A lightweight CLI tool for OpenClaw agents to provide "Antigravity-style" live status updates in Mattermost channels (and others) without spamming.
Features
- Live Updates: Create a single message and update it repeatedly.
- Sub-Agent Support: Works in clean environments via embedded config or CLI flags.
- Cross-Channel: Supports dynamic channel targeting via
--channel. - One-Click Install: Updates binaries, skills, and agent protocols automatically.
Installation
Run the interactive installer wizard:
./install.sh
Usage
# Create a new status box
ID=$(live-status create "Initializing...")
# Update the status box
live-status update $ID "Working..."
Description
Releases
3
Languages
JavaScript
71%
TypeScript
10.7%
Go
9.4%
Shell
3.5%
CSS
3.5%
Other
1.9%