- Live inference wiring — per-model override resolution and system prompt.
- Custom provider CRUD with registry hot-reload.
- General settings surface — GET/PUT route, sanitizers, built-in harnesses.
- Records Office redesign — paper and ink themes, Fraunces + IBM Plex type, ledger voice.
- Independent session secret for cookie signing.
- Chat interface — streaming ledger, sidebar, model picker, settings.
- Streaming chat route over curtis-core providers.
- Auth, provider and conversation API routes.
- Single-user HMAC session auth.
- Conversation store on node:fs, atomic JSON settings store.
- App shell, design tokens, login page.
- Monorepo scaffold — curtis-core engine extracted node-side with an obsidian shim.
- Docker deploy and CI.
What shipped, dated.