Skip to content

Phase 1 Roadmap — Waves 1–7

The roadmap for Phase 1 (The Hub), organized as waves. Alex paves the backend; Nate wires the frontend. Each wave ships backend work that unblocks frontend work. A wave is a coherent slice — not a time box. Sprints are the time box.

For full architectural context, see the Technical Architecture doc.

WaveNameStatus
1Foundation & Shared Contract✅ Shipped
2Brain² (The Memory Spine)Not started
3Conversational Chat LayerNot started
4Agent Runtime & In-App Task BoardNot started
5Voice PipelineNot started
6Meeting CaptureNot started
7Migration & OnboardingNot started

Wave 1 — Foundation & Shared Contract ✅

Section titled “Wave 1 — Foundation & Shared Contract ✅”

Status: Shipped (2026-05-29, 30ffdaa)

Why first: Everything downstream depends on typed contracts and a working API skeleton. Nate can’t build real UI without types and endpoints.

#ItemStatusWhat shipped
1.1Shared types from schemapackages/shared/ — constants (all enums from schema), full domain types (Org, Brain2Item, Task, AgentRun, etc.), API contracts (org, profile, keys, credentials, dashboard).
1.2API service auth + Supabase clientFastify auth middleware (JWT validation, org membership resolution, AuthContext injection). Admin + per-user Supabase clients in lib/supabase.ts.
1.3Org + profile endpoints/v1/org and /v1/profile routes — GET/PATCH org, GET members, GET/PATCH profile.
1.4API key management + BYOK/v1/ai-credentials and /v1/api-keys routes. AES-256-GCM encrypted storage. Supports cloud providers (Anthropic, OpenAI, Google) and local models (Ollama, self-hosted) — base_url field + optional api_key added in migration 002_local_model_support.sql.
1.5Dashboard data endpoint/v1/dashboard — aggregated org summary, recent activity, member list.

Unblocks: Settings UI, dashboard shell, org management, user profile. Nate can now build against real typed contracts and live endpoints.


Why second: Brain² is the central data layer everything else reads/writes through. Chat feeds it, agents query it, meeting capture populates it.

#ItemWhat ships
2.1Brain² CRUD APICreate/read/update/delete brain2 items. Filter by tier (hot/warm/cold), project, critical flag. Paginated list + single-item fetch.
2.2Brain² search (pgvector)Semantic search endpoint: text query → embedding → cosine similarity search across warm+cold tiers. Uses vector(1536) with OpenAI text-embedding-3-small.
2.3Brain² tier cycling workerBullMQ background job: evaluates items for demotion (hot→warm→cold) based on project activity, age, access frequency. Critical-flag items skip. Logs every demotion.
2.4Brain² re-promote endpointOne-click re-promote: cold→warm or warm→hot. Reverses auto-demotion.
2.5Brain² intake endpointAccepts content from other systems (chat auto-route, meeting capture) and classifies into the right tier.

Unblocks: Brain² UI — the “second brain” view. Search interface. Memory timeline. Hot/warm/cold visualization.

Dependency: Requires Redis + BullMQ for the cycling worker. Set up Redis addon on Railway as part of 2.3.


Why third: The chat layer is the primary interaction surface — the main thing users type into. It feeds Brain² (wave 2) and later connects to the agent runtime (wave 4).

#ItemWhat ships
3.1Conversations + messages APICRUD for conversations (create, list, get with messages). Message streaming via Supabase Realtime (postgres_changes on messages table). Thread branching (parent_thread_id).
3.2Running doc auto-generationAs messages arrive, maintain a concise running doc per conversation. Background job or trigger.
3.3Auto-route on closeWhen conversation is archived/closed/inactive, route the running doc to a destination: Brain² tier, project folder, or task board. Confirmation chip (not a gate).
3.4Context-drift detection (v1)Basic implementation: compute topic embeddings per message window, detect when similarity drops below threshold. Start conservative (explicit cues only). Auto-spawn new thread on drift.

Unblocks: Chat UI — Claude-style sidebar, conversation history, thread navigation. The “reimagined terminal” is largely this + Brain² rendered in a terminal-like shell.


Wave 4 — Agent Runtime & In-App Task Board

