The Build, Ep. 3: August, The Month Everything Ran Twice
The Build is the story of one guy, two Macs and too many agents, told as it happens. Episodes 1–6 catch up from May to tonight. After that it’s one entry a night.
August was three weeks away from home and one very expensive discovery when I got back.
Travelling breaks everything you hard-coded
- “Vacay mode” paused 31 cron jobs and swapped the crontab’s timezone for each leg of the trip.
- 5–26 Aug: the blog went dark. Vacay mode had commented out the blog’s own cron line, and it came back two days late.
- 9 Aug, the big lesson: commenting a job out of the crontab doesn’t pause it. Four separate “catch-up” registries saw a missed job and re-ran it, or alerted me about it.
- 17–24 Aug: the crontab got stuck on a Pacific timezone and scrambled a week of schedules.

28 August: the two-Mac split
I’d been running the full scheduler on both Macs: the MacBook Air I carry around and the MacBook Pro that stays home.
- The same job committed from both hosts in the same second.
- Every message, ledger write and paid API call happened twice.
- The diverging commits had silently broken cron’s
git pushsince 26 Aug.
The fix took one evening:
- The M1 Pro owns the schedule: all 100 jobs plus 14 LaunchAgents. It stays home.
- The Air’s crontab is empty on purpose. It’s for building, not for running things.
- Every Claude session now shows a badge with its host (✈️ AIR or ⏰ M1), keyed on the hardware serial, because sessions kept guessing wrong about which machine they were on.
- While I was in there I found a second scheduler I’d forgotten about. (A third turned up in September.)
Also on the bill
- 31 Aug: a leftover
caffeinateagent drained the Air’s battery in about five hours. - 31 Aug: seven infinite CSS animations on my own dashboard were burning 17% of a CPU core just to look alive.
The rule I’d tattoo
- One host per job. Always.
- Pausing is a feature you have to build. Commenting out a line doesn’t pause anything.
The Build: catch-up series
- Ep. 1: The Day I Started Scoring My Life
- Ep. 2: July, When It Got Serious
- Ep. 3: August, The Month Everything Ran Twice (you are here)
- Ep. 4: September, The Agent Got a Voice and a Slack Handle
- Ep. 5: Nine Days, Nineteen Apps
- Ep. 6: Tonight, and Why the Scores Are Gone
From Ep. 7 it’s one short entry a night.
3 Comments
Comments are closed.