Split from #2722. Today src/web/pages/boards-view.ts:57 gives every panel data-live="board.none" plus data-live-every, so boards refetch on a timer (arm() in src/web/client.ts).
Done looks like:
[ ] Each board panel carries data-live patterns for the events its query reads (for example run., pull., check., issue., scoped by data-live-repo where the panel is one repository's). It no longer carries data-live-every.
[ ] A burst of events still causes one fetch per panel (the existing MIN_GAP debounce), and /boards/:slug/live keeps its etag, so an unchanged panel costs a 304.
[ ] Test: a board page's panels carry no data-live-every, and each carries a non-empty data-live. Keep test/board*.test.ts green; the last pull on #2722 failed "the board > puts the crew's credentials first and the unscoped account apart, with the spend", so run it before you push.
Files: src/web/pages/boards-view.ts, a test under test/.
Split from #2722. Today
src/web/pages/boards-view.ts:57gives every paneldata-live="board.none"plusdata-live-every, so boards refetch on a timer (arm()insrc/web/client.ts).Done looks like:
data-livepatterns for the events its query reads (for examplerun.,pull.,check.,issue., scoped bydata-live-repowhere the panel is one repository's). It no longer carriesdata-live-every./boards/:slug/livekeeps its etag, so an unchanged panel costs a 304.data-live-every, and each carries a non-emptydata-live. Keeptest/board*.test.tsgreen; the last pull on #2722 failed "the board > puts the crew's credentials first and the unscoped account apart, with the spend", so run it before you push.Files:
src/web/pages/boards-view.ts, a test undertest/.