Skip to content

page-state

Provenance

  • Source: .spec/spexcode/spec-dashboard/dashboard-ui/review-surfaces/review-chrome/page-state/spec.md
  • Source SHA-256: f3052c9d2a4f6a044a9a128bbb2ef9f844cb90e18cd9e9fa1d7d6dda7ea831ba

page-state

The browser's review client fetches exactly one server page for the route's committed q+page, drops stale responses, exposes loading/failure distinctly, and refreshes the same request after writes, board frames, or the bounded cold interval. The loading state belongs to a NEW request identity (domain/q/page/view) only: a same-request refresh — a board delta, the cold poll, a write's reload, a re-enable on return from a detail — runs quietly behind the painted rows, and an answer whose revision matches the shown one repaints nothing. It owns no item matcher and no private filter/page state: the hash route is replayed on every Back/Forward/direct open, while [[paged-review]] returns the source snapshot and current slice. Concurrent consumers or React's development remount join one in-flight request for the identical endpoint; they do not double-pay the same page bytes. A later navigation may request that page again because it is a new user action, not a hidden app-resident row cache.

The refresh trigger is an identity-bearing source signal, not a render-shaped container default: a cold lightweight review shell with no board data must remain quiet after its first answer, while the full shell may refresh on the board inputs the page actually depends on. The first direct review request waits for the first atomic [[review-snapshot]] publication. Once a generation exists, Issues and trunk Evals read it without joining a full graph flight already in progress: the published rows remain a valid answer until a later page refresh observes a replacement generation.

The shared page-window projection yields the GitHub Issues number rhythm: all pages for a short set, a leading or trailing eight-page window near an edge, and two edge pages around ellipses for a large middle. It never changes navigation itself; [[review-chrome]] renders the projection as real anchors.