-
released this
2026-05-09 14:47:54 +02:00 | 233 commits to main since this releasePlugin Lifecycle APIs
Full install/enable/disable/uninstall REST API with manifest validation and event logging.
Features:
- PluginLifecycleService — install() validates manifest first, enable(), disable(), uninstall()
- Every lifecycle action writes structured system log + fires SynapseEvent
- PluginController — POST /api/plugins/install, POST /{id}/enable, POST /{id}/disable, DELETE /{id}, GET list/detail
- Install rejects invalid manifests with 400 + error list
Next: v1.6.3-dev Store registry sync from store/registry.yml
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-05-09 14:46:55 +02:00 | 234 commits to main since this releasePlugin Manifest Parser and Validator
Parses and validates plugin manifests before install.
Features:
- PluginManifest record — fromMap() factory, typed fields: id, name, type, version, author, license, description, minSynapse, tags, raw
- ValidationResult record — valid flag + error list, ok()/fail() factories
- ManifestValidator — checks: id (required, lowercase-hyphen, max 64), name (required), type (required, must be CHANNEL/MODEL/SKILL/MCP), version (required, semver), author (required), description (max 500 chars)
Next: v1.6.2-dev Plugin install/enable/disable/uninstall APIs
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.5.9-hotfix - Fix @EnableAsync proxy conflict Pre-release
released this
2026-05-09 14:41:45 +02:00 | 235 commits to main since this release@EnableAsync JDK Proxy Conflict Fix
Backend failed to start after WebSocket and async were combined.
Error:
- ConversationWebSocketHandler injected as concrete class in WebSocketConfig
- @EnableAsync created JDK dynamic proxy — type mismatch at injection
- APPLICATION FAILED TO START
Fix:
- Changed @EnableAsync to @EnableAsync(proxyTargetClass = true)
- Forces CGLIB proxies — concrete class injection works correctly
Followup to v1.5.4-dev.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.6.0 - Realtime Runtime Stable
released this
2026-05-09 14:41:45 +02:00 | 235 commits to main since this releaseSYNAPSE 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
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.5.8-hotfix - Redis Streams API fix Pre-release
released this
2026-05-09 14:39:29 +02:00 | 236 commits to main since this releaseRedis Streams API Fix
Compilation error from wrong Spring Data Redis Stream API usage.
Error:
- RedisStreamPublisher lines 52+58: StreamRecords.newRecord().ofMap() returns MapRecord, not ObjectRecord
- Type variable K,V mismatch — Maven compilation failed
Fix:
- Replaced ObjectRecord construction with redisTemplate.opsForStream().add(streamKey, map) directly
- Removed unused ObjectRecord and StreamRecords imports
Followup to v1.5.2-dev.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-05-09 14:38:02 +02:00 | 237 commits to main since this releaseReconnect, Backoff, and Polling Fallback
SSE and WebSocket connections now survive disconnects with exponential backoff.
Features:
- reconnect.ts — connectWithBackoff() for SSE: exponential delay 1s→30s, max 10 retries, onFallback callback
- reconnect.ts — connectWsWithBackoff() for WebSocket: same backoff strategy
- App.vue updated to use reconnect helpers instead of raw EventSource/WebSocket
- liveConnected badge reflects fallback state after max retries
- wsConnected badge reflects WS open/close events
- Both streams cleaned up cleanly on unmount via stop() functions
Next: Docker Compose test, then v1.6.0 release
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-05-09 14:36:44 +02:00 | 238 commits to main since this releaseDashboard Streaming Conversation Updates
WebSocket-backed conversation event panel on the Overview tab.
Features:
- connectConversationStream() in api.ts — opens WebSocket to /ws/conversations
- ConversationStreamEvent interface for typed WS payloads
- Conversation Stream panel on Overview tab with LIVE/OFFLINE badge
- Stores up to 50 newest events, newest first
- WS connection opened on mount, closed on unmount
- wsConnected state tracks open/close callbacks
Next: v1.5.7-dev Reconnect, backoff, polling fallback
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.5.5-dev - Dashboard live log panel Pre-release
released this
2026-05-09 14:35:37 +02:00 | 239 commits to main since this releaseDashboard Live Log Panel
Logs tab now streams events live via SSE alongside historic log list.
Features:
- connectLogStream() in api.ts — opens EventSource to /api/logs/stream, parses "log" named events
- LiveLogEvent interface for typed SSE payloads
- Live Stream panel: shows up to 100 newest events, auto-trimmed, newest first
- Connection badge: CONNECTED (green) / DISCONNECTED (red)
- Historic panel: existing fetched logs remain below live stream
- EventSource closed on component unmount
Next: v1.5.6-dev Dashboard streaming conversation updates
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
released this
2026-05-09 14:34:23 +02:00 | 240 commits to main since this releaseWebSocket Endpoint for Conversation Events
WebSocket stream pushes conversation events to dashboard clients in real time.
Features:
- spring-boot-starter-websocket added to pom.xml
- ConversationWebSocketHandler — TextWebSocketHandler with ConcurrentHashMap session set
- Broadcasts: MESSAGE_SENT, MESSAGE_RECEIVED, CONVERSATION_STARTED, CONVERSATION_ENDED
- Self-cleaning: closed sessions removed on send failure
- WebSocketConfig — registers /ws/conversations with wildcard origin
- @Async @EventListener wired to SynapseSpringEvent bus
Next: v1.5.5-dev Dashboard live log panel
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v1.5.3-dev - SSE endpoint for live logs Pre-release
released this
2026-05-09 14:33:34 +02:00 | 241 commits to main since this releaseSSE Endpoint for Live Logs
Server-Sent Events stream pushes log events to dashboard clients in real time.
Features:
- SseLogBroadcaster — CopyOnWriteArrayList of SseEmitter, self-cleaning on timeout/error/complete
- Listens to LOG_WRITTEN SynapseSpringEvents via @Async @EventListener
- LogSseController — GET /api/logs/stream (text/event-stream)
- Events sent as named SSE event type "log" with JSON payload
- Non-fatal: failed sends remove emitter silently
Next: v1.5.4-dev WebSocket endpoint for conversation events
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads