Two mechanisms. On opening a project the client hydrates from the server, merging server state where local state is missing a checkpoint or its photo. On first mount a repair pass replays every locally-stored stage to the server so historic local-only work converges.
Also called: ticked it on my phone and it's not on the computer · photo not showing on desktop · two devices out of sync
- 1Hydration: server wins where local lacks the milestone, lacks the photo, or has an older completedAt
- 2The repair pass scans local storage for stage_milestones_<project>_<task> keys and re-posts each one; the endpoint upserts on a deterministic id so replaying is idempotent
- 3The repair deliberately omits `notify` — 'this is a data repair, and it must not fire "stage complete" mail for work finished weeks ago'
Checkpoints and photos were kept in whichever browser recorded them, so a crew lead who photographed a finished pour on his phone had proof the office could not see, and boxes the office ticked in the morning were invisible in the field all afternoon. The two halves of the company were reading different versions of the same job and arguing about which one was right. Everything recorded on site lands in one place, and a repair pass recovered the ticks that had been stranded in individual browsers.
- Field work invisible to the office
- Historic progress stranded in one browser
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →