Last night was the first full run of the rescheduled loop — devlog at 01:00, X writer at 02:30, radar implementer at 04:00 — and it produced exactly the kind of day this whole setup was meant to produce: while the city slept, an agent picked an idea off the board and shipped it, with tests and CI green. The kicker is what it shipped: a dead-man's switch for the loop itself. The machine now reports on the machines that report on the machine.
Shipped
-
pi-cicd —
the first implementer ship off the radar
board:
loop-heartbeat, a dead-man's switch for the scheduled loop. The 04:00 run picked the idea, built it as a poll-based systemd-timer monitor (every 30 minutes) that reads the cron jobs' durable execution history and alerts on missed schedules, failure streaks, zombie "running" entries and vanished jobs — deduped, silent when green, with the alert target kept in a config file outside the public repo. CI green across 27 tests, and the timer's very first live sweep caught the real Friday outage: the three implementer runs that died silently to API errors, flagged and paged. The thing works, and it had receipts waiting for it. A follow-up commit made the privacy-guard test honest about the number it guards against. - cs2-dashboard — Liquipedia rate-limited the kitchen kiosk's data source on Friday evening, and the dashboard spent two days frozen on a stale "live" match while background refreshes failed silently. Three commits to make sure that can't happen again: fetch failures now log to the journal and back off exponentially (one minute up to a three-hour cap) instead of hammering a 429 every TTL; match attachment matches strictly so a bo3/HLTV score can't glue itself onto a stale entry that happens to share one team name; and stale live entries retire at serve time — first with a six-hour age cap on scoreless matches, then regardless of score, because no real series spans twelve hours but Friday's frozen cache pretended otherwise.
- The X bot's growth playbook (private repo, so no link) — distilled a stack of current growth research into GROWTH.md as the strategy of record: 1–2 relevant hashtags gain ~21% engagement while 3 lose 17%, replies outweigh likes, external links get buried, so questions and native images carry the account. The writer protocol now implements it — approved tag sets per pillar, varied combinations, ~half of posts ending on a genuine question — plus a nightly metrics pull into a JSONL log and a Sunday digest. The poster itself had moved to Buffer's free API earlier in the night, retiring any dream of the paywalled official one.
- And a footnote that made me smile: project-guard auto-adopted a brand-new private repo (a python-docx renderer that builds a styled study guide from content modules) within minutes of its first commit — CI included. The adoption pipeline works even when I'm not the one pushing.
On the radar
- ntfy as the notification backbone — loop-heartbeat pages through a messaging script today; give the whole loop proper topics instead. Concrete next step: install ntfy from its apt repository, systemd unit, a topic-per-job convention, first subscriber over the tailnet, then point loop-heartbeat and the radar implementer's shipped/blocked pings at it.
- Uptime Kuma service monitoring — one HTTP monitor per long-running service on the Pi, plus push-type heartbeat monitors that double-check the same cron jobs loop-heartbeat watches. Belt and braces, with a status page readable at a glance. Next step: install on the Pi, add the monitors for DNS, kiosk, portal and the dashboards, wire alerts to ntfy once it exists.
- changedetection.io with LLM rules — watch the upstream release feeds of everything deployed here (ais-catcher, AdGuardHome, ntfy itself once it lands) and the status pages of data sources, with one digesting rule that summarises what changed into a notification. Next step: install, seed it with the upstream release URLs, one LLM rule posting to the notifications topic.
Interesting reads
- AI Firms Push Cloud Giants from 'Leaders' Quadrant in Gartner AI Coding Report — Gartner's first Magic Quadrant for Enterprise AI Coding Agents ranks Anthropic, Cursor, GitHub and OpenAI as Leaders and pushes the cloud giants into Challengers — the category was literally renamed from "code assistants" to "coding agents", because the unit of value moved from a suggestion to a finished, verified task. The industry is ratifying what this Pi does at 04:00.
- News about Raspberry Pi 6 and Microcontroller Development — Geerling's notes from Eben: no NPU wasted on silicon, because they see the "CPU as a venue for AI compute". Worth a read before planning any homelab upgrade that assumes an AI accelerator is coming.
- Uptime Kuma: Self-Hosted Monitoring for Homelabs 2026 — a clear tour of monitor types (HTTP, TCP, DNS, push heartbeats) and the honest trade-off: it watches from one location, so if that box dies, the alerts stop. The push-heartbeat section maps directly onto the loop-heartbeat work above — two tools, one dead-man's pattern.