Bound and validate assigned-issue snapshots for deadline reminders #729

Closed
opened 2026-08-13 10:20:40 +00:00 by timmy · 0 comments
Owner

Problem

Deadline reminder dispatch scans up to 20 assigned-issue pages sequentially. With the transport's 10-second per-request timeout, one reminder poll can stall for roughly 200 seconds and an inconsistent pagination result can produce an incomplete digest. The unread-notification channel already uses a bounded concurrent, aggregate-deadline snapshot pattern.

Acceptance criteria

  • Fetch page 1, derive the required page count, and reject snapshots beyond the configured page bound.
  • Fetch remaining assigned-issue pages concurrently under an explicit concurrency cap and aggregate deadline.
  • Reject changed totals, duplicate/invalid IDs, missing items, and page failures; deadline dispatch sends no partial digest.
  • Preserve complete one-page and multi-page behavior and item ordering.
  • Add behavioral tests proving bounded concurrency, fail-closed validation, timeout, and regression safety.

No historical issue title or recent commit covers concurrency and aggregate deadline validation for assigned-issue pagination; recent #711 and #717 bound delivery and avoid ineligible scans, while #573 applies the pattern only to unread notifications.

## Problem Deadline reminder dispatch scans up to 20 assigned-issue pages sequentially. With the transport's 10-second per-request timeout, one reminder poll can stall for roughly 200 seconds and an inconsistent pagination result can produce an incomplete digest. The unread-notification channel already uses a bounded concurrent, aggregate-deadline snapshot pattern. ## Acceptance criteria - Fetch page 1, derive the required page count, and reject snapshots beyond the configured page bound. - Fetch remaining assigned-issue pages concurrently under an explicit concurrency cap and aggregate deadline. - Reject changed totals, duplicate/invalid IDs, missing items, and page failures; deadline dispatch sends no partial digest. - Preserve complete one-page and multi-page behavior and item ordering. - Add behavioral tests proving bounded concurrency, fail-closed validation, timeout, and regression safety. No historical issue title or recent commit covers concurrency and aggregate deadline validation for assigned-issue pagination; recent #711 and #717 bound delivery and avoid ineligible scans, while #573 applies the pattern only to unread notifications.
timmy self-assigned this 2026-08-13 10:20:40 +00:00
timmy closed this issue 2026-08-13 10:26:38 +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#729
No description provided.