Section titled “Wave 4 — Agent Runtime & In-App Task Board”

Why fourth: The agent runtime deploys AI agents against tasks. The in-app task board is where agents and humans collaborate on project work.

#ItemWhat ships
4.1AgentContract + registryTypeScript interface for agents (agentType, invoke → AsyncIterable). Agent registry for type→implementation lookup.
4.2AI gateway (BYOK routing)Resolve org’s provider credentials, route through Vercel AI SDK, log usage to ai_usage_records. Security boundary — credentials decrypted here only.
4.3Single-agent dispatcherDispatch an agent against a task. Stream AgentEvents (status_update, task_delta, completion, error) back to the client via SSE.
4.4In-app task CRUDCreate/read/update tasks within a project. Three sources: human, auto-extracted, agent-proposed. Assignee, status, project scope.
4.5Agent run trackingTrack agent runs: model, tokens, current step, ETA. Attach runs to tasks. Stream progress.
4.6Agent completion detectionAgents emit structured task-delta events. On completion, draft one-sentence summary. Flag candidate task completion for human review.
4.7Privacy gateSolo/scratch agent sessions stay private. Only runs explicitly attached to a task surface to the team.

Unblocks: Agent run UI, task board UI, efficiency lens (per-teammate AI usage), agent output streaming display.

Deferred (add incrementally): Swarm management, swarm-sizing recommendation, board deduplication. Start with single-agent runs.


Why fifth: Depends on agent runtime (wave 4). Voice is a modality on top of the existing agent + chat infrastructure.

#ItemWhat ships
5.1TTS engine integrationSelect and integrate TTS engine (likely ElevenLabs or OpenAI TTS). Streaming audio output. <500ms first-byte target.
5.2Voice turn-taking WebSocketPersistent WebSocket endpoint for voice sessions. Client sends audio chunks → STT → agent runtime → TTS → client plays audio. Turn-taking protocol.
5.3Barge-in handlingClient-side detection of user speaking while agent is outputting. Interrupt agent mid-sentence, restart listening.

Unblocks: Voice UI — mic button, audio playback, visual turn indicators.

Open question: TTS engine choice. Spike needed before committing.


Why sixth: Feeds Brain² and later pitch briefings. Not on the critical path for core hub experience but important for “knows your whole brain.”

#ItemWhat ships
6.1Meeting capture processorBullMQ worker: accepts audio/transcript → STT (if audio) → structured summary (action items, decisions, attendees, named-entity tags).
6.2Granola integration (if available)Webhook receiver: Granola sends transcript/summary → store pointer + metadata. Edge Function or API route.
6.3Brain² + task board feedProcessed meeting outputs → Brain² warm tier. Action items → task board as proposed tasks.

Open question: Granola partnership model. Build native fallback first.


Why last in Phase 1: Important for adoption but not for core product experience. Teams can use DREAMTEAM without importing from Notion day one.

#ItemWhat ships
7.1Notion OAuth flowOAuth integration for Notion API access. Stored at org level.
7.2Structure mapping engineMap Notion hierarchy → DreamTeam structure. Pages/docs → Brain² (warm/cold). Databases/boards → task board. Teamspaces → workspace structure.
7.3Import pipeline workerBullMQ worker: processes hundreds of pages. Preserves hierarchy, links, properties, assignees. Progress reporting.
7.4Re-sync (optional)Incremental re-sync from Notion until full cutover. Conflict resolution if both sides edited.

Unblocks: Migration UI — connect Notion, pick what to import, progress display, mapping review.


Cross-cutting (frontend, depends on waves 1–4)

Section titled “Cross-cutting (frontend, depends on waves 1–4)”
ItemDepends on
Reimagined Terminal shellWaves 1–3 (needs chat + brain2 APIs)
Dashboard with real dataWave 1 (dashboard endpoint)
Brain² UI (memory view)Wave 2 (brain2 API)
Chat UI (sidebar, threads)Wave 3 (chat API)
Agent run + task board UIWave 4 (agent + task API)
Voice UIWave 5 (voice pipeline)
Meeting capture UIWave 6 (capture API)
Migration/onboarding UIWave 7 (migration API)