• v1.6.0 8fa2450537

    FTMahringer released this 2026-05-09 14:41:45 +02:00 | 235 commits to main since this release

    SYNAPSE v1.6.0 — Realtime Runtime

    Event bus, Redis Streams fanout, SSE live logs, WebSocket conversation stream, and reconnect behavior.


    Changelog

    v1.5.1-dev — Internal Event Publisher Abstraction

    • SynapseEvent record + SynapseEventType enum (10 event types)
    • EventPublisher interface + InMemoryEventPublisher via Spring ApplicationEventPublisher
    • EventSubscriber interface with accepts() filter
    • SystemLogService fires LOG_WRITTEN event on every write

    v1.5.2-dev — Redis Streams Log Fanout

    • spring-boot-starter-data-redis added
    • RedisStreamPublisher fans out to synapse:events and synapse:logs streams
    • REDIS_HOST/REDIS_PORT env vars, docker-compose wired
    • @EnableAsync added to SynapseApplication

    v1.5.3-dev — SSE Endpoint for Live Logs

    • SseLogBroadcaster with CopyOnWriteArrayList emitter management
    • GET /api/logs/stream (text/event-stream)
    • Self-cleaning on timeout/error/complete

    v1.5.4-dev — WebSocket Endpoint for Conversation Events

    • spring-boot-starter-websocket added
    • ConversationWebSocketHandler broadcasts MESSAGE_SENT/RECEIVED, CONVERSATION_STARTED/ENDED
    • WebSocketConfig at /ws/conversations

    v1.5.5-dev — Dashboard Live Log Panel

    • connectLogStream() with named "log" SSE events
    • Live Stream panel with CONNECTED/DISCONNECTED badge
    • Up to 100 events, newest first

    v1.5.6-dev — Dashboard Streaming Conversation Updates

    • connectConversationStream() WebSocket client
    • Conversation Stream panel with LIVE/OFFLINE badge on Overview tab

    v1.5.7-dev — Reconnect, Backoff, Polling Fallback

    • reconnect.ts: connectWithBackoff() for SSE, connectWsWithBackoff() for WebSocket
    • Exponential backoff 1s→30s, max 10 retries
    • Clean stop() functions, unmount cleanup

    v1.5.8-hotfix — Redis Streams API Fix

    • Fixed MapRecord/ObjectRecord type mismatch in RedisStreamPublisher

    v1.5.9-hotfix — @EnableAsync Proxy Fix

    • Fixed JDK proxy conflict: @EnableAsync(proxyTargetClass = true)

    Exit Criteria Met

    • Logs stream live to dashboard via SSE
    • Conversation events stream via WebSocket
    • Transport failures handled with backoff — no ECHO fallback triggered

    Next milestone: v1.7.0 — Plugin and Store Runtime

    Downloads