From 73f4e4009bfcca9d281aa1cddce60bfd38d4c5f0 Mon Sep 17 00:00:00 2001 From: Ryan Hamamura <58859899+ryanhamamura@users.noreply.github.com> Date: Wed, 14 Jan 2026 19:02:44 -1000 Subject: [PATCH] Always sync full state when SSE connects Previously only called Sync() on SSE reconnect (detected via last-event-id header). This caused issues when application code registered contexts for updates before the SSE connection was established - patches sent to patchChan could be dropped. Now always call Sync() when SSE connects, ensuring clients receive the full current state regardless of what happened before the connection was established. Fixes #2 --- via.go | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/via.go b/via.go index 5ecd84b..516f339 100644 --- a/via.go +++ b/via.go @@ -408,10 +408,6 @@ func New() *V { } v.mux.HandleFunc("GET /_sse", func(w http.ResponseWriter, r *http.Request) { - isReconnect := false - if r.Header.Get("last-event-id") == "via" { - isReconnect = true - } var sigs map[string]any _ = datastar.ReadSignals(r, &sigs) cID, _ := sigs["via-ctx"].(string) @@ -436,11 +432,7 @@ func New() *V { v.logDebug(c, "SSE connection established") go func() { - if isReconnect || v.cfg.DevMode { - c.Sync() - return - } - c.SyncSignals() + c.Sync() }() for {