sol
|
e3bd6c52dd
|
feat: Phase 2 — session monitor, lifecycle, watcher manager
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.
|
2026-03-07 17:32:28 +00:00 |
|
sol
|
c0dea6c12a
|
policies: add standard policy files, linting, formatting
- Add .editorconfig, .eslintrc.json, .prettierrc, .prettierignore, .dockerignore, .gitignore
- Add Makefile with lint, fmt, fmt-check, secret-scan, test (skip) targets
- Add package.json with eslint@^8.56.0, eslint-plugin-security, prettier
- Add tools/secret-scan.sh
- Fix unused variable (fs -> _fs)
- Auto-format with prettier
- make check passes clean (0 errors, 11 warnings)
|
2026-03-01 07:26:28 +00:00 |
|