- Click-to-expand brain stream events (click any row to see full detail text)
- Hover highlight on brain event rows
- Initial sync no longer hangs on large session directories (batch size 10 → 200, 5K event cap per cycle, newest-first, incremental state saving)
- Store raw passphrase in config instead of derived hash (show what the user typed, not gibberish)
- Support arbitrary passphrases as encryption keys (auto-derives 256-bit AES key via SHA-256)
- Existing configs with raw passphrases self-heal on next sync
- NameError crash on encryption key prompt (
_inputnot defined in_cmd_connect)
- Always show encryption key prompt during onboard and connect (full transparency)
- Existing key shown masked with option to keep or replace
- Prompt for custom encryption key during
clawmetry connect(press Enter to auto-generate)
clawmetry connect --keyno longer crashes in non-interactive shells (SSH, CI/CD, Docker)- Sync daemon retries on 401/503 (cloud cold-start resilience)
- Sync daemon
_post()retries once on 401/503 responses (cloud cold-start resilience) - Prevents sync daemon from permanently skipping sessions when Cloud Run returns transient auth errors
sync_cronsnow sends full schedule object, state (lastRunAtMs, lastDurationMs, nextRunAtMs, lastError, consecutiveFailures), and task description to cloud- Maps
consecutiveErrorsfield (OpenClaw's actual field name) toconsecutiveFailuresfor renderer compatibility
- Dark mode now correctly forced on load — initTheme() was overriding body dark mode with localStorage light default
- Dark mode always on, remove theme toggle (merged via PR #37)
- Dark mode is now the permanent default — removed theme toggle button
- Auth check runs before boot sequence — login overlay shows immediately if token invalid/missing
- Boot overlay no longer covers the login prompt on stale token
- Overview request storm on boot: removed duplicate loadAll() call, added in-flight guard
- Port conflict check moved to daemon mode only — foreground mode was false-positive blocking all ports
- Port conflict: only kill our own stale clawmetry process, not arbitrary apps on the same port
- Clear error message if another app is already using the port
- Installer now auto-starts daemon immediately after install via full binary path (works with curl|bash)
- Hide
clawmetry connectcommand from help (cloud integration not yet production ready)
- Architecture diagram boxes broken due to emoji double-width characters — switched to pure ASCII +---+ style
- Brain tab: unified real-time activity stream for main agent + all sub-agents
- Brain tab: filter pills with glow highlight, chart filtering by agent
- Brain tab:
/api/brain-history+/api/brain-streamendpoints - Brain tab: spinner feedback on pill click
- Nav reorder: Flow | Overview | Brain | Crons | Tokens | Memory
- Windows CI: UTF-8 encoding, stdout handling
- E2E tests: auth token injection per-page, boot overlay dismissal
- Sub-Agents tab removed from nav
All notable changes to ClawMetry are documented here. Format: Keep a Changelog
- Hide OTLP "not available" error from startup banner — only shows when otel is actually installed
- 18 channel live popups — all OpenClaw channels now show live message bubbles in Flow: iMessage (chat.db), WhatsApp, Signal, Discord, Slack, Webchat, IRC, BlueBubbles, Google Chat, MS Teams, Mattermost, Matrix, LINE, Nostr, Twitch, Feishu, Zalo
- Cost Optimizer — llmfit integration detects local models runnable on your hardware; Apple Metal speed correction; task-level savings recommendations; ollama pull commands
- Full test suite — pytest API tests, Playwright E2E, BrowserStack cross-browser tests
- CI matrix — Linux/macOS/Windows on every PR via GitHub Actions
- BrowserStack CI — Chrome, Firefox, Safari, Edge on merge to main
- Auto-publish workflow —
git tag vX.Y.Z && git push --tagspublishes to PyPI - Makefile —
make dev,make test-fast,make test,make lint CHANGELOG.md— this file
- Gateway token not found on restart (
openclaw.jsonmissing from config search path) - New channels (iMessage etc.) missing from
KNOWN_CHANNELSlist - Overview page channel nodes not rendering (getElementById on unappended DOM clone)
- Unconfigured channels (Signal/WhatsApp) showing in Flow when not in config
grep/tail/pgrepsubprocess calls replaced with pure Python (Windows compatibility)/tmp/openclawhardcoded log paths replaced with_get_log_dirs()cross-platform helper- Windows UTF-8 crash — 🦞 emoji in BANNER failed on cp1252 encoding
setup.pyreadingdashboard.pywithoutencoding="utf-8"(Windows pip install failure)
- Channel nodes in Flow now hide automatically if not configured in
openclaw.json - Only channels actually set up appear in Flow/Overview visualizations
- Gateway auth theme fix
- Context inspector spec branch
- Various stability improvements
- Initial public release
- Flow visualization, Overview, Sessions, Crons, Usage, Logs, Memory, Transcripts tabs
- Telegram channel support
- Sub-agent tracking
- Cost tracking and budget alerts
- OTLP receiver (experimental)
- Full CLI with subcommands:
clawmetry start/stop/restart/status/connect/uninstall - Daemon support: launchd (macOS) + systemd (Linux) — auto-starts on login
- Architecture overview on startup matching clawmetry.com/how-it-works
clawmetry --helpandclawmetry help