What's New
Real-time Log Streaming (NATS + SSE)
- Realtime bots now stream logs live via NATS → SSE — no more manual refreshing
- Connection status indicator shows "Live" when streaming is active
- Automatic fallback to REST polling after 4s if SSE fails to connect
Scheduled Bot Polling Fix
- Scheduled bots now correctly use REST polling instead of broken SSE streaming
shouldUseLogStreaming()utility determines the right mode based on bot config type- Neither hook fires until the bot type is known, avoiding unnecessary requests
Log Console Improvements
- Pagination with 2000-entry buffer cap and "Load Earlier" support
- Fetch-based SSE replaces EventSource for authenticated streaming
- Hardened hook lifecycle: fixed stale closures, reconnection, and cleanup leaks
Runtime & API Hardening
- Chunked log reads on newline boundaries to preserve log lines
- Idempotent NATS stream setup, Result-based error flow
- Safe fan-out writes, bot ID allowlisting, UTC dates in SSE
- Nil-guard publish, drain on close, credential redaction
What's Changed
- feat: real-time bot log streaming via NATS + SSE by @alexanderwanyoike in #139
- Fix: Scheduled bots use polling instead of SSE streaming by @alexanderwanyoike in #150
- Release: Real-time bot log streaming via NATS + SSE by @alexanderwanyoike in #149
Full Changelog: v1.6.2...v1.7.0