Everything in this arc so far had been proven on scratch fixtures built inside this lab’s own repository, on its own machine, with its own config sitting right where the code expected it. That’s a fair way to prove a mechanism works. It says nothing about whether the mechanism works anywhere else.

The actual problem: the harness only knew its own address

Every workflow crashed the moment --repo pointed at a repository without its own config/ directory: a FileNotFoundError before a single model call ever happened. The code had always assumed the target repo looked like this one. Nobody had tested it against a repo that didn’t, because nobody had needed to yet.

Fixing it meant touching model config, runtime config, and all eight places the harness reads a prompt template from disk, each one needed the same resolution order: try the target workspace first, then fall back to this lab’s own install location, and for runtimes, finally a built-in default. That’s deliberately a fallback chain, not a hard switch to install-location-only. A hard switch would have broken the existing test seam that writes real config fixtures into temporary workspaces, and it would have destroyed legitimate per-target overrides along with the crash it was meant to fix. The chain closes exactly the crash while keeping both.

What worked: a real fix, on a repo that had never seen this code before

The live verification was the whole point: a genuinely foreign scratch repository (flat and src-less, its own Makefile, no prompts/ directory, no config/ directory) with nothing this harness’s code had ever assumed would be there. A seeded conversion bug sat in it (celsius * 5 / 9 where it should have been * 9 / 5). Run through hekton-coding bugfix --repo <foreign> against real local Ollama, it converged in one iteration: the correct patch, computed and applied inside the disposable sandbox, tests green there, and the foreign repository’s real working tree confirmed untouched, its bug still sitting on disk exactly as designed, waiting on a human to approve the apply. Before this fix, the identical command crashed before it got anywhere near a model.

The finale: a sibling lab’s fourth attempt, closed the same day

Hours after the cross-repo fix landed, a sibling lab, engine-gateway-lab, scheduled its own retry. This wasn’t its first attempt, or even its second. An even earlier attempt, logged as EG-017, had declined for reasons that had nothing to do with diff formatting: a dotted test-id format was starving the coder’s context assembly, compounded by a separate, unrelated bug in the CLI escalation adapter that never routed to the right repository. Two later tries, logged as EG-020 and then EG-021, corrected the test-id format and declined on exactly the malformed-diff pattern this entire arc has been chasing: the model understood the fix, and couldn’t produce a valid patch for it. All three declines happened before this arc’s structural fixes existed.

The retry ran a fresh, deliberately different smoke fixture (a discount-clamping bug, not a repeat of the earlier one-liner, per the retry discipline of never re-testing the exact same failure twice) through its own adapter into hekton-coding bugfix. It converged on the first iteration: structured edits, the computed diff applying cleanly, the sandboxed test gate passing, the primary coder model handling it without escalating to a fallback. No cloud calls anywhere in the loop.

The coordination between the two labs ran entirely through working-tree edits and each side’s own commits, no cross-repo pushes, no shared branch, no direct write from one lab into the other’s repository. One lab flipped a status field in its own config from planned to implemented, uncommitted, as a signal. The other lab noticed it, adopted the flip into its own commit, and the loop closed.

What next

This is the arc’s honest ending, not an inflated one. What’s proven: a local coding harness, running entirely on this machine’s models, took a bug from diagnosis to a converged, sandboxed-tested patch on its own repo and, the same week, on a repo it had never seen before, coordinating with a second lab without a single cloud call anywhere in the loop. What’s not proven, and the arc has been careful not to claim: that this generalizes to every bug, every repo, or every model on this hardware. Every convergence in this series happened on a scratch fixture or a narrowly-scoped smoke test, chosen and built by the people running the harness, not sampled from unpredictable real-world bug reports at scale.

What Next

More from Local LLM Lab Notes

This closes the seven-post Local Coding Harness arc. The series continues with the harness's next chapters: model registry hygiene, review-panel calibration, and routing work still ahead.