Skip to content

Offline write queue (notes + mark-as-read) #125

@fboucher

Description

@fboucher

Parent PRD

#110

Depends on

#124 (offline read mode must be in place)

Summary

All write operations (create note, edit note, mark post as read) made while offline are queued via IsPendingSync = true and replayed in order when connectivity is restored. Soft-delete support included.

Write operations to queue

  • Create note (new Note with IsPendingSync = true)
  • Edit note (updated Note with IsPendingSync = true, DateModified = UtcNow)
  • Mark post as read (Post with is_read = true, IsPendingSync = true, DateModified = UtcNow)
  • Delete note (soft-delete: IsDeleted = true, IsPendingSync = true)

Queue behaviour

  • Writes are accepted immediately and stored in SQLite
  • Order of writes preserved (by DateModified)
  • User sees their changes instantly in the UI (optimistic local state)

Acceptance Criteria

  • Create note while offline → stored locally with IsPendingSync = true
  • Edit note while offline → stored locally with updated DateModified
  • Mark-as-read while offline → stored locally with IsPendingSync = true
  • Delete note while offline → soft-deleted locally (IsDeleted = true, IsPendingSync = true)
  • UI reflects changes immediately without waiting for sync
  • Pending items visible via ILocalDataService.GetPendingSyncPostsAsync/NotesAsync()

Stories from PRD

User stories 4, 5, 6, 18

Metadata

Metadata

Assignees

No one assigned

    Labels

    apppending-epicFinished but waiting for epic branch to merge

    Projects

    Status

    pending

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions