Files
zesdex/docs/CODEMAPS/architecture.md
T
asepharyana 1d50b94eec feat: update README and documentation for new tools and features
- Updated README.md to reflect the addition of 3 new built-in tools, bringing the total to 37.
- Revised architecture documentation to indicate the increase in tool count.
- Enhanced backend documentation with updated line counts for various modules.
- Modified data documentation to change edit log format from JSON to JSONL.
- Updated dependencies documentation to reflect version upgrades for several crates.
- Improved prompts for auto-reviewer, division implementer, planner, tester, and quality reviewer to enforce stricter coding standards regarding linter bypasses.
- Refactored code in various modules to improve clarity and performance, including updates to error handling and tool execution logic.
- Added comprehensive tests for IPC frame serialization and deserialization.
2026-07-13 14:39:39 +07:00

3.3 KiB

Architecture

Zesdex is a single-process terminal AI coding agent with optional daemon/client split.

System Layout

┌──────────────────────────────────────────────────────┐
│                    main.rs                            │
│  single-process ─┬── daemon ── Unix socket ── client  │
│                  └── attach <id> (TUI-only client)    │
└──────────────────────┬───────────────────────────────┘
                       │
┌──────────────────────▼───────────────────────────────┐
│                   Event Loop                          │
│  ┌────────┐   ┌───────────┐   ┌──────┐   ┌────────┐  │
│  │Input   │──▶│  Actions  │──▶│State │──▶│  TUI   │  │
│  │Handler │   │ (dispatch)│   │      │   │ Render │  │
│  └────────┘   └─────┬─────┘   └──────┘   └────────┘  │
│                     │                                 │
│              ┌──────▼──────┐                          │
│              │ LLM Stream  │                          │
│              │ + Tool Exec │                          │
│              └──────┬──────┘                          │
│                ┌────┴────┐                            │
│                │         │                            │
│          ┌─────▼──┐ ┌───▼────┐                        │
│          │ Tools  │ │Sub-    │                        │
│          │ (37)   │ │agents  │                        │
│          └────────┘ └────────┘                        │
└───────────────────────────────────────────────────────┘

Data Flow

User keystroke → Controller (KeyEvent → Action)
  → apply_action() mutates AppStateRest
  → TUI redraws (ratatui Frame)
  → On submit: LLM request → SSE stream → tool calls → tool results → more LLM
  → Session persisted to disk (editlog, msglog, memory)

Process Modes

Mode Impl Process IPC
Single run_single_process() One No
Daemon run_daemon() Server ipc/server.rs
Attach run_attach() Client ipc/client.rs

Key Files

File Lines Role
src/main.rs 647 Entry, TUI setup, daemon loop, attach loop
src/app/runtime/actions/mod.rs 1815 Action dispatch + LLM stream loop + tool execution
src/controller/input.rs 365 Key event → Action mapping
src/view/mod.rs 975 TUI rendering (ratatui)