Roadmap
What's built, what's in progress, and what's next.
Last updated: March 2026
Completed ✅
Foundation (2025 H1)
- Event sourcing: immutable events table, pg-boss job queue, full audit log
- Hub Protocol v1: standard API contract between Data Pod and Intelligence Services
- Multi-agent core: Orchestrator pattern, 15+ specialized agents
- tRPC 11 + Drizzle ORM: end-to-end type safety throughout
Entity & Profile System (2025 H2)
- Unified entity model: one type for tasks, notes, contacts, events, ideas
- Profile system: entity types as configuration (system, workspace, shared, user scopes)
- Property definitions: typed, constrained, profile-scoped, slugged
- Knowledge graph: typed bidirectional relationships between any entities
- Profile
defaultValues: property defaults merged at entity creation time - Profile inheritance:
webinarextendsevent
Views & Visualization (2025 H2–2026 H1)
- 8 view types: Table, Kanban, List, Grid, Calendar, Timeline, Graph, Whiteboard
- Bento dashboard: composable grid of widgets, JSONB config, react-grid-layout, edit mode
- 14+ built-in widgets: welcome, entity list, recent, quick capture, stats, view runners
- View-runner widgets: Kanban, Table, List, Calendar, Timeline adapters as bento blocks
- Entity bento mode: toggle any entity to a dashboard view; auto-creates default layout
- Widget error boundaries: crashed widget shows error card; rest of grid continues
- Unknown widget placeholder: marketplace CTA for unregistered widget types
- Field system (
@synap/entity-card): single rendering source of truth across all view types
Channels (2026 Q1)
- Channel types:
ai_thread,branch,entity_comments,document_review,view_discussion - AI streaming: SSE with
chunk,step,branch_decision,complete,errorevents - Branch management: fork a conversation, explore alternatives, visual tree navigation
- Context items: link entities or documents to a channel for AI grounding
- Backend refactor:
chat_threads→channels,conversation_messages→messages
AI Governance & Agent Users (2026 Q1)
- Proposal flow: AI executes →
checkPermissionOrPropose→ user approves in inbox - Agent user system: agents are rows in users table with workspace RBAC roles
- Hub Protocol branding:
source: "intelligence"/isHubProtocol: true— cannot be spoofed autoApproveFor[]: glob-pattern whitelist for low-stakes auto-approvalsourceMessageIdflow: proposals linked to the message that triggered them- Security hardening: see
synap-backend/docs/SECURITY_AND_PERMISSIONS.md
Template Engine (2026 Q1)
- 6 built-in templates: CRM, Second Brain, Content OS, Project Management, Personal, Blank
- Template → workspace: profiles + property defs + views + home dashboard + sidebar items
- Shared profile scoping: templates share profiles across workspaces without slug collisions
- Browser sidebar items: templates configure
layoutConfig.sidebarItemsfor Electron app - Home bento dashboard: every template provisions a bento view with
homeScope: workspace
Intelligence Ecosystem (2026 Q1)
- ZeroClaw integration: one-click provision, Hub Protocol connection, status polling
@synap/agent-service: genericuseAgentServices(),ServiceChip,ServiceCardcomponents- OpenClaw architecture: Hub-and-spoke boundary defined,
synap-osSKILL.md spec written - A2AI channel type: spec for agent-to-agent async communication
Data Model Consolidation (2026 Q1)
- Removed
documents.entityIdbacklink: reverse lookup now uses FK onentities.documentId - Canvas-only document creation: structured views and bento never create a document row
- Profile
defaultValuesfield: merged at entity creation, profile < caller priority
Browser (Electron) App (2026 Q1)
- Template-driven sidebar: workspace sidebar items configured by template
- View resolution: lazy view ID lookup on click
- Connection management: Data Pod connection indicator, health status
- Workspace identity chip: colored initials pill for multi-workspace visibility
In Progress 🚧
MCP Integration
- MCP client in Intelligence Hub: connect to external MCP servers (Playwright, filesystem, Postgres, Slack, WhatsApp)
- MCP server exposure: expose Synap data as an MCP server for Claude Desktop, Cursor, ChatGPT
- One wire unlocks 10,000+ community tools; one server makes Synap accessible from any MCP client
External Channel Relay
- Inbound webhook receiver: normalize messages from Telegram, Slack, WhatsApp, Discord
- Outbound relay: Synap AI response → Hub Protocol → external platform delivery
- Message normalization layer: uniform schema for cross-platform messages
- Priority order: Telegram (free, fast) → Slack (Bolt SDK) → WhatsApp (Meta approval, 4–8 weeks)
Background Agents
- Agents that run asynchronously, submit proposals, and surface results when the user returns
- Powered by the existing proposal queue — no new governance infrastructure needed
- Use cases: overnight research runs, daily digest generation, automated tagging
Next 📋
Widget Marketplace
- Registry of community-built widgets installable to any bento layout
- Manifest format: widget key, package, config schema, preview screenshot
- Security review process for marketplace submissions
- "Search widget marketplace" CTA already wired in
UnknownWidgetPlaceholder
MCP Widget Type
mcp:*widget prefix → route render to connected MCP server- MCP server can expose a custom React component or a data feed
- Unlocks: GitHub PR status widget, Linear issues widget, Notion block embed, etc.
OpenClaw Integration
- Phase 1: Install
synap-osSKILL.md → OpenClaw connects via Hub Protocol (1–2d) - Phase 2: A2AI channel type for async agent-to-agent messaging (2–3d)
- Phase 3: External channel bridge — inbound webhooks → EXTERNAL_IMPORT → relay (3–4d)
- Phase 4: Filesystem governance (user-scoped paths auto-approve, system paths propose)
AI-Generated Widgets
- "Generate this widget" CTA in
UnknownWidgetPlaceholder - User describes what they want → AI generates a widget spec → bento block inserted
- Requires MCP + Intelligence Hub round-trip
View Subscriptions & Notifications
- Subscribe to a view's query: get notified when matching entities appear
- Use case: "notify me when a deal moves to 'Closed Won'"
- Powered by the pg-boss job queue + existing webhook dispatcher
Conflict Detection
- When multiple agents (or users) propose changes to the same entity simultaneously
- Diff-based merge suggestions in the approval queue
- Deferred until background agents are in production use
Deferred (Not Now)
| Feature | Reason deferred |
|---|---|
| Extension marketplace (code plugins) | MCP covers the use case more cleanly |
| Built-in WhatsApp integration | Meta approval takes 4–8 weeks; Telegram first |
| Managed OpenClaw hosting | Governance unclear (creator joined OpenAI); deprioritized |
| Native mobile app | Electron browser covers desktop; mobile is a separate investment |
| LangGraph orchestration | Our multi-agent system is sufficient; LangGraph adds complexity without clear benefit |
Design Principles for Prioritization
- Governance first: any new AI capability must fit the proposal model before shipping
- MCP before custom: if an MCP server exists for a tool, use it — don't build a native integration
- Templates before settings: a good default is worth more than a configuration option
- Entities over documents: content stored in entity relationships is queryable; content stored in documents is opaque
- Widget error isolation: a broken widget must never break the dashboard