Skip to content

v0.32.0 — "Ariadne"

Choose a tag to compare

@josephfung josephfung released this 01 Jun 19:20
· 890 commits to main since this release

Ariadne (Inception, 2010, Christopher Nolan) — in Inception, she's the architect Cobb hires to build the dream worlds. Her first job is to walk a newcomer through the rules of the place, ask what they want to build, and shape the structure to fit. v0.32 does the same: one command brings Curia up, a five-step wizard captures who you are, and a new specialist meets you in your first chat to ask what kind of assistant you actually want.

This is the "Better Setup Experience" milestone. Getting Curia running on a fresh machine used to mean editing .env by hand, juggling Docker Compose, running migrations, and figuring out where the wizard lived. v0.32 collapses all of that into one command and an in-app conversation.

Getting started, end to end

A fresh clone now runs pnpm run setup and that's it. The script checks your prerequisites, generates secrets, prompts once for an Anthropic API key, brings up Postgres, applies migrations, starts the stack, and waits for the healthcheck before printing the success banner. No more guessing whether "the container started" means "Curia is actually working."

Once you log in, the new form wizard at /setup walks you through five short steps — your name as the CEO, the assistant's identity, baseline tone, decision posture, and a review screen. Submitting drops you straight into the chat view, where a new setup-wizard specialist agent introduces itself, asks what takes up most of your time, captures your working hours, and offers to schedule a recurring debrief. The whole experience takes a few minutes and replaces what used to be a scavenger hunt across the README, the dev guide, and the old web app.

If you ask later "help me set up Nylas" or "what can you do?", the same specialist handles it.

The console grew up

The hand-rolled legacy SPA is gone. The new React console at apps/console/ now owns every user-facing view — chat (with SSE streaming, markdown rendering, message history, and infinite scroll), the knowledge graph browser, tasks, contacts (with editable trust levels), scheduled jobs (showing last-run outcomes and agent-written summaries), and the autonomy settings page. The sidebar shows your actual avatar and the app version. The legacy /old/* routes have been removed.

Identity moved to the database

The office identity (assistant name, tone, posture, behavioral preferences) used to live in a YAML file watched by chokidar. That file and its watcher are gone. The DB is now the single source of truth, defaults seed from src/identity/defaults.ts on first boot, and the wizard or PUT /api/identity are the only ways to edit. Every change is versioned in office_identity_versions for audit.

The new behavioral-preferences-update skill lets the setup-wizard (and any future "remember that I prefer…" turn) append entries idempotently.

Quality of life

The CEO Inbox now polls only 6am–11pm local time instead of around the clock. Default filters on Contacts, Tasks, and Jobs tightened to surface what's actionable. Sidebar navigation drift across pages was centralized into a single route map. Chat is now max-width 800px on wide screens so it stops feeling lost in whitespace.

Reliability and security

A wave of Docker-related fixes mean pnpm run setup now actually produces a working image on a clean host — schema resolution, NODE_ENV, healthcheck gating, Compose parallelism, and the pnpm 11 build-script approval all got sorted. The agent runtime now publishes agent.error alongside response errors so the scheduler doesn't have to wait for the watchdog. bullpen.post is idempotent on source_message_id. Migration 015's prefix collision was untangled.

HTML sanitization was hardened across htmlToText, stripHtmlTags, htmlToPlainText, and the Nylas client against tag-strip bypass attacks, closing a dozen CodeQL findings. A transitive ip-address bump and a temp-path tightening in file-parse tests round out the security work.

Specs

Spec 18 (Onboarding) is new and consolidates the three onboarding layers. Spec 13 (Office Identity) was extended with the two write paths that populate behavioralPreferences.


One command. The house
wakes up, opens its door, asks:
"What shall I call you?"