Keep healthy live sections refreshing during partial outages #167

Closed
opened 2026-08-07 04:48:31 +00:00 by rockachopa · 0 comments
Member

Problem

The pooled live endpoint collects context, activity, and notifications independently, but any one section failure starts a snapshot-wide cooldown. During a notification-only outage, otherwise healthy My Work and activity data stop refreshing. Retained notification arrays can also be presented as fresh by the mobile client even when their section is stale.

Product slice

Implement section-isolated refresh/backoff while preserving the single /api/v1/live request and single-flight behavior. Healthy due sections must continue refreshing; only a failing section observes exponential cooldown. Expose per-section freshness and render section-accurate status in the dashboard.

Acceptance tests

  • Repeated failure in one section backs off only that section while due healthy sections continue to refresh.
  • Concurrent callers coalesce eligible section refreshes into one live refresh task.
  • Retained failed-section data is marked stale with independent retry timing; successful recovery clears only that section's failure state.
  • Mobile My Work, activity, and Updates status use their own section metadata, not payload shape or one global flag.
  • Existing cancellation safety, notification invalidation, no-store behavior, and the full suite remain green.

Non-duplication evidence

Issue #149 added global outage cooldown and retained partial data; it did not isolate backoff by section. Issues #131 and #139 added unified polling and stale-while-revalidate. No open issue, open PR, release, or recent commit covers per-section refresh eligibility/freshness.

## Problem The pooled live endpoint collects context, activity, and notifications independently, but any one section failure starts a snapshot-wide cooldown. During a notification-only outage, otherwise healthy My Work and activity data stop refreshing. Retained notification arrays can also be presented as fresh by the mobile client even when their section is stale. ## Product slice Implement section-isolated refresh/backoff while preserving the single `/api/v1/live` request and single-flight behavior. Healthy due sections must continue refreshing; only a failing section observes exponential cooldown. Expose per-section freshness and render section-accurate status in the dashboard. ## Acceptance tests - Repeated failure in one section backs off only that section while due healthy sections continue to refresh. - Concurrent callers coalesce eligible section refreshes into one live refresh task. - Retained failed-section data is marked stale with independent retry timing; successful recovery clears only that section's failure state. - Mobile My Work, activity, and Updates status use their own section metadata, not payload shape or one global flag. - Existing cancellation safety, notification invalidation, no-store behavior, and the full suite remain green. ## Non-duplication evidence Issue #149 added global outage cooldown and retained partial data; it did not isolate backoff by section. Issues #131 and #139 added unified polling and stale-while-revalidate. No open issue, open PR, release, or recent commit covers per-section refresh eligibility/freshness.
timmy was assigned by rockachopa 2026-08-07 04:48: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#167
No description provided.