Changelog β
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased β
Added β
- Lifetime Stats: companion days, total sessions/tokens/messages
lifetimeStatsGraphQL query with Float types for large token counts- LifetimeScanner: two-phase transcript scanning β full scan + incremental watch
- Pipeline engine: event-sourced token tracking with delta aggregation
- Event bus system:
TokenEventBus+MessageEventBuswith batch buffering - MCP protocol support:
POST /mcpendpoint (Streamable HTTP, localhost-only) - Snapshot graceful degradation: two-tier Core/Enrichment error handling
safeCollect()pattern for resilient data collectionX-Snapshot-Degraded-Sourcesresponse header- Snapshot format options:
png,svg,json useRetryWithBackoffhook: exponential backoff for gateway failures- Platform adapters: darwin (ps aux) + linux (/proc) + mock
- E2E test suite with mock CLI + fixture data isolation
- Integration test suite: GraphQL resolvers with real server
test:integration,test:e2e,test:allnpm scripts- Data retention service with configurable retention
- Database abstraction layer with DI and migration compression
- 30-minute time range option for snapshots (
?range=30m) - Per-model token usage breakdown with stacked progress bar in snapshot
- Session turn count display (
π¬ N turns) from persistent message event tracking - Token usage trend indicator (
β/β N%vs previous period,β οΈfor spikes >100%) message_eventstable for persistent per-message tracking (DB migration v8)MessageEventBusfor message event pipeline
Changed β
- Gateway status detection: exponential backoff retry + short TTL cache
- Scanner startup: batch yield (30 files/batch) prevents event loop blocking
- Snapshot dead params removed:
layoutandsection - Coverage thresholds: 90% for all metrics
- Structured logging across all server modules β pino
- Snapshot Visual Rework (V2 Glassmorphism)
- New Inter font (replacing IBM Plex Sans) with 5 weights (400β800)
- Unified 390px viewport for all detail levels (mobile-first)
- Indigo/violet color scheme with gradient progress bars
- Glass card styling (
backdrop-filterinspired, Satori-compatible) - Merged gateway banner + metrics into compact status strip
- Header: OpenClaw brand with companion time (
ιͺδΌ΄ N 倩) and online/offline status - Footer: version left, full datetime right (removed uptime display)
- Default snapshot range changed from 6h to 24h
- New data fields:
companionDays,hostname,totalConversations
- Snapshot metrics section condensed from 4-card grid to single-line summary
- Snapshot charts (sparklines, uptime bar) replaced with stacked token usage bar
- Snapshot errors section now hidden when error count is 0
- Token usage in snapshot now shows per-model breakdown with colored legend
Fixed β
- Gateway false "DOWN" on startup due to scanner I/O blocking
- Snapshot API crashes when individual data sources fail
- E2E test failures: environment isolation + selector repair
- Pre-push hook divergence from CI
- snapshot-cmd test writing real PNG files
0.1.0 2026-02-23 β
Added β
- Real-time monitoring dashboard for OpenClaw gateway
- Live session viewer with sub-agent tree, token usage, and context progress
- Metrics charts: sessions, tokens (per-model), errors, uptime over 1h/6h/12h/24h
- Structured event log viewer with density heatmap, type filtering, and search
- Gateway control operations: restart, update
- Screenshot API:
POST /api/snapshotβ capture dashboard as PNG- Detail levels: compact, standard, full
- Themes: dark, light
- Languages: en, zh
- Server-side rendering via Satori + resvg (zero browser dependency)
- GraphQL API with subscriptions for real-time data
- Token-based authentication (auto-generated, URL-based like Jupyter)
- Dark / Light theme with CSS variable theming
- English and Chinese (δΈζ) i18n
- SQLite-based metrics storage with configurable retention
- Health endpoint:
GET /health - Docker smoke test suite (25 checks across 5 phases)
- Comprehensive test suite: 1370+ tests across server and web packages
Security β
- Auth enabled by default in production (auto-generated token)
- API token minimum 32 characters enforced
- Cookie-based session with 7-day expiry
- No-auth mode requires explicit opt-in