Keep mobile Today and Later planning available during refresh outages #289

Closed
opened 2026-08-08 10:11:18 +00:00 by timmy · 0 comments
Owner

Problem

Local Today/Later planning is incorrectly coupled to fresh upstream identity. During a retained stale or revalidating snapshot, visible work still has a trustworthy authenticated user.login, but adding it to Today or Later silently fails or reports the false message “already in Today.”

User flow

An authenticated operator opens My Work during a slow/failed refresh, plans a visible item into Today or Later, sees the account-scoped queue update immediately, and can start the ordered Today session. Only upstream mutations/outbox flushing remain freshness-gated.

Acceptance criteria

  • Retained non-error context with user.login enables account-scoped local Today/Later planning while stale or revalidating.
  • Missing/error identity disables planning with explicit feedback and never writes an unscoped key.
  • Today distinguishes added, duplicate, storage-unavailable, and identity-unavailable outcomes.
  • Later returns and displays explicit deferred/unavailable/invalid outcomes.
  • Stale-to-fresh transitions preserve queue membership/order without duplicates; account isolation remains intact.
  • Upstream mutations and outbox flushing remain gated on fresh confirmed identity.
  • Behavioral tests cover the flow; rendered mobile checks pass at 320x568 and 390x844 with 44px controls and no horizontal overflow.

Evidence / non-duplication

frontend/index.html currently assigns confirmedOwnerLogin only for fresh context, while today-work.js and later-work.js require it for localStorage. Issue #279 introduced the Today queue but did not cover retained-context planning. Historical issue titles through #287 and recent commits contain no stale-snapshot local-planning fix.

## Problem Local Today/Later planning is incorrectly coupled to fresh upstream identity. During a retained stale or revalidating snapshot, visible work still has a trustworthy authenticated `user.login`, but adding it to Today or Later silently fails or reports the false message “already in Today.” ## User flow An authenticated operator opens My Work during a slow/failed refresh, plans a visible item into Today or Later, sees the account-scoped queue update immediately, and can start the ordered Today session. Only upstream mutations/outbox flushing remain freshness-gated. ## Acceptance criteria - Retained non-error context with `user.login` enables account-scoped local Today/Later planning while stale or revalidating. - Missing/error identity disables planning with explicit feedback and never writes an unscoped key. - Today distinguishes added, duplicate, storage-unavailable, and identity-unavailable outcomes. - Later returns and displays explicit deferred/unavailable/invalid outcomes. - Stale-to-fresh transitions preserve queue membership/order without duplicates; account isolation remains intact. - Upstream mutations and outbox flushing remain gated on fresh confirmed identity. - Behavioral tests cover the flow; rendered mobile checks pass at 320x568 and 390x844 with 44px controls and no horizontal overflow. ## Evidence / non-duplication `frontend/index.html` currently assigns `confirmedOwnerLogin` only for fresh context, while `today-work.js` and `later-work.js` require it for localStorage. Issue #279 introduced the Today queue but did not cover retained-context planning. Historical issue titles through #287 and recent commits contain no stale-snapshot local-planning fix.
timmy self-assigned this 2026-08-08 10:11:18 +00:00
timmy closed this issue 2026-08-08 10:22:07 +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#289
No description provided.