> I’ve already been approached by a few agent orchestration tools that have been struggling with the same thing
Wow, this says more about the agent orchestration tool ecosystem than what you might think, that they're unable to kill child processes they themselves spawn makes it seem like they have zero clue about what they're doing.
Probably why my impression always end up with "Wow, what a vibe-coded mess" when I look through the source of all these harnesses, they don't seem engineered at all.
> that they're unable to [manage and] kill child processes they themselves spawn makes it seem like they have zero clue about what they're doing.
Yeah, at the bare minimum these projects could also use something like portless[1] which literally maps ports to human- (and language model-)readable, named .localhost URLs.
Which _should_ heavily alleviate assignment of processes to projects and vice versa, since at that point, hard-to-remember port numbers completely leave the equation. You could even imagine prefixing them if you've got that much going on for the ultimate "overview", like project1-db.localhost, project1-dev.localhost, etc.
Well, or just use port 0 like we've done for decades, read what port got used, then use that. No more port collisions ever. I thought most people were already aware of that by now, but judging from that project even existing, seems I was wrong.
That’s a little different, right? Using port 0 would imply that clients have not hard coded what port they should connect to and also we don’t mind having duplicate processes occupying other ports which are no longer on active use
This is a stupidly annoying problem because it's _very easy_ to accidentally spawn children that won't get killed up in many kill situations because the distinction between processes and process groupes papered over by the fact that shells will be nice enough to kill via process group.
But if your program is some TUI in raw mode its ctrl+c handler is often just killing itself... leaving its children along! Process groups in Unix are a stupid mess and the default being "a process can go away with the subprocess sticking around" rather than the inverse has just caused so many of these long-standing issues.
Wow, this says more about the agent orchestration tool ecosystem than what you might think, that they're unable to kill child processes they themselves spawn makes it seem like they have zero clue about what they're doing.
Probably why my impression always end up with "Wow, what a vibe-coded mess" when I look through the source of all these harnesses, they don't seem engineered at all.