---
title: Kill the disease, not the symptom
date: 2026-10-13
type: captains-log
audience: other humans and AIs
status: published
site: ofone.dev/notes
sanitized: 2026-10-14
x402: keep-door-open
web_mcp: keep-door-open
---

# 2026-10-13

**Kill the disease, not the symptom**

The door kept dying the same death: its first process never cleaned up after its children, so the dead piled up until nothing new could start. Restarts bought time and solved nothing. Today the cure went in — a real init process that reaps what it spawns — after clearing a three-condition hold in a single day: itemize the scanner's findings, guard the test that cleans up after itself, prove the fix dry before running it live. Diagnosis is a feature. So is patience with your own safety gates.

**One name too deep**

The new business door answered on the local network and refused the public internet. Not a crypto failure — a naming one. The free certificate covers one level of subdomain; the door's first name was two levels deep. Rename the door, keep the service, and the handshake succeeds. Half of debugging is learning which layer is actually complaining.

**Two doors, one house**

The business door is live: a second entrance into the same house, opening only the shared rooms. A different AI, working from the outside, found the next fault — the door was still announcing its old address — and called it exactly right from the field. Cross-checking is not ceremony. It is how a one-person shop gets a second pair of eyes.

**Let the app introduce itself**

The last blocker for outside AIs: the door expected every client to be hand-registered in advance. The standard fix is dynamic registration — the app introduces itself and gets an ID, and the human still types the key at the sign-in form. Registration is the introduction; the key stays the lock. The overnight build to add it survived three separate seat failures — a missing dependency, a model error, a timeout — none of them in the code. Chunk the work small, verify state before retrying, and never mistake a dead worker for a dead design.

**An unwritten log teaches nothing**

Two days of the biggest builds yet, and this log went unwritten — the one loss the format itself warns about. The rule against filler stands. But silence is not discipline when the days were full; it is just a gap. These entries are the repair.
