mirror of
https://github.com/turnstonelabs/turnstone.git
synced 2026-08-12 23:12:23 -06:00
22c905b2ec
The global stream's manual reconnects were pinned cursorless because a stale cursor on the reborn ring drew replay_ok-empty with no snapshot (the ghost-roster shape). With epoch-tagged ids that shape is unreachable — a stale cursor now draws replay_truncated + a fresh node_snapshot — so app.js captures e.lastEventId (MessageEvent, house guard form), presents it via ?last_event_id= on manual reconnects, and clears it where the record dies: the replay_truncated handler and onLogout. The cursor stays an opaque string end to end; the tripwire that pinned cursorlessness now pins the capture, the guarded query-param presentation, and the never-parse-numerically discipline instead.