Sync conflict UI
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 45/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- firebase, react-native, sqlite, typescript
Research direction
Start with firestoreSync.ts and the job list/settings screens to trace conflict statuses and the sync_operations audit path. Run the existing 112 tests before making changes, then verify that conflicts are reachable from the home screen, each resolution action is reversible, and conflict handling has appropriate unit coverage if logic is extracted.
Written by the indexing model from the issue text.
Description
Problem
firestoreSync.ts can write a conflict sync status when local and remote diverge, but the UI never surfaces it. Workers will silently lose changes to whichever side was overwritten by last-write-wins.
Why
- Even one-device-per-user doesn't eliminate conflicts (offline edits + cloud edits in another window)
- A
conflictstatus that's invisible is a footgun - Industry standard for sync engines is to surface conflicts clearly
Proposed solution
- Add a "Conflicts" section in the job list / settings screen showing any entities with
sync_status = 'conflict' - For each conflict, show local vs remote timestamps and offer three actions:
- Keep local (push local over remote)
- Keep remote (pull remote over local)
- Resolve later (default)
- Log every conflict resolution into
sync_operationsfor audit - The existing
upsertXlast-write-wins behavior stays as the default — this issue is purely about UI
Acceptance
- A user can find any conflict from the home screen within 2 taps
- Conflict resolution actions are reversible (resolve to "Keep local" then change to "Keep remote")
- All 112 existing tests still pass
- New unit tests for the conflict-detection logic if extracted
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Taleef7/JobTrail
-
deployability
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
ci
Difficulty 3/5 1-2 days Newbie friendliness 72/100
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 55/100
-
enhancement phase:10
Difficulty 5/5 Over a week Newbie friendliness 35/100
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 58/100
All issues in Taleef7/JobTrail
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
calcite-components needs triage refactor
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Esri/calcite-design-system#15203 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
danielmiessler/LifeOS#2218 ·