Preserve queued screenshots when editing offline captures #475

Closed
opened 2026-08-10 10:29:32 +00:00 by timmy · 0 comments
Owner

Problem

After #473 moved queued screenshot bytes from localStorage into IndexedDB, reopening a queued capture restores only {filename, contentType, stored:true}. The attachment controller treats missing data as empty, so editing only issue text can silently strip the screenshot before delivery.

User impact

A mobile operator can queue a screenshot-backed issue offline, reopen it to correct text or planning metadata, and lose the visual evidence without warning.

Acceptance criteria

  • Reloading and editing a queued screenshot capture hydrates its bytes from IndexedDB before the editor opens.
  • Saving text-only edits preserves the original screenshot bytes in IndexedDB and keeps bytes out of localStorage.
  • Replacing or explicitly removing the screenshot updates durable state correctly.
  • IndexedDB retrieval failure blocks destructive save and shows retry guidance.
  • Hydration uses keyed lookup rather than deserializing every queued screenshot.
  • Focused behavioral tests and the full suite pass.
## Problem After #473 moved queued screenshot bytes from localStorage into IndexedDB, reopening a queued capture restores only `{filename, contentType, stored:true}`. The attachment controller treats missing `data` as empty, so editing only issue text can silently strip the screenshot before delivery. ## User impact A mobile operator can queue a screenshot-backed issue offline, reopen it to correct text or planning metadata, and lose the visual evidence without warning. ## Acceptance criteria - Reloading and editing a queued screenshot capture hydrates its bytes from IndexedDB before the editor opens. - Saving text-only edits preserves the original screenshot bytes in IndexedDB and keeps bytes out of localStorage. - Replacing or explicitly removing the screenshot updates durable state correctly. - IndexedDB retrieval failure blocks destructive save and shows retry guidance. - Hydration uses keyed lookup rather than deserializing every queued screenshot. - Focused behavioral tests and the full suite pass.
timmy self-assigned this 2026-08-10 10:29:32 +00:00
timmy closed this issue 2026-08-10 10:36:16 +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#475
No description provided.