His AI schedules silently vanished when the chat closed; he built a watchdog that pings him on Slack
A Japanese solo operator who runs his micro-company's chores (contact checks, record-keeping, several times a day) through AI schedules found on Oct 6, 2026 that the 12:00, 15:00 and 18:00 runs had all silently not happened: schedules registered inside a conversation live only in that conversation and disappear when it closes, with no error and no notification; he noticed about 10 hours later. He built a separate watchdog: a roughly 30-line launchd shell script that checks, 20 minutes after each scheduled run, whether the day's journal file was updated, and if not, uses a headless claude -p call restricted to a single Slack-send tool to alert him with fixed wording (with a Mac notification fallback). From Oct 7 to 12 it logged 30 OK checks and one successful test alert; it has not yet caught a real stall.
How it works
- Discover the missed runs when a new conversation shows an empty schedule list
- Diagnose: in-conversation schedules are not persisted to disk
- Build a launchd watchdog checking the daily journal's update time 20 minutes after each run
- Alert path uses claude -p with one allowed tool (Slack send) and fixed message text
- Add a force-file for one test alert
- Run it Oct 7-12 (30 OK, 1 test alert)
- Start migrating the schedules themselves out of conversations to launchd + claude -p
Why it’s worth knowing
The failure had no error message at all: the schedule, and the only entity that could report it missing, vanished together when a chat window closed.
Where it’s from
Summarized from a public post on zenn.dev. See the original ↗