Batch queued Today and Later planning edits #375

Closed
opened 2026-08-09 05:55:06 +00:00 by rockachopa · 0 comments
Member

Product gap

Today and Later reconnect drains currently perform one initial GET followed by one PATCH per queued edit. Fifty offline edits therefore require 51 dashboard requests, 51 upstream identity confirmations, and 50 SQLite write transactions, delaying mobile convergence on intermittent connections.

Vertical slice

Accept bounded ordered batches (maximum 50 operations) on the Today and Later PATCH APIs, apply each batch in one SQLite transaction after one confirmed identity lookup, and return the authoritative snapshot with accepted, duplicate, and rejected operation IDs. Clients submit pending batches directly, delete only explicit receipts, and drain work queued in flight in a later batch.

Acceptance

  • Up to 50 queued Today or Later edits drain with one PATCH per batch and no preliminary GET.
  • One batch uses one account confirmation and one SQLite transaction.
  • Full and partial replay is idempotent and revisions do not increment twice.
  • A Today capacity conflict rejects only that operation while later valid operations continue in order.
  • Failure before commit acknowledges nothing and leaves the durable client queue intact.
  • Edits queued during an in-flight batch are preserved and subsequently drained.
  • Batch size, operation schema, CSRF, and account isolation are enforced.

This behavior is absent from all 190 historical issue titles and recent planning-sync commits through #374.

## Product gap Today and Later reconnect drains currently perform one initial GET followed by one PATCH per queued edit. Fifty offline edits therefore require 51 dashboard requests, 51 upstream identity confirmations, and 50 SQLite write transactions, delaying mobile convergence on intermittent connections. ## Vertical slice Accept bounded ordered batches (maximum 50 operations) on the Today and Later PATCH APIs, apply each batch in one SQLite transaction after one confirmed identity lookup, and return the authoritative snapshot with accepted, duplicate, and rejected operation IDs. Clients submit pending batches directly, delete only explicit receipts, and drain work queued in flight in a later batch. ## Acceptance - Up to 50 queued Today or Later edits drain with one PATCH per batch and no preliminary GET. - One batch uses one account confirmation and one SQLite transaction. - Full and partial replay is idempotent and revisions do not increment twice. - A Today capacity conflict rejects only that operation while later valid operations continue in order. - Failure before commit acknowledges nothing and leaves the durable client queue intact. - Edits queued during an in-flight batch are preserved and subsequently drained. - Batch size, operation schema, CSRF, and account isolation are enforced. This behavior is absent from all 190 historical issue titles and recent planning-sync commits through #374.
timmy was assigned by rockachopa 2026-08-09 05:55:06 +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#375
No description provided.