Read and triage unread updates inside mobile My Work #151

Closed
opened 2026-08-07 00:22:51 +00:00 by timmy · 0 comments
Owner

Problem

Unread update cards can only deep-link to Gitea or be marked read. On mobile, users must leave the dashboard to inspect the latest comment, then return and recover their inbox position.

Vertical slice

Add a bounded notification-detail API and an in-dashboard mobile reader that displays sanitized subject/latest-comment context. Add Mark read & next so users can triage consecutive updates without leaving My Work.

Acceptance criteria

  • Tapping Read update opens an in-dashboard detail sheet without changing read state.
  • Detail includes subject title/repository/type and latest-comment author, timestamp, and body with a safe Gitea fallback link.
  • Keep unread closes without mutation; Mark read & next acknowledges only the current thread and advances to the next visible unread update.
  • The final update closes the reader and announces that the inbox is cleared.
  • Loading, malformed upstream data, timeout, and mark-read failure remain retryable without losing the current item.
  • Detail responses are bounded, sanitized, and Cache-Control: no-store.
  • At 320px width, content wraps without horizontal page overflow and actions remain at least 44px.
  • Behavioral tests are written first and the full suite passes.

This is distinct from #133 (notification cards/deep links), #135 (single acknowledgement), #141 (bulk acknowledgement), and #147 (pagination): none retrieves or renders notification content or advances through updates in-app.

## Problem Unread update cards can only deep-link to Gitea or be marked read. On mobile, users must leave the dashboard to inspect the latest comment, then return and recover their inbox position. ## Vertical slice Add a bounded notification-detail API and an in-dashboard mobile reader that displays sanitized subject/latest-comment context. Add **Mark read & next** so users can triage consecutive updates without leaving My Work. ## Acceptance criteria - Tapping **Read update** opens an in-dashboard detail sheet without changing read state. - Detail includes subject title/repository/type and latest-comment author, timestamp, and body with a safe Gitea fallback link. - **Keep unread** closes without mutation; **Mark read & next** acknowledges only the current thread and advances to the next visible unread update. - The final update closes the reader and announces that the inbox is cleared. - Loading, malformed upstream data, timeout, and mark-read failure remain retryable without losing the current item. - Detail responses are bounded, sanitized, and `Cache-Control: no-store`. - At 320px width, content wraps without horizontal page overflow and actions remain at least 44px. - Behavioral tests are written first and the full suite passes. This is distinct from #133 (notification cards/deep links), #135 (single acknowledgement), #141 (bulk acknowledgement), and #147 (pagination): none retrieves or renders notification content or advances through updates in-app.
timmy closed this issue 2026-08-07 00:36:32 +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#151
No description provided.