The useful part of a vault portal was admitting the ai should read, not write
Why an AI-facing vault portal shipped as a narrow, auditable read-only path, and why write access waits until the key model has earned it.
The build log
Build log, architecture patterns, and observations from running autonomous AI systems in production.
Why an AI-facing vault portal shipped as a narrow, auditable read-only path, and why write access waits until the key model has earned it.
Forking the product repo into a separate operator console let me ship a tailnet-only cockpit without dragging product baggage along. The fixes I had been deferring for months got cheap the same week.
I went in expecting to wire tournament registration onto the existing cart. One grep later, the premise was dead and I was designing from scratch. The new cart shipped the same day.
The ticket said STAGING/LIVE. It had a fix version, 3.349, and a real commit with a real diff.
Pro-tier bot rules never touched a residential proxy pushing 224k requests a day. JS Detections moved the fight to a capability it couldn't fake.
The unblock was structure, not inspiration: a parent epic, five child tickets, and a per-ticket folder convention.
I rebuilt my vault hierarchy three times in one day before it held. Stable nouns outlast clever categories, and dashboards should be generated, not hand-kept.
The vault, the task model, and the session pipeline each had a slightly different definition of active. The fix was not a smarter prompt. It was making them agree at the filesystem level.
Before an agent can share docs or run a dispatch loop, it needs an identity, permissions, and an inbox that behaves like a work queue. The bottleneck wasn't model quality. It was getting the agent a badge.
I was halfway into a Cloudflare-for-SaaS migration audit when every DNS lookup I depended on failed at once. Not some of them, not the flaky ones, all 1,264 of them, and they failed instantly.
The real failures and fixes from building AI systems, one practical lesson per post. Get the next one in your inbox.