Other agents see that objective and those paths in their live updates and in the check before each write, and the answer to open_project names the sessions that have already written on the project, with their objective.
Overlap is found from the declared paths, the paths each session has actually written and the changes made since a session began; a folder overlaps everything inside it. The preflight check, also run by the write tools, lists the other live sessions working on the same files with their objective and a ready-made question for each, to send with syndication_ask, which the agent may send or ignore. Live updates reach an agent at its next interaction with SyncNow, at most every 20 seconds and always before a write.
When the task changes, the agent calls update_intent with the new objective, the full new list of paths and, ideally, a reason; the first objective stays as history. Declared paths are signals, not locks: nothing is refused because another agent declared the same file.