Undo accidental mobile update acknowledgements #649

Closed
opened 2026-08-12 12:19:50 +00:00 by timmy · 0 comments
Owner

Problem

Mobile update triage removes acknowledged conversations immediately, with no way to reverse an accidental tap. This affects Mark read & next, reaction acknowledgement, and bulk mark-read flows.

Slice

Add a bounded mark-unread API and a mobile-safe Undo action that restores the exact successfully acknowledged notification without repeating reactions or replies. Failed restoration must remain truthful and retryable.

Acceptance

  • Mark-unread validates a positive thread ID, calls Gitea to-status=unread, is bounded, and returns Cache-Control: no-store.
  • Foreground read/acknowledge exposes an accessible Undo action and restores the item/count on success.
  • Undo is single-flight and a failed restore remains retryable.
  • Mobile surface stays above the bottom dock and safe-area inset.
  • Focused and full suites pass.

Audit proof: all historical issue titles/bodies and recent commits were searched for undo/mark-unread behavior; related #135, #151, #351, #503, #545, and #561 only implement one-way acknowledgement.

## Problem Mobile update triage removes acknowledged conversations immediately, with no way to reverse an accidental tap. This affects Mark read & next, reaction acknowledgement, and bulk mark-read flows. ## Slice Add a bounded mark-unread API and a mobile-safe Undo action that restores the exact successfully acknowledged notification without repeating reactions or replies. Failed restoration must remain truthful and retryable. ## Acceptance - Mark-unread validates a positive thread ID, calls Gitea `to-status=unread`, is bounded, and returns `Cache-Control: no-store`. - Foreground read/acknowledge exposes an accessible Undo action and restores the item/count on success. - Undo is single-flight and a failed restore remains retryable. - Mobile surface stays above the bottom dock and safe-area inset. - Focused and full suites pass. Audit proof: all historical issue titles/bodies and recent commits were searched for undo/mark-unread behavior; related #135, #151, #351, #503, #545, and #561 only implement one-way acknowledgement.
timmy self-assigned this 2026-08-12 12:19:50 +00:00
timmy closed this issue 2026-08-12 12:37:13 +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#649
No description provided.