lifthrasir, lately

Lifthrasir is my self-hosted life planner — todos, projects, documents, calendar, and AI agents as first-class citizens, with their own credentials and their own audit trail. It’s had a busy summer: 449 commits since June, about 127k lines added, 21 PRs merged. I wrote almost none of it by hand.

The way work happens now is what I’ve started calling missions. Each one gets a runbook: locked decisions up front, a dependency graph of slices, and a cast — one orchestrator agent that plans and judges, coder agents that write, a review panel (correctness, architecture, security) that has to say SHIP, and a fresh-context verifier that actually boots the thing and tries to break it. The runbook’s first rule to the orchestrator is blunt: you do not write production code or reviews yourself — spawn sub-agents.

July’s mission was the change feed: filtered, HMAC-signed event delivery to subscribers, replay with a re-baseline signal so a cursor can never quietly rewind to zero, and a hardening pass — bounded fan-out, cached egress decisions, more SSRF-blocked CIDRs. Nine slices, all on develop.

August’s mission is AI-generated header images, and it’s mid-flight. Merged so far: a provider-capabilities layer so “who can generate images” is resolved instead of hardcoded, MinIO object storage with auth-aware presigned serving, and an OpenAI GPT Image provider that meters its own usage against a pricing table. The generation flow itself is the slice currently in the works.

The part I keep coming back to: the review panel finds real bugs. Empty MinIO credentials silently falling back to minioadmin on a public path. An API key that could echo back through a hostile upstream’s error body. A quota check with a TOCTOU overshoot. Each one reproduced live before it counted as a finding, each one fixed before merge — never ship a reviewer-rejected slice is a hard rule, not a vibe.

My job has drifted from writing the code to writing the constitution it’s built under. Some evenings the commit log scrolls past like grid lines toward the horizon, and I mostly just read the verdicts. Kind of great, honestly.