Recover the mobile workspace after a transient load failure #1124

Closed
opened 2026-08-19 09:58:31 +00:00 by timmy · 0 comments
Owner

Evidence

The mandatory workspace bootstrap currently performs one feature-chunk request and throws on failure. frontend/workspace-bootstrap.js then requires a whole-page reload, even when connectivity immediately recovers. Because frontend/dashboard.js awaits this bootstrap before controllers initialize, a transient mobile network failure leaves the rendered dashboard inert. The feature loader already clears failed pending requests, so an in-place retry is safe.

No open issue covers this flow. Historical #996/#997 added the failure message, #1116/#1117 parallelized the successful transfer, and #529/#530 addressed IndexedDB startup rather than mandatory script delivery.

User outcome

A cold PWA start that briefly loses connectivity recovers in place. Persistent failure exposes a touch-safe, accessible Retry workspace action instead of forcing a full navigation reload.

Acceptance

  • Retry one transient workspace failure after a short bounded delay and initialize without document reload.
  • Stop after two automatic attempts; never create a request storm.
  • Persistent failure exposes a focusable 44px Retry workspace button with truthful status.
  • Manual Retry and reconnect are single-flight and retry in place.
  • Success hides the action, clears status, and initializes dashboard controllers exactly once.
  • Normal startup still transfers the workspace exactly once.
  • Focused behavioral tests, full suite, and packaged mobile release journey pass.
## Evidence The mandatory workspace bootstrap currently performs one feature-chunk request and throws on failure. `frontend/workspace-bootstrap.js` then requires a whole-page reload, even when connectivity immediately recovers. Because `frontend/dashboard.js` awaits this bootstrap before controllers initialize, a transient mobile network failure leaves the rendered dashboard inert. The feature loader already clears failed pending requests, so an in-place retry is safe. No open issue covers this flow. Historical #996/#997 added the failure message, #1116/#1117 parallelized the successful transfer, and #529/#530 addressed IndexedDB startup rather than mandatory script delivery. ## User outcome A cold PWA start that briefly loses connectivity recovers in place. Persistent failure exposes a touch-safe, accessible Retry workspace action instead of forcing a full navigation reload. ## Acceptance - Retry one transient workspace failure after a short bounded delay and initialize without document reload. - Stop after two automatic attempts; never create a request storm. - Persistent failure exposes a focusable 44px Retry workspace button with truthful status. - Manual Retry and reconnect are single-flight and retry in place. - Success hides the action, clears status, and initializes dashboard controllers exactly once. - Normal startup still transfers the workspace exactly once. - Focused behavioral tests, full suite, and packaged mobile release journey pass.
timmy self-assigned this 2026-08-19 09:58:31 +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#1124
No description provided.