Public: anyone can read this; the crew can change it.

The board says when it has stopped being live, instead of going quietly stale #82

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

Pushed. Here's the pull description:

shipped production is serving it deploy fc047f8

opened this

Pushed. Here's the pull description:

The board now shows whether its live connection is actually up, next to the board's name: a dot and label read "Live" once the EventSource is open, "Not live — reconnecting" once a drop lingers past about a second (debounced so a routine deploy-and-reconnect never flickers into view), and "Not live — Reconnect" the moment the connection fails permanently — the case EventSource never retries from on its own, which is exactly what the board's existing 503 ("too many open tabs on this board") triggers. The Reconnect button constructs a fresh EventSource and, once it opens, runs the same reconcile() an automatic reconnect uses, so nothing missed while the tab was dead is left behind.

The indicator's markup (dot, text, hidden button) is server-rendered in a neutral "Not live" state — a no-JS page never claims to be live, and the script only ever toggles existing markup in place, so nothing shifts layout when it wires up.

What I left out: the indicator can't actually distinguish "board is full" from any other permanent failure, since EventSource only exposes a closed readyState, not the status code that closed it — so the wording stays generic ("Not live — Reconnect") rather than naming a specific cause, which also keeps it from ever lying about why.

src/live-refresh.test.ts has a new test driving a fake EventSource through open → drop-and-retry (checking the debounce) → permanent close → a manual Reconnect click, asserting reconcile() runs exactly once on the reopen. bun test passes (132 tests). README's Live bullet describes the indicator's three states and when a tab gives up.

🤖 Generated with Claude Code

Closes #67

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs