How an AI agent encounters and resolves a conflict
The MCP tools, and the scope that bounds them.
Written By Dustin
Last updated About 3 hours ago
An agent working through the MCP server meets conflicts the same way you do — as data — and gets a deliberately narrower set of ways to act on them.
Finding them
The list_conflicts tool takes no arguments and returns the conflicted paths the session can see. The status tool also reports open conflicts as part of its payload.
Both are scope-filtered. A conflict on a path outside the session's capability-token scope is not listed, not summarized, and not hinted at — the agent does not learn it exists.
Resolving one
The resolve_conflict tool takes:
The strategy set is intentionally small. An agent can take a side; it cannot hand-merge, cannot rename, and cannot invoke the model resolver — --ai is not exposed here, because chaining one model's judgement into another's is a decision an owner makes, not one an agent makes for itself.
It stages; it does not commit
A resolution through MCP is staged. It becomes durable on a later commit, which carries the agent's provenance — its token, its task, and the human who authorized it. The resolution is attributable after the fact, which is the point of routing it through a token at all.
The scope gate comes first
Path scope is checked before anything is read, not after. An out-of-scope conflict is never revealed in the process of refusing to resolve it — a refusal that leaked the path would be its own disclosure.
Protected paths
Resolving a conflict on a protected path means decrypting its sides, so it goes through the audited read gate rather than around it. An agent whose token lacks the read permission or the clearance for that path fails closed with TVO-TOKEN-004 and stages nothing at all.
Being able to write a path is not the same as being able to read it, and resolving a conflict requires both. That ordering is what stops "resolve this conflict" from becoming a way to extract a file an agent was never cleared to see.
Reviewing what it did
tovio conflictstovio difftovio log --entity agentAn agent's resolution is an ordinary resolution: visible in the log with its provenance, and reversible with tovio undo.