- ConnNote.vue: a status strip for the WebSocket-backed panels (page and
banner editors, analytics view) — "connecting…" while the socket is
pending (the staggered slot included), "reconnecting in ~N s…" during
backoff, hidden once open. A pending/lost socket no longer reads as a
silently empty or stale panel.
- PageEditor/BannerEditor: CodeMirror stays non-editable until the
page/banner doc has been accepted — typing before it would be clobbered
by the accept. A mere disconnect keeps the editor live: text stashes
and pending saves flush on reconnect.