- Active sessions query now finds truly active sessions (started
anytime, no session.end ever) instead of only today's sessions
- Use uPlot setData() for live WS updates instead of destroying
and recreating the chart on every event
- Destroy chart only on window change so it recreates with new scale
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add event_type and framework filters to events query endpoint
- Add /agents SPA route to web-ui server
- Add Agents nav link and route in frontend
- Add agents page CSS (timeline, VM pills, stats panel)
- Build VM status strip, activity timeline, and real-time stats
- Add agentmon hook for OpenClaw (HOOK.md + handler.ts)
- Add docker-compose, Dockerfile, and supporting infra files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Sessions list with filters (time, framework, host)
- Session detail with runs table
- Run detail with expandable spans
- Dark theme GitHub-style UI
- API proxy to query-api via /api
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
GET /v1/sessions - list sessions with filters
GET /v1/sessions/:id - session detail with runs
GET /v1/runs/:id - run detail with spans
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
GetSessionWithRuns returns session metadata and all runs.
GetRunWithSpans returns run metadata and all spans with payload.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Supports filtering by time range, framework, and host.
Returns paginated results with cursor-based pagination.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
HTTP and WebSocket handlers now validate events before publishing.
Returns detailed error info on validation failures.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Design for Sessions/Run views, three new query-api endpoints,
and schema validation at ingest-gateway.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>