Normalize the topology so web/desktop/mobile clients communicate only with Convex. Convex admits durable commands, dispatches private Flue turns through FLUE_URL, and stores the product-facing result before clients observe it. - Normalized relational schema: organizations, projects, conversations/turns/ messages/attachments, signals/sources/constraints, works/events/attachments. - Conversation turns queued in Convex; the agent runAction dispatches to Flue and persists assistant response, signals, and proposed work back into Convex. - Browser chat moved off the Flue transport: use-chat-agent now reads reactive Convex rows and sends through conversationMessages.send. - Fixed signed-in blank screen: gate all product queries on useConvexAuth (isAuthenticated && !isRefreshing) plus personal-org bootstrap. - Pinned react/react-dom to 19.2.8 via catalog to fix SSR dual-React crash. - Removed ~16.6k net lines: daemon, AgentOS/Orb, project issues/runs/artifacts, todos, browser Flue transport, mobile execution views, smoke scripts. Verified end-to-end on cheaptricks: connect repo, send actionable message, Flue turn completes, Signal + proposed Work created with exact provenance, persists across refresh.
17 lines
890 B
Markdown
17 lines
890 B
Markdown
# Convex Backend
|
|
|
|
Convex is the only application API used by web, desktop, and mobile clients.
|
|
The active Slice 1 backend is intentionally limited to tenancy, projects,
|
|
conversation turns, Signals, Work, and Flue's required persistence adapter.
|
|
|
|
## Domain relations
|
|
|
|
- `organizations` and `organizationMembers` own tenancy.
|
|
- `projects` owns the single v0 Git source; `projectContextDocuments` stores repository context.
|
|
- `conversations`, `conversationTurns`, `conversationMessages`, and `conversationAttachments` own chat admission and reactive history.
|
|
- `signals`, `signalConstraints`, and `signalSources` preserve structured intent and exact evidence.
|
|
- `works`, `signalWorkAttachments`, and `workEvents` own proposed Work and provenance.
|
|
|
|
The `flue*` tables are infrastructure tables required by Flue's persistence
|
|
contract. They are deliberately separate from the product relations.
|