Find photo-only reply drafts from mobile My Work #1396

Closed
opened 2026-08-25 12:51:44 +00:00 by timmy · 0 comments
Owner

User problem

Photo-only replies already survive mobile interruptions in account-bound IndexedDB, but the My Work Drafts lane cannot discover them. An operator must remember and reopen the exact issue, pull request, update, or Search result, so valuable field evidence can remain stranded.

Evidence and non-duplication

  • frontend/conversation-reply-draft-store.js and frontend/search-reply-draft-store.js expose only target-addressed save/load/remove; neither can inventory the confirmed account's records.
  • frontend/drafts.js and frontend/dashboard.js discover localStorage composer drafts but never read these IndexedDB stores.
  • Closed #211 added the Drafts lane for text formats; closed #957 and #963 preserve photo bundles at their original surfaces. This slice connects those shipped capabilities rather than repeating either behavior.
  • All 701 historical issue titles and recent main commits were checked; none makes photo-only reply records discoverable from My Work.

User outcome

The mobile Drafts queue shows account-owned photo-only replies, identifies their target and photo count, and lets the operator reopen the canonical conversation/Search surface or discard exactly that saved bundle.

Acceptance

  • Both conversation and Search photo stores list only valid records owned by the confirmed account, newest first, without loading photo blobs into draft-card metadata.
  • My Work counts and renders photo-only draft cards after identity confirmation, while corruption or unavailable IndexedDB cannot break the queue.
  • Resume opens the exact canonical issue, pull, update, or Search preview so the existing restore path hydrates the photos.
  • Discard confirmation deletes only the selected photo bundle and refreshes the count.
  • Save and successful send refresh discovery without duplicate cards when a text draft exists for the same target.
  • Focused behavioral tests, full suite, and packaged mobile journey pass.
## User problem Photo-only replies already survive mobile interruptions in account-bound IndexedDB, but the My Work Drafts lane cannot discover them. An operator must remember and reopen the exact issue, pull request, update, or Search result, so valuable field evidence can remain stranded. ## Evidence and non-duplication - `frontend/conversation-reply-draft-store.js` and `frontend/search-reply-draft-store.js` expose only target-addressed `save/load/remove`; neither can inventory the confirmed account's records. - `frontend/drafts.js` and `frontend/dashboard.js` discover localStorage composer drafts but never read these IndexedDB stores. - Closed #211 added the Drafts lane for text formats; closed #957 and #963 preserve photo bundles at their original surfaces. This slice connects those shipped capabilities rather than repeating either behavior. - All 701 historical issue titles and recent main commits were checked; none makes photo-only reply records discoverable from My Work. ## User outcome The mobile Drafts queue shows account-owned photo-only replies, identifies their target and photo count, and lets the operator reopen the canonical conversation/Search surface or discard exactly that saved bundle. ## Acceptance - Both conversation and Search photo stores list only valid records owned by the confirmed account, newest first, without loading photo blobs into draft-card metadata. - My Work counts and renders photo-only draft cards after identity confirmation, while corruption or unavailable IndexedDB cannot break the queue. - Resume opens the exact canonical issue, pull, update, or Search preview so the existing restore path hydrates the photos. - Discard confirmation deletes only the selected photo bundle and refreshes the count. - Save and successful send refresh discovery without duplicate cards when a text draft exists for the same target. - Focused behavioral tests, full suite, and packaged mobile journey pass.
timmy self-assigned this 2026-08-25 12:51:44 +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#1396
No description provided.