Make composer drafts preserve all segments and attachments across process death #90

Open
opened 2026-07-11 21:44:32 +00:00 by starsetbyte · 0 comments
Owner

Current gap

DraftEntity persists text, reply references, segments, and publish state, but the historical plan identifies missing durable restoration for thread segments beyond the first and attached image URIs.

Scope

  • Persist and restore every composer segment in order.
  • Persist attachment references and enough metadata to determine whether each attachment is still available.
  • Define cleanup behavior for removed, missing, or expired local files.
  • Preserve publish idempotency and avoid resurrecting stale drafts after account changes.

Acceptance criteria

  • A force-stop/process-death test restores a multi-segment draft with its attachments.
  • Missing attachment files produce an explicit recoverable state rather than a silent publish failure.
  • Drafts remain correctly scoped to the account and do not leak across logout/account changes.
  • Existing draft and idempotent-publish tests remain green.
## Current gap `DraftEntity` persists text, reply references, segments, and publish state, but the historical plan identifies missing durable restoration for thread segments beyond the first and attached image URIs. ## Scope - Persist and restore every composer segment in order. - Persist attachment references and enough metadata to determine whether each attachment is still available. - Define cleanup behavior for removed, missing, or expired local files. - Preserve publish idempotency and avoid resurrecting stale drafts after account changes. ## Acceptance criteria - A force-stop/process-death test restores a multi-segment draft with its attachments. - Missing attachment files produce an explicit recoverable state rather than a silent publish failure. - Drafts remain correctly scoped to the account and do not leak across logout/account changes. - Existing draft and idempotent-publish tests remain green.
Sign in to join this conversation.
No description provided.