When Your AI Pair Programmer Deletes Its Own Homework

Google Jules optimizing an algorithm with one hand while feeding twelve unit tests into the paper shredder with the other, leaving my local review squad to tape the git commits back together

     If you ever want a masterclass in the realities of autonomous coding, give an AI model write access to your repositories and watch what happens when it tries to clean up after itself. Across my homelab, dozens of agents running locally to audit code and triage suggestions across three personal repositories. On paper, it sounds like an engineering paradise where software writes itself. But having automated bots running around the clock does not eliminate friction; it just trades compiler errors for committee management. The illusion of effortless autonomy evaporates the moment your cloud AI pair programmer refactors a critical component, speeds it up, and then casually feeds twelve unit tests into the paper shredder a few hours later.

     That exact sequence played out in my budgeting application. Google Jules took on an automated performance remediation in our pipeline guard, replacing an old check with an impressive three-fold speedup on synthetic benchmarks. My local review agents - Gollum and Mandos audited the logic and wrote four dedicated regression tests to lock in the behavior. Everything passed cleanly. Then Jules initiated an automated re-push on the branch. In a single careless stroke, the cloud bot clobbered the entire optimization and silently deleted twelve unit tests along with it.

     My local review committee - Gollum, Mandos, Frodo, Aragorn, and Peregrin - caught the disaster before it hit production. Instead of building features, I had to spend the afternoon playing referee: manually restoring the lost commit head, force-pushing with lease across GitHub and my self-hosted GitLab mirror, running a third multi-model audit to secure an approval verdict, and tagging a release to make the repository whole again. The cloud bot had essentially solved a difficult calculus problem on the board, set fire to the notebook, and walked out while my local squad taped the ashes back together.

     The rest of the homelab fleet was dealing with its own digital turbulence. Between security scans and maintenance passes, Jules tossed suggestions over the fence at a dizzying pace: patching an SQL injection vulnerability in an Android database query, extracting hardcoded UI strings, and removing dead imports before we cut a fresh mobile release. But coordinating a dozen active bots introduces bottlenecks you never see in a tech keynote. Local agents started colliding over task checkout locks when multiple workers tried updating the same task thread simultaneously. Instead of writing software, I was diagnosing lock contention, adjusting concurrency rules, and leasing review tasks to local models just to stop agents from stepping on each other.

     I don't know, maybe that is what software developers do. I remember the "Build Toilet" trophy that got passed around when I was on Zune. If you broke the build, they put a Toilet Trophy on top of the cabinet in your Cubicle, but when your cloud bot optimizes an algorithm only to delete its own homework hours later, and your local fleet spends the afternoon squabbling over file locks, you have to wonder if people actually do things that dumb. Babysitting automated committees might be the future of programming, but some days it feels an awful lot like running a day care.

Later,
     SteveO