Share one cold-launch live snapshot across progressive Human Gates and My Work #1425

Closed
opened 2026-08-26 08:36:16 +00:00 by timmy · 0 comments
Owner

Problem

A cold #/my-work/human-gates launch starts independent revisionless api/v1/live requests in progressive-my-work.js and progressive-human-gates.js. The full live payload is transferred and parsed twice before dashboard hydration, increasing latency and allowing identity/snapshot generations to diverge. Existing #1405 only handed My Work's snapshot to dashboard hydration; #1419 introduced the independent Human Gates identity request.

Vertical slice

Add a page-lifetime, retryable single-flight live snapshot broker. Progressive My Work and Human Gates share its request; dashboard hydration adopts its result. Preserve independent client cancellation, revisioned polling, truthful error recovery, and dependency injection. Package it in the service worker/release bundle.

Acceptance

  • A cold Human Gates deep link emits exactly one revisionless /api/v1/live request.
  • My Work and Human Gates consume the same snapshot/identity while gate list/detail each load once.
  • Dashboard hydration adopts the pending/completed shared snapshot without a replacement revisionless request.
  • A failed flight is not cached; retry starts exactly one new shared request.
  • Stopping one progressive client does not abort the request needed by the other.
  • Focused and full tests pass, including packaged mobile request-count coverage.

Implementation will use strict RED-GREEN-REFACTOR and close this issue via PR.

## Problem A cold `#/my-work/human-gates` launch starts independent revisionless `api/v1/live` requests in `progressive-my-work.js` and `progressive-human-gates.js`. The full live payload is transferred and parsed twice before dashboard hydration, increasing latency and allowing identity/snapshot generations to diverge. Existing #1405 only handed My Work's snapshot to dashboard hydration; #1419 introduced the independent Human Gates identity request. ## Vertical slice Add a page-lifetime, retryable single-flight live snapshot broker. Progressive My Work and Human Gates share its request; dashboard hydration adopts its result. Preserve independent client cancellation, revisioned polling, truthful error recovery, and dependency injection. Package it in the service worker/release bundle. ## Acceptance - A cold Human Gates deep link emits exactly one revisionless `/api/v1/live` request. - My Work and Human Gates consume the same snapshot/identity while gate list/detail each load once. - Dashboard hydration adopts the pending/completed shared snapshot without a replacement revisionless request. - A failed flight is not cached; retry starts exactly one new shared request. - Stopping one progressive client does not abort the request needed by the other. - Focused and full tests pass, including packaged mobile request-count coverage. Implementation will use strict RED-GREEN-REFACTOR and close this issue via PR.
timmy self-assigned this 2026-08-26 08:36:16 +00:00
timmy closed this issue 2026-08-26 09:31:19 +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#1425
No description provided.