Domain primitives: versioned WorkDefinition/DesignPacket with risk, questions, and approval gates; lifecycle transition table with invalidation rules; Resolver (Run/Attempt/outcomes/CodingKitV0); provider-neutral HarnessRuntime with normalized events and a deterministic FakeHarnessLive that always reaches a terminal classification and never claims implementation. Convex durable model: workDefinitions, workQuestions, workApprovals, designPackets, workSlices, workRuns, workAttempts, workAttemptEvents tables; broadened works.status union; generalized workEvents with optional signalId, referenceId, and payloadJson. Authenticated commands for definition request/ save/revise/approve, question answer/withdraw, design save/revise/approve, and simulated execution start/cancel/retry with leased attempts, checkpointed events, and expired-lease reconciliation. Private work-planner FLUE agent with proposal-only tools (definition, design, question). Convex validates and stores every proposal; FLUE never approves or advances Work. Expanded Work card with Outcome, Design, and Build sections wired to the new mutations. Slice 1 conversation and provenance preserved.
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
organizationsandorganizationMembersown tenancy.projectsowns the single v0 Git source;projectContextDocumentsstores repository context.conversations,conversationTurns,conversationMessages, andconversationAttachmentsown chat admission and reactive history.signals,signalConstraints, andsignalSourcespreserve structured intent and exact evidence.works,signalWorkAttachments, andworkEventsown proposed Work and provenance.
The flue* tables are infrastructure tables required by Flue's persistence
contract. They are deliberately separate from the product relations.