Each package includes the last observed version of every path it changes. Current checks the entire package in one transaction. If any precondition fails, none of its changes become current.
For example, Alice publishes a new scene.js. Bob then submits both
scene.js and model.glb from the older base. Bob’s entire package is
rejected, including the model change. Both paths are blocked from automatic resubmission.
“First” means the first valid package accepted by current after its required chunks arrive. Client clocks are not used to pick the winner. Separate packages changing disjoint paths can both succeed.
cor status
cor conflicts
cor conflicts --json
The readable conflicts.laplace.json report contains package reasons, every affected
path, base/local/current manifests, and paths to preserved copies under
.laplace/conflicts/. Deletions have a null file manifest.
Editing or deleting conflicts.laplace.json does not resolve a conflict. Keep
.laplace/conflicts and .laplace/recovery; their retained copies may be
needed for repair.
cor work with Ctrl+C.cor resolve --take local
cor status
cor work
Both resolution commands act on all active conflict packages. They are not per-file commands. Local resolution forms a new package against the latest observed versions; another writer may win again. Recheck the result instead of retrying blindly.
If the server versions are the result you want, stop the worker and run:
cor resolve --take current
cor status
cor work
Current’s known versions are installed, with preserved conflict and recovery copies retained. Inspect the full conflict scope before making this choice.
In the tutorial playground, first let Alice and Bob catch up. Then:
src/game.js, save, and wait for Alice to report the completed
exchange.
src/game.js differently and create
model-notes.txt.
cor sync from Bob’s stopped workspace.
Bob’s package is rejected as a whole. Inspect cor conflicts: both
src/game.js and model-notes.txt belong to the rejected package. The
notes have not been published on their own.
Repair Bob’s files and use cor resolve --take local, or accept current with
--take current. Restart Bob’s worker after checking the result.
cor conflicts --watch --json
This emits the initial state and subsequent changes. cor conflicts --check exits
with code 2 if any conflicts need attention.
An incoming package that overlaps local work is also blocked as an entire visible package. An edit made during installation produces a recovery conflict rather than silently overwriting unexpected content. Unrelated, unblocked paths can continue syncing.