Status
The old #127 umbrella grouped EventSource with WebSockets as a permanent won't-fix. A later architecture audit corrected that assumption: MacSurf's fetchers already deliver response data progressively and the JS fetch arena can receive repeated data callbacks. The main known blocker is that the ordinary no-progress timeout would terminate a legitimately idle SSE stream.
EventSource is therefore tractable independently of WebSockets and deserves its own issue.
V1 scope
new EventSource(url) using the existing HTTP/HTTPS fetch path.
text/event-stream line parser for data, event, id, and retry fields.
- dispatch
open, named/default message events, and error.
- retain/reconnect using last-event-id and retry delay.
- bypass or adapt the normal short no-progress timeout for an established SSE stream without weakening ordinary request timeout behavior.
close() and navigation/realm teardown release the connection.
Acceptance
A controlled endpoint sends several events with an idle gap longer than the normal request timeout; MacSurf stays connected, delivers the events once/in order, reconnects with last-event-id after a forced disconnect, and closes cleanly on navigation. Hardware verify on the G3.
WebSockets remain separately not planned unless the transport architecture changes.
Status
The old #127 umbrella grouped EventSource with WebSockets as a permanent won't-fix. A later architecture audit corrected that assumption: MacSurf's fetchers already deliver response data progressively and the JS fetch arena can receive repeated data callbacks. The main known blocker is that the ordinary no-progress timeout would terminate a legitimately idle SSE stream.
EventSource is therefore tractable independently of WebSockets and deserves its own issue.
V1 scope
new EventSource(url)using the existing HTTP/HTTPS fetch path.text/event-streamline parser fordata,event,id, andretryfields.open, named/default message events, anderror.close()and navigation/realm teardown release the connection.Acceptance
A controlled endpoint sends several events with an idle gap longer than the normal request timeout; MacSurf stays connected, delivers the events once/in order, reconnects with last-event-id after a forced disconnect, and closes cleanly on navigation. Hardware verify on the G3.
WebSockets remain separately not planned unless the transport architecture changes.