Platform architecture
This track modifies VibeX source: new Host capabilities, Application Core, the desktop shell, or the remote protocol. Plugins consume those capabilities as described in Plugin architecture.
Before work, read root CONTEXT.md, the ADRs in docs/adr/ that apply, and apply maiden-skill in full. Then load the smallest set of SKILL.md files matched by the Agent Skill rules in CONTEXT.md. Cross-layer changes load every matching skill together. A new Tauri command also covers IPC, frontend integration, and tests.
Layout
The repo is a pnpm workspace plus a Cargo workspace. The Rust toolchain is pinned in rust-toolchain.toml (currently nightly-2025-12-04).
| Path | Role |
|---|---|
frontend/src/ |
React + TypeScript UI. @ → frontend/src, shared → shared/ |
src-tauri/ |
Desktop shell, invoke_handler, windows, AppState |
crates/ |
Tauri-agnostic domain logic |
shared/types.ts |
TS types from generate_types.rs. Generated; refresh with pnpm run generate-types |
packages/plugin-sdk, packages/plugin-cli |
Public plugin contract |
docs/adr/ |
Architecture decisions |
assets/plugins/ |
Official bundled plugin sources |
Three process layers
- The frontend talks to the backend only through
invokeand event subscriptions. - The Tauri shell registers commands and holds
AppState. Commands live undersrc-tauri/src/commands/by domain. crates/*implement the business. Services are injected through theDeploymenttrait. The desktop concrete type isLocalDeployment.
Agent subsystem
New agent, conversation, and turn work goes through crates/agents (AgentRuntime, AgentConnectionManager) and the event-sourced conversation core. The CLI-executor path has been removed. ExecutorActionType keeps only ScriptRequest. crates/executors still owns script execution, the executor config schema, and log normalization. Agent execution stays in crates/agents.
Conversation events append to conversation_event and project into the timeline. The frontend renders AgentTimelineConversation only. A conversation has at most one in-flight turn. See Conversation and Turn state machine.
Application Core and remote
Desktop commands, Web routes, and the remote-desktop adapter authenticate and map DTOs/errors, then call the same Application Core. The frontend uses BackendTransport: TauriTransport locally, WebTransport in the browser and on a workstation. One window binds one Host. One data directory has one Host occupant at a time. See Application Core.
Maiden principles
User-visible completeness outranks keeping a wrong abstraction. Defects are fixed at the origin. Names state behavior. Comments record why a decision exists. Backup files, commented experiments, and incorrect intermediate states are removed. Local source and deployed source are the same artifact. UI copy helps act, decide, understand state, recover, or judge a consequence.

