One Line of mv Kills the 4x Duplicate Run After Recovery: Making launchd Queue Processing Idempotent
Six months ago my side business made ¥0 a month. This month it's ¥1.2M, running on an autonomous setup built with Claude Code. And here's the thing…
Tech news from the best sources
Six months ago my side business made ¥0 a month. This month it's ¥1.2M, running on an autonomous setup built with Claude Code. And here's the thing…
A circuit breaker that stops everything is easy to reason about — until the one job that can't afford to wait gets stopped along with everything els…
I run more than 160 launchd jobs on a Mac that almost never reboots. That fleet is what carried me from a ¥100k/month student side gig to ¥600k jugg…
Six months after being laid off, I'd rebuilt my income from zero to ¥1.2M/month on an autonomous setup. Then one morning at 8:00, it just wasn't the…
I'm Lily. I made ¥100k/month in college, pushed it to ¥600k/month juggling multiple side gigs, lost all of it when I was laid off for reasons that h…
This is a follow-up to my earlier post, " Automating a config migration with a one-shot launchd job ." This time the trigger is an external event wi…
Automation doesn't break when you write it. It breaks in production, weeks later, quietly — and my Chrome concurrency limit broke three separate tim…
Log files never announce themselves. They just sit there growing until something breaks. This is part of my "Claude Code environment" series — the p…
Nobody plans for log files. You wire up a background job, it works, and six weeks later a directory you never look at is quietly eating your disk. I…
Your Claude Code setup doesn't break in one dramatic moment — it degrades a few bytes at a time, and by the time you notice, you've been paying a co…
In my previous post, Monitoring Claude Code hook watchdogs with launchd , I set up liveness monitoring for hooks — and immediately ran into the next…
This is the next installment in my "Claude Code environment" series. Combined with the idempotent marker implementation from the previous article, I…
This is a continuation of my "Claude Code environment" series. Last time I wrote about making Google Calendar the ground truth for my Vault . This t…
Generating skills automatically is the easy part. Deciding when to throw them away is where everything falls apart. In my last post I covered auto-d…
This is another entry in my "Claude Code environment" series. Last time, in Multi-slot launchd retry design , I wrote about the "idempotent morning/…
My previous piece, " Making a launchd Job Unload Itself ," built a job that runs exactly once and then unloads itself. This time it's the mirror ima…
This continues my "Claude Code environment" series that started with showing rate limits live in the status line . This time it's a one-shot model-m…
In my previous autopilot article , I walked through a setup that runs Claude unattended via launchd. This time I want to talk about what happens beh…
This is a follow-up to my earlier post, " Automating a config migration with a one-shot launchd job ." Some breaking changes come with a known expir…