Application Core
Application Core is the product’s use-case façade. Opening a conversation, handling permissions, editing files, running automations, and starting or stopping plugins are defined here. Desktop Tauri commands, Web routes, and the remote-desktop adapter only authenticate, map DTOs and errors, then call the same Core. The frontend reaches features through Core via the transport.
Transport
The React UI reaches capabilities through BackendTransport. A local window uses TauriTransport. Browser WebUI and a remote workstation use WebTransport. Transport owns the auth envelope, DTOs, and error codes. Business rules stay in Core.
A permission answered on desktop is the same event in WebUI. Queued input and drafts live on the Host conversation. Authorized devices continue editing them. Every client shares one turn state machine. See Input control.
Capability negotiation
Clients negotiate capabilities over the remote protocol. A built-in browser that exists on desktop may be absent in WebUI. Missing capabilities hide in the UI or fail closed on invoke. Desktop and Server must belong to the same version family. A companion may be one minor version behind and still negotiates. A version or capability mismatch fails the connection.
Window and Host
One application window binds one Server Profile, which is one Host identity. Projects, conversations, agents, and settings in that window all come from that Host. Another Host needs another window. See Remote connection model.
Remote protocol
remote-protocol supplies versioned stable IDs, an error envelope, capabilities, typed commands, and durable subscription DTOs. Durable attach treats Conversation sequence as authority: ready → snapshot or replay → high-water → live. Sequence deduplicates. Unknown event kinds may be kept or ignored.
Application Core methods are the public seam for desktop commands, Web routes, and the Remote Desktop adapter. Adapters must not copy a second turn state machine or plugin control plane locally.

