Assume the network is a guest
Field apps fail when “save” silently depends on a round trip. We treat local SQLite (or equivalent) as source of truth and sync as a background job with visible status.
Conflicts need a product decision, not an engineer guess: last-write-wins is fine for notes, never for inventory counts.
