Workspace Technical Specifications
Notion-class collaborative workspace — real-time WebSocket sync (edit + presence + cursor broadcast; CRDT offline-merge roadmap), pgvector semantic search across 5 embedding providers, Notion / CSV / Excel / Markdown / JSON import, Puppeteer-rendered PDF export, deterministic canvas analysis, knowledge graph, and per-column field agents.
System Performance
Real-time sync
edit + presence + cursor broadcast over WebSockets (snapshot persistence; CRDT offline-merge is roadmap, not yet shipped)
Semantic search
< 500 ms via pgvector cosine similarity
Formula evaluation
< 100 ms for complex rollup chains
Import sources
Notion, CSV, Excel, Markdown, JSON
Export formats
Markdown, HTML, PDF (Puppeteer), JSON, CSV, ZIP
Embedding providers
5 — OpenAI, Anthropic, Cohere, Voyage, Local (all-MiniLM-L6-v2)
Workspace health
5 weighted categories — content 25%, tasks 25%, collaboration 20%, knowledge 15%, structure 15%
Architecture Overview
┌──────────────────────────────┐
│ Workspace Editor (UI) │
└──────────────┬───────────────┘
│
┌───────────────────────┼───────────────────────┐
▼ ▼ ▼
┌─────────┐ ┌──────────┐ ┌───────────┐
│ WS │ │ Record │ │ Canvas │
│ relay + │◄──────────►│ + Field │ │ (2D/3D) │
│ snapshot│ │ types │ │ │
└────┬────┘ └────┬─────┘ └─────┬─────┘
│ │ │
▼ ▼ ▼
┌────────────────────────────────────────────────────────┐
│ Search / Knowledge layer │
│ │
│ pgvector cosine similarity • 5 embedding providers │
│ Hybrid keyword + semantic • Wiki links + backlinks │
│ Knowledge graph + network view │
└──────────────────────────┬─────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
▼ ▼ ▼
┌─────────┐ ┌──────────────┐ ┌──────────┐
│ Import │ │ AI Assistant │ │ Export │
│ Notion │ │ + Field │ │ MD / PDF │
│ CSV/XLS │ │ Agents + │ │ HTML/CSV │
│ MD/JSON │ │ Canvas Lens │ │ JSON/ZIP │
└─────────┘ └──────────────┘ └──────────┘
Every layer is native to Aeion OS — the same relational database, event bus, and identity model your CRM and Commerce data already use. That's what lets a Rollup column aggregate live deal values or order totals without an export, a webhook, or a Zapier subscription in between.
Vector Search — 5-Provider Embedding Intelligence
| Provider | Model | Dimensions | Notes |
|---|---|---|---|
| OpenAI | text-embedding-3-small | 1536 | $0.02 / 1M tokens — best for most workloads |
| Anthropic | voyage-2 | 1024 | Anthropic-recommended embedder (Voyage model under the hood) |
| Cohere | embed-english-v3.0 | 1024 | Strong on English content |
| Voyage | voyage-2 | 1024 | High-quality general-purpose |
| Local (Ollama) | all-MiniLM-L6-v2 | 384 | **FREE**, data never leaves your network — for HIPAA / GDPR-sensitive workspaces |
Import — Multi-Source Ingestion
Supported sources: Notion, CSV, Excel, Markdown, JSON. Every import runs through the same pipeline regardless of source: parse, map fields, preview, commit.
- Notion: Connect via OAuth, then pick specific pages/databases or your whole workspace. Aeion walks the full page and database tree — including nested sub-pages, synced blocks, and child databases — and preserves the original hierarchy. Supported block types: paragraph, headings, bulleted/numbered lists, to-dos, toggles, code, quotes, callouts, images, video, files, dividers, tables, columns, embeds, bookmarks, link previews, synced blocks, and templates.
- CSV / Excel: Header detection with type inference, plus per-column transforms — date (with a custom format, e.g.
MMM DD, YYYY), number, boolean, array (custom delimiter), JSON, or a custom mapping. - Duplicate handling: choose skip, update, or create for re-imports.
- Dry-run mode: preview exactly what will be created or updated before committing anything.
Live progress tracking:
Job ID: import_1704067200000_abc123
Status: processing
Progress: ████████████████░░░░░░░ 67%
Total: 1,247 items
Processed: 836
Succeeded: 829
Failed: 7
Current: Importing database "Product Roadmap" rows...
Workspace Health — Graded Reports
| Category | Weight | Looks At |
|---|---|---|
| Content | 25% | Stale pages, empty pages, orphan detection |
| Tasks | 25% | Overdue, unassigned, missing due dates |
| Collaboration | 20% | Unresolved comments, inactive pages |
| Knowledge | 15% | Tag coverage, broken links, isolated pages |
| Structure | 15% | Empty databases, empty teams, missing descriptions |
Export — 5 Formats Including PDF
| Format | Notes |
|---|---|
| Markdown | Clean `.md`, one file per page or a combined bundle |
| HTML | Optionally embed styles for standalone viewing |
| Rendered via Puppeteer — choose page size (A4/Letter/Legal), orientation, margins | |
| JSON | Full structured export for programmatic use |
| CSV | Database records as flat rows |
AI Field Agents — Per-Column Automation
Assign an agent — summarize, classify, extract, sentiment, or translate — to any database column. The agent fires automatically whenever a record is saved: it reads a source field, runs it through AI with your custom prompt, and writes the result to a target field. Every run — and its timestamp — is tracked per column.
Example — auto-summarize meeting transcripts:
Source field: rawTranscript
Target field: summary
Prompt: "Summarize this meeting in 3 bullet points, highlighting key decisions"
Result: When a meeting record is saved, the summary column auto-populates.
Agents run in the background with automatic retries, so a slow AI response never blocks saving a record.
Knowledge Graph + Synced Blocks
Two Notion/Tana-parity capabilities power connected knowledge work:
- Knowledge Graph — pages and records form a backlink/node graph you can visualize and navigate. Surface what links to a doc, traverse relationships, and see the shape of a knowledge base rather than a flat folder tree.
- Synced Blocks — a block of content can be mirrored across many pages; edit it once and every instance updates. Single source of truth for boilerplate, definitions, or status snippets that live in multiple docs.
Design Choices That Matter to You
Embedding dedup
Content-hash check — Unchanged pages never get re-embedded — no wasted AI spend
Import dedup
Tenant-scoped job identity — Re-running or retrying an import never creates duplicate records
Rate-limit handling
Automatic backoff + retry — A temporary AI-provider hiccup never silently drops a page from search
Notion import
Full recursive tree walk — Nested sub-pages and child databases import correctly, not just top-level pages
CSV / Excel transforms
6 built-in transform types — Dates, numbers, booleans, arrays, and JSON map correctly on the way in
Health scoring
Weighted category average — One overall score, not five you have to mentally combine
Health recommendations
Deduplicated by issue type — You see "fix broken links" once, not once per broken link
PDF export
Falls back gracefully — Export never hard-fails — you still get HTML/Markdown if PDF rendering is unavailable