Join the discussion
Write your take first — we'll ask for email only when you're ready to publish.
- Hacker News
- This is interesting. How do you decide whether a detected conflict is actually worth stopping the agent for? I imagine some overlapping changes could still be perfectly fine.
- This is awesome. I think the current version control mechanisms are meant for humans, not agents. I'm still trying to think of a scenario where an agent needs to see a git diff. I think something like this could be the future of version control in an agent first worldby wilsprouse
But we don't know in advance what we will need to change in our current task. And even if we did, there are always side effects.Before editing each agent publishes an intent and the scopes it will change, with the operation it plans to complete on each one.by ttoinou- I've been using a combination of `weave` and ad hoc "blackboard pattern" skills—some self-made, some borrowed—but I haven't really felt they've earned their keep. Maybe I'm not working in parallel enough, or else maybe I'm relying too much on a parent coordinator session to resolve conflicts.by gavmor
- There were several comments here that got marked dead but had some legitimate points and questions so answering them on gh discussions instead https://github.com/naw103/foremerge/discussions/32 laika23 asked for two kinds of conflicts: replace vs extend and contract change by one agent vs new agents writing against the old contract. The first case already exists today and the second will also catch if the agent declares it but currently today no rule evaluates the dependancies at acceptance unless it is specifically declared as a check. We already added to the roadmap from initial feedback to solve this through a treesitter code graph. We've measured it internally but havnt build it yet. One thing that we found while measuring this was that only edges the parser extracted are usable and the ones it had to guess were name collisions on common helper names.by naw103
- Here are some questions I normally get asked:
What does an agent do with it? The agents publish intents and scopes of what they are about to change (at the start and right before they make the change if its something different). Foremerge returns a signal of related work already in progress on different worktrees (even across different branches or in the same worktree) and the agents/humans who are working on it. Agents can then negotiate on the solution prior to writing any code or generating any conflicts and Foremerge runs an acceptance check (defined by a human) prior to commit.
Why advisory claims instead of locks? Once a repo gets busy locks turn into a queue and deadlocks. A lock that the agent cant see the reason for is the worse case scenario so the hard gate is at the acceptance not the start.
What are the gaps? Ultimately Foremerge is deterministic (does not use any judge model) so it can detect some false positives and negatives though we see that very infrequently and worst case it would have likely of been missed anyway without Foremerge. Acceptance also dosnt currently compare the actual diff by default and there are no push notificiations so the earlier agent only learns about the conflict on its next status check (both of these are on the roadmap for the next version)
There are more questions and answers here: https://foremerge.com/blog/31-questions-coordinating-paralle...
by naw103 - I'm curious to know what's everyone custom solution to this problem ? Before AI and with AI.
It was already a problem for me before agentic AI coding : multiple developers can work on overlapping code and you always need someone to merge everything properly. Even if the overlap is very small it does add a burden to development. Not an issue anymore in 95% of cases if that person uses AI to solve conflicts, but now that "others developers" are swarm of AI agents, this problem isn't trivial to solve.
by ttoinou