Conflicts
When two agents touch one file, a guarded undo protects it.
Two kinds of conflict, both handled explicitly rather than silently. An undo conflict is a revert that would corrupt later work; a live conflict is two agents editing the same file at once. OAK refuses to paper over either.
Undo conflict
An undo conflict is a refused revert: a later edit genuinely overlaps the change, so applying the undo would corrupt it. The file is left untouched, the conflict is shown, and an explicit --force whole-file restore is offered instead of a silent overwrite.
A best-effort merge that silently mangles overlapping code is worse than a clear refusal. OAK tells you exactly what overlaps and lets you choose the whole-file restore deliberately.
Live conflict
A live conflict is one file holding pending edits from two or more siblings, at least one of them active. Detection is by path only β file names cross between agents, contents never do. Live conflicts lead the Actions view because they need attention before the agents collide further.
This is the failure mode that parallel agents make likely and that nothing else catches: two fleet members converging on one file, each unaware of the other. Surfacing it early is the whole reason the fleet tracks paths across worktrees.