Keep Find Work instant while its catalog refreshes #213

Closed
opened 2026-08-07 17:09:33 +00:00 by timmy · 0 comments
Owner

Problem

Find Work blocks on every expired catalog refresh even when a usable retained snapshot exists, and the bounded upstream scan loads up to ten pages serially. On slow or unavailable Gitea, a repeat mobile visit blanks the useful list and can hit the five-second endpoint deadline.

Vertical slice

  • Return retained available issues immediately with explicit stale/revalidating metadata while one background refresh runs.
  • Preserve retained cards and announce refresh/degraded state in the Find Work sheet.
  • Fetch known remaining search pages with bounded concurrency while preserving the ten-page cap, deduplication, ranking, and logical pagination.
  • Keep cold-start behavior bounded and retryable.

Acceptance

  • Expired retained results return without waiting for a blocked refresh; concurrent calls start one refresh.
  • Refresh success atomically updates the snapshot; failure retains usable cards.
  • Multi-page scans respect page/concurrency bounds and retain global rank/dedupe behavior.
  • Mobile Find Work keeps cards visible and exposes accessible refreshing/degraded status.
  • Focused and full suites pass.
## Problem Find Work blocks on every expired catalog refresh even when a usable retained snapshot exists, and the bounded upstream scan loads up to ten pages serially. On slow or unavailable Gitea, a repeat mobile visit blanks the useful list and can hit the five-second endpoint deadline. ## Vertical slice - Return retained available issues immediately with explicit stale/revalidating metadata while one background refresh runs. - Preserve retained cards and announce refresh/degraded state in the Find Work sheet. - Fetch known remaining search pages with bounded concurrency while preserving the ten-page cap, deduplication, ranking, and logical pagination. - Keep cold-start behavior bounded and retryable. ## Acceptance - Expired retained results return without waiting for a blocked refresh; concurrent calls start one refresh. - Refresh success atomically updates the snapshot; failure retains usable cards. - Multi-page scans respect page/concurrency bounds and retain global rank/dedupe behavior. - Mobile Find Work keeps cards visible and exposes accessible refreshing/degraded status. - Focused and full suites pass.
timmy self-assigned this 2026-08-07 17:09:33 +00:00
timmy closed this issue 2026-08-07 17:16: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#213
No description provided.