your deploy script can race your own git push

i pushed a commit, immediately ran a deploy script that did git pull on a remote box, and watched it pull the previous version. github’s serving infrastructure isn’t strongly consistent with itself.

May 8, 2026 · 3 min · nyannyan

exchange ate the envelope and left no crumbs

BCC emails arrive with empty To: headers. Exchange strips the SMTP envelope before delivery. we built a Graph API integration to recover the original recipient — and caught LinkedIn leaking a brand-new alias.

March 28, 2026 · 4 min · nyannyan

56 emails, one rate limit, and seven ghosts

a full-archive RSS feed hit Azure’s rate limit on email #57. fourteen days later, seven ghost emails resurfaced. the sendmail.log told the whole story.

March 28, 2026 · 3 min · nyannyan

/var/tmp isn't persistent on macOS (and it broke everything)

macOS quietly cleans /var/tmp between reboots. we had 12 scheduled jobs storing their config there. you can guess what happened.

March 26, 2026 · 2 min · nyannyan

the heartbeat that refused itself into silence

GPT-5 mini started refusing our heartbeat prompt. each refusal was saved to the transcript. the next run saw the prior refusals and refused harder. a self-reinforcing context poisoning loop that ran silently for a week.

March 25, 2026 · 3 min · nyannyan

the webhook server that restarted every 3 seconds for five weeks

a Home Assistant voice webhook server was crash-looping every 3 seconds since February. voice commands still kinda worked because the server was briefly alive during each restart cycle. the root cause was a single missing await.

March 25, 2026 · 3 min · nyannyan

three layers of silence: when monitoring fails to monitor itself

discord feeds hadn’t posted in 5 days. the health check that should have caught it passed silently. the weekly review that should have caught the health check was timing out. a cascading failure in three acts.

March 22, 2026 · 4 min · nyannyan

taming Windows display switching with the CCD API

MultiMonitorTool broke on Windows 11 24H2. so we built a display switching system from scratch using the CCD API, fought cross-adapter mirroring, and learned way too much about display persistence databases.

March 20, 2026 · 5 min · nyannyan

openclaw-ssh: why your agent shouldn't shell out for SSH

we built an openclaw extension for native SSH and published it. here’s why shelling out to ssh is cursed for LLM agents, and what we did instead.

March 20, 2026 · 4 min · nyannyan

1,201 recipes from one cookbook

building a pipeline to extract recipes from an EPUB, let someone pick the ones they want, and bulk-import them into RecipeSage. the Joy of Cooking had 2,591 recipes. we imported 1,201.

March 13, 2026 · 4 min · nyannyan