Remix.run Logo
tptacek 2 days ago

So:

(1) I feel like most people call these async agents, though maybe "parallel" is the term that will stick.

(2) Async is great for reasons other than concurrent execution.

(3) Concurrent execution is tricky, at least for tightly defined projects, because the PRs will step on each other, and (maybe this is just me) I would rather rewrite an entire project than try to pick through a complicated merge conflict.

CuriouslyC 2 days ago | parent | next [-]

Nah, I saw this problem a while ago and already spec'd out the solution. First, agents need to be doing atomic commits, and second you can just have a massive merge queue with bisection, if you're using bazel you can handle ci gating on thousands of PRs with very little overhead, and when a merge batch fails you find the bad patch set in O(log(n)) time and dispatch to an agent for reconciliation. I even built a prototype, works great in benchmarks but I don't have a need for it over merge trains in gitlab yet.

shiroyasha 2 days ago | parent | prev [-]

I agree, async does feel like a better description. I wish I used that term for the title.