Mobile apps (iOS / Android / HarmonyOS) that mirror the desktop experience:
┌─────────────────────────────────────────────────────┐
│ Mobile Clients │
├──────────────┬──────────────┬────────────────────────┤
│ iOS App │ Android App │ HarmonyOS App │
│ (React Ntv) │ (React Ntv) │ (ArkUI) │
│ SwiftUI │ Jetpack │ @ohos.net.http │
│ bridge │ Compose │ │
└──────┬───────┴──────┬───────┴──────────┬─────────────┘
│ │ │
└──────────────┼──────────────────┘
│ HTTPS + WebSocket
┌───────▼──────────┐
│ Cloud Server │
│ (Bun + Elysia) │
│ │
│ /api/v1/ │
│ - sessions │
│ - memory │
│ - skills │
│ - workflows │
│ - auth │
│ - sync (WS) │
└───────┬──────────┘
│
┌───────▼──────────┐
│ PostgreSQL │
│ + pgvector │
│ │
│ Tables: │
│ - users │
│ - sessions │
│ - messages │
│ - memory_entries│
│ - skills │
│ - workflows │
│ - sync_log │
└──────────────────┘
Client ──connect──> Server
Client <──session:updated── Server
Client ──prompt──> Server
Client <──message:streaming── Server
Client <──message:completed── Server
CREATE TABLE sessions (
id UUID PRIMARY KEY,
user_id UUID NOT NULL,
title TEXT,
agent TEXT DEFAULT 'build',
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW(),
archived BOOLEAN DEFAULT FALSE
);
CREATE TABLE memory_entries (
id UUID PRIMARY KEY,
user_id UUID NOT NULL,
project_hash TEXT NOT NULL,
category TEXT,
content TEXT,
embedding VECTOR(1536),
created_at TIMESTAMPTZ DEFAULT NOW()
);
POST /api/v1/auth/login — email + passwordPOST /api/v1/auth/register — create accountPOST /api/v1/auth/refresh — refresh JWTGET /api/v1/sessions — list user sessionsPOST /api/v1/sessions — create sessionPOST /api/v1/sessions/:id/prompt — send promptGET /api/v1/sessions/:id/messages — get messagesWS /api/v1/sync — real-time sync channelPOST /api/v1/sync/push — push offline changesGET /api/v1/sync/pull?since=<timestamp> — pull changesGET /api/v1/memory — list memory entriesPOST /api/v1/memory — create memory entryGET /api/v1/skills — list skillsPOST /api/v1/skills — create skillNavigation:
├── Sessions (list)
│ └── Chat (detail)
│ ├── MessageList
│ ├── ModeSelector (build/plan/debug/solo)
│ └── InputBar
├── Memory (search + list)
├── Skills (list + detail)
├── Workflows (list + detail)
└── Settings
├── Model config
├── Account
└── Sync status