Depends on #28.
The React webui watches a run by polling every 3 seconds (webui/frontend/src/context/GenesisContext.tsx:267, setInterval(refreshData, 3000)). Replace with Datastar's native model: one SSE connection per viewer, server pushes fragments when something actually changes.
Scope
Definition of done
Open a run page while an evolution is executing: new generations appear without any client-side timer, and a second browser tab shows the same updates from the same server poller.
Depends on #28.
The React webui watches a run by polling every 3 seconds (
webui/frontend/src/context/GenesisContext.tsx:267,setInterval(refreshData, 3000)). Replace with Datastar's native model: one SSE connection per viewer, server pushes fragments when something actually changes.Scope
data-on-loadDefinition of done
Open a run page while an evolution is executing: new generations appear without any client-side timer, and a second browser tab shows the same updates from the same server poller.