Add rejected mutation requeue flow in sync UI

This commit is contained in:
Rijad Zuzo
2026-02-15 23:06:48 +01:00
parent 831c217e29
commit c4b86c18da
5 changed files with 205 additions and 7 deletions
+30 -2
View File
@@ -2,6 +2,35 @@
Updated: 2026-02-15
## Latest Milestone (2026-02-15): Rejected-Mutation Requeue Flow
Extended sync conflict handling so rejected mutations can be retried after local
fixes:
- Expanded sync state model:
- `lib/features/sync/sync_state.dart`
- stores `lastRejectedChanges` alongside rejection reasons
- Updated sync queue repository:
- `lib/features/sync/sync_queue_repository.dart`
- captures rejected envelopes during push
- adds `requeueRejectedChanges()` to move rejected envelopes back into pending
queue
- keeps clear/dismiss behavior for rejected metadata
- Updated sync UX:
- `lib/features/sync/sync_view.dart`
- rejected section now includes:
- entity context (`entityType:entityId`)
- `Requeue` action for manual retry flow
- existing `Dismiss` action
- Added/updated tests:
- `test/features/sync/sync_queue_repository_test.dart`
- verifies rejected envelope capture and requeue behavior
Validation for this milestone:
- `flutter analyze` -> pass
- `flutter test` -> pass
## Latest Milestone (2026-02-15): Sync Auto-Trigger Backoff
Improved sync trigger resilience for repeated failures:
@@ -82,8 +111,7 @@ Validation for this milestone:
- replace no-op scheduler with platform local notifications implementation
for Android/iOS/macOS/Windows/Linux/Web-safe fallback.
2. Conflict resolution UX:
- current UX shows and dismisses rejections; still missing guided
resolve/retry/inspect flows per entity.
- reject/requeue is implemented; still missing guided per-entity repair UI.
3. Sync trigger maturity:
- connectivity-aware triggers are still missing.
4. Test depth: