aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/client/sync/conflict.test.ts
AgeCommit message (Collapse)Author
2025-12-31feat(crdt): replace LWW conflict resolution with Automerge mergensfisis
The ConflictResolver now defaults to CRDT strategy which uses Automerge to merge local and server documents during sync conflicts. This provides conflict-free resolution that preserves changes from both sides. Key changes: - Add CRDT merge methods for all entity types (deck, card, note, etc.) - Update resolve methods to accept optional CRDT binary data - Fall back to server_wins when CRDT data is unavailable or invalid - Add comprehensive tests for CRDT conflict resolution scenarios 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31feat(schema): make note_id and is_reversed NOT NULLnsfisis
All cards now require note association - legacy card support removed. This aligns with the note-based card architecture introduced in Phase 8. - Add database migration for NOT NULL constraints - Update client Dexie schema to version 3 - Remove LegacyCardItem component and legacy card handling - Update sync schemas and type definitions - Update all tests to use note-based cards 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31feat(sync): add sync support for note-related entitiesnsfisis
Extend the sync system to handle NoteType, NoteFieldType, Note, and NoteFieldValue entities. This includes: - Server sync repository and routes for push/pull of new entities - Client sync queue, push, pull, and conflict resolution for notes - Update Card sync to include noteId and isReversed fields - Add comprehensive tests for all sync functionality 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add sync status indicator componentnsfisis
Add SyncStatusIndicator component to display current sync state in the UI header. The component shows online/offline status, syncing progress, pending changes count, and sync errors. - Create SyncProvider context to wrap SyncManager for React components - Add SyncStatusIndicator component with visual status indicators - Integrate indicator into HomePage header - Add comprehensive tests for SyncStatusIndicator and SyncProvider - Update existing tests to include SyncProvider wrapper 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add conflict resolution for offline syncnsfisis
Implement ConflictResolver class with Last-Write-Wins (LWW) strategy: - Detect conflicts from push results - Support multiple strategies: server_wins, local_wins, newer_wins - Resolve deck and card conflicts using server data from pull - Default to server_wins (LWW) for consistent conflict handling 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>