Services
Where each piece lives and what it owns.
The system is built as several services, each an independent codebase with a clear boundary.
| Service | Module | Owns |
|---|---|---|
| Conclave | conclave-shape-rotator/ | Intelligence + control plane, persistence, frontend |
| Capture | capture/ | Meeting capture + diarization (identity-free) |
| VFTEE | FPM/ | Voice identity + consent plane |
| Mobile | conclave-mobile/ | React Native / Expo app |
| Veritas | veritas-recorder/ | Standalone attested recorder (satellite) |
| Sync | — | The umbrella / capture engine lineage |
What each service contains
- Conclave — FastAPI backend (
api/,connectors/,infra/,transcripts/,storage/), Alembic migrations (alembic/), and the Next.js dashboard infrontend/. - Capture — the diarization service (
services/diarization/), the Node recato-bot (services/recato-bot/), and the runtime-api orchestrator. Dockerfiles.diart/.gpu. - VFTEE / FPM — the identity service (
fpm/), the sealed SQLite store, the Ed25519 signers, and the Next.js consent dashboard.
Boundary reminder: only Conclave persists content. Capture holds nothing; VFTEE holds voiceprints + consent edges but never audio or transcript. See Architecture.
Branch & merge conventions
Work happens on one feat/<slug> branch (often a dedicated git worktree) per task per repo. A change
lands on main only after a green test gate, an independent mutation audit, and explicit approval.
The Status board tracks what has shipped. Full workflow:
Build workflow.