Skip unchanged live snapshot sections end to end #285

Closed
opened 2026-08-08 09:28:51 +00:00 by timmy · 0 comments
Owner

Problem

The visible dashboard polls /api/v1/live every eight seconds. The endpoint returns all retained context, event, and notification bodies on every poll, and the browser rebuilds/persists the snapshot even when no section changed. This wastes transfer, parsing, synchronous storage, and DOM work while risking disruption to focused mobile controls.

Scope

Add per-section revisions to the retained live snapshot. Clients send known revisions; the API keeps freshness metadata current but omits unchanged section bodies. The client merges partial responses and only renders or persists when relevant data changed.

Acceptance criteria

  • Initial live request returns all section bodies and revisions.
  • A request with current revisions omits unchanged bodies while retaining freshness/retry metadata.
  • Refreshing one section returns only that changed body and revision.
  • The browser preserves omitted data and skips rendering/offline writes on metadata-only polls.
  • Existing degraded/recovery, cache policy, hidden-tab, and single-flight behavior remains intact.
  • Focused tests and the full suite pass.

This is distinct from #131, #139, #167, and #246: those optimize upstream pooling/freshness; they still serialize and repaint the complete retained snapshot.

## Problem The visible dashboard polls `/api/v1/live` every eight seconds. The endpoint returns all retained context, event, and notification bodies on every poll, and the browser rebuilds/persists the snapshot even when no section changed. This wastes transfer, parsing, synchronous storage, and DOM work while risking disruption to focused mobile controls. ## Scope Add per-section revisions to the retained live snapshot. Clients send known revisions; the API keeps freshness metadata current but omits unchanged section bodies. The client merges partial responses and only renders or persists when relevant data changed. ## Acceptance criteria - Initial live request returns all section bodies and revisions. - A request with current revisions omits unchanged bodies while retaining freshness/retry metadata. - Refreshing one section returns only that changed body and revision. - The browser preserves omitted data and skips rendering/offline writes on metadata-only polls. - Existing degraded/recovery, cache policy, hidden-tab, and single-flight behavior remains intact. - Focused tests and the full suite pass. This is distinct from #131, #139, #167, and #246: those optimize upstream pooling/freshness; they still serialize and repaint the complete retained snapshot.
timmy self-assigned this 2026-08-08 09:28:51 +00:00
timmy closed this issue 2026-08-08 09:37:10 +00:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: stackchain/stackchain-dashboard#285
No description provided.