# xintaofei/codeg architecture

> Architecture diagram of the GitHub repository xintaofei/codeg, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/xintaofei/codeg
- Repository: https://github.com/xintaofei/codeg

## Overview

Codeg is a multi-agent coding workspace: users work with supported coding-agent sessions in a unified interface, can delegate work across agents, and can run isolated background tasks for later review. The desktop/server application combines a frontend transport and Rust backend with ACP session management, persistent conversation/task state, and event delivery. README-documented capabilities also include browser tooling, chat-channel integrations, automations, and scientific skills. Source excerpts show key calls for task execution, transport selection, and event delivery; other capability links are documented rather than verified from sampled implementation.

Main entry points: [`src-tauri/src/acp/manager.rs`](https://github.com/xintaofei/codeg/blob/main/src-tauri/src/acp/manager.rs) (ACP session manager), [`src-tauri/src/work_task/engine.rs`](https://github.com/xintaofei/codeg/blob/main/src-tauri/src/work_task/engine.rs) (Work-task engine), [`src/lib/transport/index.ts`](https://github.com/xintaofei/codeg/blob/main/src/lib/transport/index.ts) (Frontend transport), [`src-tauri/src/db/mod.rs`](https://github.com/xintaofei/codeg/blob/main/src-tauri/src/db/mod.rs) (Persistent database)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workspace["Workspace experience"]
  node_frontend["Workspace UI<br/>[page.tsx]"]
  node_tasks_ui["Task board<br/>[tasks-page.tsx]"]
end

subgraph group_agents["Agent runtime"]
  node_acp["ACP session manager<br/>[manager.rs]"]
  node_registry["Agent registry<br/>[registry.rs]"]
  node_agent["Agent CLI"]
  node_conversations["Conversation service"]
end

subgraph group_execution["Background execution"]
  node_tasks["Work-task engine<br/>[engine.rs]"]
  node_automation["Automation engine<br/>[engine.rs]"]
end

subgraph group_platform["Application platform"]
  node_transport["Frontend transport<br/>[index.ts]"]
  node_api["API client<br/>[api.ts]"]
  node_server["Web server<br/>[router.rs]"]
  node_commands["Command handlers<br/>[acp.rs]"]
  node_db[("Persistent database<br/>[mod.rs]")]
  node_events["Event bridge<br/>[event_bridge.rs]"]
end

subgraph group_integrations["Tools and integrations"]
  node_browser["Browser tools<br/>[mod.rs]"]
  node_chat["Chat channels<br/>[manager.rs]"]
  node_science["Science skills"]
end

node_user(("User"))

node_user -->|"uses"| node_frontend
node_frontend -.->|"calls through"| node_transport
node_tasks_ui -->|"requests tasks"| node_api
node_api -->|"dispatches calls"| node_transport
node_transport -.->|"connects to"| node_server
node_server -.->|"routes requests"| node_commands
node_commands -.->|"controls sessions"| node_acp
node_acp -.->|"launches sessions"| node_agent
node_registry -.->|"resolves agents"| node_agent
node_acp -->|"records sessions"| node_conversations
node_conversations -.->|"reads and writes"| node_db
node_tasks_ui -.->|"submits work"| node_tasks
node_tasks -->|"launches task agent"| node_acp
node_tasks -.->|"stores task state"| node_db
node_automation -->|"loads and settles runs"| node_db
node_automation -->|"launches agent prompt"| node_acp
node_acp -->|"publishes events"| node_events
node_user -.->|"uses browser tools"| node_browser
node_user -.->|"connects chat channels"| node_chat
node_user -.->|"uses science skills"| node_science

click node_frontend "https://github.com/xintaofei/codeg/blob/main/src/app/workspace/page.tsx"
click node_tasks_ui "https://github.com/xintaofei/codeg/blob/main/src/components/tasks/tasks-page.tsx"
click node_transport "https://github.com/xintaofei/codeg/blob/main/src/lib/transport/index.ts"
click node_api "https://github.com/xintaofei/codeg/blob/main/src/lib/api.ts"
click node_server "https://github.com/xintaofei/codeg/blob/main/src-tauri/src/web/router.rs"
click node_commands "https://github.com/xintaofei/codeg/blob/main/src-tauri/src/commands/acp.rs"
click node_acp "https://github.com/xintaofei/codeg/blob/main/src-tauri/src/acp/manager.rs"
click node_registry "https://github.com/xintaofei/codeg/blob/main/src-tauri/src/acp/registry.rs"
click node_conversations "https://github.com/xintaofei/codeg/blob/main/src-tauri/src/db/service/conversation_service.rs"
click node_db "https://github.com/xintaofei/codeg/blob/main/src-tauri/src/db/mod.rs"
click node_tasks "https://github.com/xintaofei/codeg/blob/main/src-tauri/src/work_task/engine.rs"
click node_automation "https://github.com/xintaofei/codeg/blob/main/src-tauri/src/automation/engine.rs"
click node_events "https://github.com/xintaofei/codeg/blob/main/src-tauri/src/web/event_bridge.rs"
click node_browser "https://github.com/xintaofei/codeg/blob/main/src-tauri/src/browser/mod.rs"
click node_chat "https://github.com/xintaofei/codeg/blob/main/src-tauri/src/chat_channel/manager.rs"
click node_science "https://github.com/xintaofei/codeg/tree/main/src-tauri/science/skills"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_frontend,node_tasks_ui,node_user toneBlue
class node_acp,node_registry,node_agent,node_conversations toneAmber
class node_tasks,node_automation toneMint
class node_transport,node_api,node_server,node_commands,node_db,node_events toneRose
class node_browser,node_chat,node_science toneIndigo
```

## Components

### Workspace experience

- [Workspace UI](https://github.com/xintaofei/codeg/blob/main/src/app/workspace/page.tsx): `src/app/workspace/page.tsx`
- [Task board](https://github.com/xintaofei/codeg/blob/main/src/components/tasks/tasks-page.tsx): `src/components/tasks/tasks-page.tsx`

### Agent runtime

- [ACP session manager](https://github.com/xintaofei/codeg/blob/main/src-tauri/src/acp/manager.rs): `src-tauri/src/acp/manager.rs`
- [Agent registry](https://github.com/xintaofei/codeg/blob/main/src-tauri/src/acp/registry.rs): `src-tauri/src/acp/registry.rs`
- **Agent CLI**
- [Conversation service](https://github.com/xintaofei/codeg/blob/main/src-tauri/src/db/service/conversation_service.rs): `src-tauri/src/db/service/conversation_service.rs`

### Background execution

- [Work-task engine](https://github.com/xintaofei/codeg/blob/main/src-tauri/src/work_task/engine.rs): `src-tauri/src/work_task/engine.rs`
- [Automation engine](https://github.com/xintaofei/codeg/blob/main/src-tauri/src/automation/engine.rs): `src-tauri/src/automation/engine.rs`

### Application platform

- [Frontend transport](https://github.com/xintaofei/codeg/blob/main/src/lib/transport/index.ts): `src/lib/transport/index.ts`
- [API client](https://github.com/xintaofei/codeg/blob/main/src/lib/api.ts): `src/lib/api.ts`
- [Web server](https://github.com/xintaofei/codeg/blob/main/src-tauri/src/web/router.rs): `src-tauri/src/web/router.rs`
- [Command handlers](https://github.com/xintaofei/codeg/blob/main/src-tauri/src/commands/acp.rs): `src-tauri/src/commands/acp.rs`
- [Persistent database](https://github.com/xintaofei/codeg/blob/main/src-tauri/src/db/mod.rs): `src-tauri/src/db/mod.rs`
- [Event bridge](https://github.com/xintaofei/codeg/blob/main/src-tauri/src/web/event_bridge.rs): `src-tauri/src/web/event_bridge.rs`

### Tools and integrations

- [Browser tools](https://github.com/xintaofei/codeg/blob/main/src-tauri/src/browser/mod.rs): `src-tauri/src/browser/mod.rs`
- [Chat channels](https://github.com/xintaofei/codeg/blob/main/src-tauri/src/chat_channel/manager.rs): `src-tauri/src/chat_channel/manager.rs`
- [Science skills](https://github.com/xintaofei/codeg/tree/main/src-tauri/science/skills): `src-tauri/science/skills`

### Other components

- **User**

## Connections

- User → Workspace UI: uses (evidence: `README.md`)
- Workspace UI → Frontend transport: calls through
- Task board → API client: requests tasks (evidence: `src/components/tasks/tasks-page.tsx`)
- API client → Frontend transport: dispatches calls (evidence: `src/lib/api.ts`)
- Frontend transport → Web server: connects to
- Web server → Command handlers: routes requests
- Command handlers → ACP session manager: controls sessions (evidence: `src-tauri/src/acp/manager.rs`)
- ACP session manager → Agent CLI: launches sessions
- Agent registry → Agent CLI: resolves agents
- ACP session manager → Conversation service: records sessions (evidence: `src-tauri/src/acp/manager.rs`)
- Conversation service → Persistent database: reads and writes
- Task board → Work-task engine: submits work
- Work-task engine → ACP session manager: launches task agent
- Work-task engine → Persistent database: stores task state
- Automation engine → Persistent database: loads and settles runs (evidence: `src-tauri/src/automation/engine.rs`)
- Automation engine → ACP session manager: launches agent prompt (evidence: `src-tauri/src/automation/engine.rs`)
- ACP session manager → Event bridge: publishes events (evidence: `src-tauri/src/web/event_bridge.rs`)
- User → Browser tools: uses browser tools (evidence: `README.md`)
- User → Chat channels: connects chat channels (evidence: `README.md`)
- User → Science skills: uses science skills (evidence: `README.md`)
