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

    Projects

    Status

    Backlog

    Status

    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions