Convex-only Slice 1: clients talk to Convex, Flue is a private worker

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.
This commit is contained in:
-Puter
2026-07-27 21:32:17 +05:30
parent 4c741fbe06
commit a5414d83bd
127 changed files with 1283 additions and 17784 deletions

View File

@@ -8,28 +8,17 @@
* @module
*/
import type * as agentWorkspace from "../agentWorkspace.js";
import type * as artifactModel from "../artifactModel.js";
import type * as auth from "../auth.js";
import type * as authz from "../authz.js";
import type * as conversationMessages from "../conversationMessages.js";
import type * as daemonCommands from "../daemonCommands.js";
import type * as daemonRuntime from "../daemonRuntime.js";
import type * as daemons from "../daemons.js";
import type * as fluePersistence from "../fluePersistence.js";
import type * as healthCheck from "../healthCheck.js";
import type * as http from "../http.js";
import type * as organizations from "../organizations.js";
import type * as privateData from "../privateData.js";
import type * as projectArtifacts from "../projectArtifacts.js";
import type * as projectIssues from "../projectIssues.js";
import type * as projectStore from "../projectStore.js";
import type * as projects from "../projects.js";
import type * as publicGit from "../publicGit.js";
import type * as signalRouting from "../signalRouting.js";
import type * as signals from "../signals.js";
import type * as todos from "../todos.js";
import type * as workflows from "../workflows.js";
import type * as works from "../works.js";
import type {
@@ -39,28 +28,17 @@ import type {
} from "convex/server";
declare const fullApi: ApiFromModules<{
agentWorkspace: typeof agentWorkspace;
artifactModel: typeof artifactModel;
auth: typeof auth;
authz: typeof authz;
conversationMessages: typeof conversationMessages;
daemonCommands: typeof daemonCommands;
daemonRuntime: typeof daemonRuntime;
daemons: typeof daemons;
fluePersistence: typeof fluePersistence;
healthCheck: typeof healthCheck;
http: typeof http;
organizations: typeof organizations;
privateData: typeof privateData;
projectArtifacts: typeof projectArtifacts;
projectIssues: typeof projectIssues;
projectStore: typeof projectStore;
projects: typeof projects;
publicGit: typeof publicGit;
signalRouting: typeof signalRouting;
signals: typeof signals;
todos: typeof todos;
workflows: typeof workflows;
works: typeof works;
}>;