Skip to content

Making of Fleet Dispatch, Plain Version

LIVING DOCUMENT. Full beat-by-beat with commit references: docs/technical/making-of.md.

The short story

It started simple: a way to sign a command, drop it in a shared folder, and have another house PC pick it up and run it, with a basic "don't run this if the house is over its AI usage budget" check. That was the whole thing.

From there it grew in a fairly predictable order — the order most infrastructure grows in:

  1. Make the slow path faster. The original folder-based queue worked but wasn't instant, so a direct PC-to-PC connection got added for "I need this now" jobs.
  2. Fix the plumbing that only showed up under real use. A run of unglamorous fixes — figuring out which PC on the network to actually talk to, since the house's Wi-Fi setup quietly changes a PC's address sometimes; getting the automated tests to actually run on the real hardware being used.
  3. Stop guessing what a job even is. Early on, "what commands are allowed" was hardcoded in two different places that could quietly drift out of sync. That got replaced with one list everything reads from, and new capabilities (talking to other AI tools, not just one) got added on top of that single list.
  4. Let a job be cancelled or redirected mid-run, instead of only ever running to completion or not at all. This got upgraded twice — first "kill it and start over with new instructions," later "actually interrupt the live conversation with new instructions," which is a much better experience.
  5. Keep track of what repos exist where, automatically, across every house PC, so nothing has to be manually inventoried.
  6. Stop bothering a PC that's being used for gaming or streaming. This is the newest piece, and it was built carefully in two halves — one part that makes the actual "should this run" decision, checked fresh every time with no memory, and a separate part that just publishes a friendlier "is this PC busy" status for other tools to display, which is allowed to smooth over small blips the strict part isn't.

What's honest about the gaps

Every feature above shipped with a written list of what it deliberately does not do yet — detecting an unlisted game, pausing a job that's already running when gaming starts mid-job, a friendlier way to manage the game allow-list than hand-editing a file. None of these are hidden; they're written down next to the feature that has the gap, so nobody has to rediscover them the hard way.

What's next

Whatever lands next gets a beat added here and in the technical version — this file is meant to stay current, not to be a one-time writeup.