semantic-release-bot 0eb5510acb chore(release): 1.0.0 [skip ci]
# 1.0.0 (2026-07-12)

### Bug Fixes

* adjust key event handling to ensure history navigation works correctly ([7bdfd9c](https://github.com/asepharyana/zesdex/commit/7bdfd9c4c4b8eb4bad7d200a54616843780e48c0))
* **lsp:** add download-tier helpers, progress callback, and persist previous install check ([aac1de8](https://github.com/asepharyana/zesdex/commit/aac1de8af647298e118e6e3cb87436f6f48946cf))
* remove broken test that calls nonexistent Harness::classify ([522e1e3](https://github.com/asepharyana/zesdex/commit/522e1e31f29bf8d36f3adf9787300b414e9acbd1))
* remove hardcoded API key for security reasons ([c36c819](https://github.com/asepharyana/zesdex/commit/c36c819304c2034d4ec0f31a500c8cbb664665b1))
* reset overlay state to None after workflow actions ([ab8b098](https://github.com/asepharyana/zesdex/commit/ab8b098a57a4e5f7c8af77305bd8ef490de76b5c))
* route warnings to file and add in-app toast notifications ([89b63b1](https://github.com/asepharyana/zesdex/commit/89b63b1bc22746071a52ec81a46245e945991b4e))

### Features

* add 'todofinish' tool to mark tasks as completed in the todo list; update system prompts for task execution ([48d2dc3](https://github.com/asepharyana/zesdex/commit/48d2dc3ad6f31bd43d4782dbe6fa0a459b2cde4f))
* add API connection state management and update status display ([d52ee96](https://github.com/asepharyana/zesdex/commit/d52ee967eebfb24885a0079389e7cbe7cd459a75))
* add editing and MCP command handling, enhance SSE streaming with usage tracking ([18a41aa](https://github.com/asepharyana/zesdex/commit/18a41aad48467d5e6e5b9ac748106200587b8fd5))
* add initial codemap documentation and architecture overview; include backend, data, dependencies, and frontend details ([7158d36](https://github.com/asepharyana/zesdex/commit/7158d362fdd3d66f0cc71be3c5a01a48ca17327e))
* add lesson export and import functionality ([c1ad206](https://github.com/asepharyana/zesdex/commit/c1ad206a0020a52218f4bee9d3b5773da2e5e880))
* add memory management tools and utility commands ([fe82840](https://github.com/asepharyana/zesdex/commit/fe82840c03524f4c02e389ff9105668b83a7a28a))
* add support for Router provider and enhance command handling ([9f272d5](https://github.com/asepharyana/zesdex/commit/9f272d5973333605b54f226c42536b62a3c6428b))
* add todo management feature; implement todo content tracking and display in the UI ([8ad0421](https://github.com/asepharyana/zesdex/commit/8ad042139ee0d1591496fc201ea163d950839fa2))
* add turn_events to ToolCtx and implement live state updates in spawn tool ([a59feb2](https://github.com/asepharyana/zesdex/commit/a59feb23c426bc543cf2dd9316e2dfbcdf779943))
* auto-detect provider from ~/.claude/settings.json ([56847f3](https://github.com/asepharyana/zesdex/commit/56847f380a4eca42c9776048796300b53671edc8))
* enhance AppConfig loading to merge default providers and set API key ([a98fdb0](https://github.com/asepharyana/zesdex/commit/a98fdb0c7bf90c586ac054e4e2780b3c2c6ef36b))
* enhance command classification and error handling; improve process checks and credential security ([ac99835](https://github.com/asepharyana/zesdex/commit/ac99835eb44fa3298867354974bcdc0ccda685c5))
* enhance error handling in OAuth URL building and client creation; improve tool argument sanitization ([bb621fd](https://github.com/asepharyana/zesdex/commit/bb621fdff2ed1f28dbaf33024dff9666c5af8e9f))
* enhance lesson management and review system ([2ded2d8](https://github.com/asepharyana/zesdex/commit/2ded2d8bf13990e38d16478ae48cc95a14a12dae))
* enhance memory management tools; improve lesson tracking and update descriptions for clarity ([ce36e93](https://github.com/asepharyana/zesdex/commit/ce36e936a6a3388a143dd33e680fe071fe33bdd1))
* enhance OAuth flow validation and improve security checks; add credential read blocking and git operation safeguards ([8767bee](https://github.com/asepharyana/zesdex/commit/8767beef399d582a49304a4af7e95abb901d42d6))
* Enhance OAuth module and OpenRouter client functionality ([802d967](https://github.com/asepharyana/zesdex/commit/802d9677ae37ebb13b0ae7831480a8dbbd1aba29))
* enhance prompts and validation for tool-call safety; enforce error handling and technical debt awareness ([80a8223](https://github.com/asepharyana/zesdex/commit/80a8223ee38ddc1be6da21c80c5dbcddfb286fbc))
* enhance prompts with detailed programmer description and add workspace tree generation ([d957e8d](https://github.com/asepharyana/zesdex/commit/d957e8d4ced99fd0b026a5837bbdd5cf71b5fb59))
* enhance safety and crash resilience in file operations; add fsync to critical writes and checks for path traversal ([87d0aac](https://github.com/asepharyana/zesdex/commit/87d0aac596121b564f2cc817f6cbadfe56747002))
* enhance safety filters for shell commands by normalizing ANSI-C quoting ([d09e440](https://github.com/asepharyana/zesdex/commit/d09e440e7e6c48ee0840b6c128216392dc10ab67))
* enhance strictness of Rust compiler settings and improve code quality by treating warnings as errors ([5334c25](https://github.com/asepharyana/zesdex/commit/5334c2501be2b723248dfe5ee7938c6fd3f1ca5f))
* enhance subagent context with abort flag and implement tool call timeout ([2856dd7](https://github.com/asepharyana/zesdex/commit/2856dd78b8a0d076949208851de5c890b86c3415))
* enhance system prompt handling and input key actions ([1f18202](https://github.com/asepharyana/zesdex/commit/1f182021fb342b9c6b8a265114cb25b3ee35efa9))
* enhance workspace management and history tracking in application state ([8a11a46](https://github.com/asepharyana/zesdex/commit/8a11a469f96f961a65d4d4ba7f295869fc5e4670))
* implement background API connectivity checks and update state based on connectivity status ([40108de](https://github.com/asepharyana/zesdex/commit/40108defc08224a4e4024998a5a2503c7a04a0d9))
* implement company pipeline orchestration with user commands for full, quick, and skip modes ([2310c2d](https://github.com/asepharyana/zesdex/commit/2310c2df7fa2134b857109c66bc7ad2e66867cea))
* implement interactive lesson management and update command handling ([dc0f1c7](https://github.com/asepharyana/zesdex/commit/dc0f1c76475fd815b75c9fd22441df812275962e))
* implement model management commands and overlays for enhanced user interaction ([662e269](https://github.com/asepharyana/zesdex/commit/662e269f2cdbb4747a4bde0db6111ac960460185))
* implement subagent tool gating and timeout mechanisms for enhanced security and performance ([3b711bb](https://github.com/asepharyana/zesdex/commit/3b711bbf3b696656373843201e17563e32b13883))
* implement workflow findings sharing for inter-agent communication in workflows ([a080957](https://github.com/asepharyana/zesdex/commit/a080957c26fff158bce9be79eee1189e675f5467))
* increase maximum concurrency for parallel agents to enhance performance ([562509b](https://github.com/asepharyana/zesdex/commit/562509b0e0bbf0a2b22cf5ff11eddba68e006a27))
* introduce workflow management tools and commands ([53b0cb2](https://github.com/asepharyana/zesdex/commit/53b0cb271f17326ab6ca4f9d9686ddac05026916))
* **lsp:** add LSP provision progress messages to toast notifications ([b20bb95](https://github.com/asepharyana/zesdex/commit/b20bb95ada5d5d8d7b8ecadf15a45c83bce11acb))
* **lsp:** implement auto-provisioning for language servers ([e78813e](https://github.com/asepharyana/zesdex/commit/e78813ecdb8811564325651d894c789acc7eac13))
* **lsp:** implement LSP client and server management ([abc7a58](https://github.com/asepharyana/zesdex/commit/abc7a58e31474a632e781e848cd5c04f78b9beff))
* register Claude model roles (opus-4-8, sonnet-5, haiku-4-5) with auto-detected provider ([b7c83dc](https://github.com/asepharyana/zesdex/commit/b7c83dcb6591d639bf50d781126d7d384718faea))
* remove InsertChar action and inline character handling; streamline input processing and autocomplete triggers ([55bcfda](https://github.com/asepharyana/zesdex/commit/55bcfda0d6ac761f8d36be8e41167392801358a3))
* remove ModelUse and ModelAdd commands; update command handling and provider configuration ([c948869](https://github.com/asepharyana/zesdex/commit/c948869d359e2980a1cd749120d5f6d75b5d9c25))
* remove ModePicker overlay and related commands; update mode handling and documentation ([32155f8](https://github.com/asepharyana/zesdex/commit/32155f8ea8745943053f008f28be5383845d34f6))
* remove session hub and related commands from the application ([93d1bbb](https://github.com/asepharyana/zesdex/commit/93d1bbb7c1568f97c176c3a16e91749b2d5b7a81))
* **security-sidecar:** implement a security tooling sidecar with tiered installer and protocol ([f638901](https://github.com/asepharyana/zesdex/commit/f6389018f5e3b7a73641e774f4250c540e94ae3d))
* update API key handling to use default if not provided ([71d3494](https://github.com/asepharyana/zesdex/commit/71d349437200f088c60a344cabf10240b76cc411))
* update maximum steps and token limits to usize::MAX; add split_spans_into_lines function for improved chat display ([0cc60c1](https://github.com/asepharyana/zesdex/commit/0cc60c12ced402e5fe6b7ee4c6e4f319ac8fcc71))
* update README with enhanced descriptions and security features; refactor catastrophic guard checks and tool execution handling ([4bfbe1d](https://github.com/asepharyana/zesdex/commit/4bfbe1d1b9540a0ba19701c012b5f8801823efe2))
2026-07-12 23:42:23 +00:00
2026-07-12 23:42:23 +00:00
2026-07-12 23:42:23 +00:00
2026-07-12 23:42:23 +00:00

Zesdex

Autonomous AI coding agent in a terminal-based TUI.

Zesdex is a Rust-powered AI assistant that operates directly in your terminal via a rich TUI interface. It combines large language model intelligence with a comprehensive set of tools to explore, understand, and modify codebases autonomously — with built-in guardrails at every layer.


Features

Core

  • TUI Interface — Full-screen terminal UI with chat panel, input bar, and status bar built with ratatui and crossterm.
  • Daemon Architecture — Run as a background daemon with client attach/detach via Unix domain sockets. The daemon processes state; clients only render.
  • IPC Protocol — Bidirectional state synchronization between daemon and client processes with diff-based updates.
  • Provider Agnostic — Configurable AI model providers with dynamic model selection, per-role temperature/token limits, and API key management.

Tool System (34 built-in tools)

Category Tools
Filesystem read, write, edit, delete
Search grep (recursive text), glob (file patterns)
Shell bash, bash_output, bash_kill
Git git_operator, git_worktree, git_cred
Memory remember, recall, forget
Planning plan_enter, plan_ready, seqthink
Workflow workflow_run, note_finding, company_pipeline
Utility cd, dir_list, dir_cache_update, pong, todowrite, todofinish
LSP lsp_connect, lsp_diagnostics, lsp_hover, lsp_completion, lsp_definition, lsp_references, lsp_disconnect

Intelligence

  • Company Pipeline — Autonomous agent orchestration modeled as a company with specialized divisions. The CEO (main agent) automatically delegates work to 5 divisions in sequence:

    Strategy → Engineering → Quality → Security → Documentation
    

    Each division has a dedicated role, toolset, and system prompt. Controlled via /pipeline full|quick|skip.

  • Workflow Engine — Orchestrate complex multi-step tasks with parallel sub-agents, pipelines, and phased execution. Spawn independent workers that share findings in real-time.

  • Self-Learning — Persistent memory system that stores lessons, references, and project knowledge across sessions. Memories include provenance tracking, lifecycle management, and scope isolation.

  • Self-Review — Review subagents trigger automatically after each code edit (inline) and at turn completion (background). Three types: code quality, architecture, and security.

  • Self-Healing — On build/test failures, spawns a sub-agent with the error context to autonomously fix issues before reporting them to the user.

  • MCP SupportModel Context Protocol integration for connecting to external AI tool servers.

  • Sequential Thinking — Chain-of-thought reasoning tool for step-by-step problem decomposition.

  • Session Locking — Prevents multiple processes from operating on the same session directory.

Session Management

  • Multiple concurrent sessions with history, rewind, and transcript persistence.
  • Per-session edit logs with full change tracking.
  • Session archival and summary generation.

Architecture

src/
├── main.rs                    # Entry point: single-process, daemon, or attach mode
├── resources.rs               # Embedded resources (help text, system prompts)
├── app/
│   ├── state/                 # AppStateRest — immutable-rest state model
│   │   ├── rest.rs            # Core state struct
│   │   ├── types.rs           # Overlay, Toast, Origin enums
│   │   ├── snapshot.rs        # State snapshots for IPC
│   │   ├── diff.rs            # Diff-based state synchronization
│   │   ├── runtime.rs         # Runtime state mutations
│   │   └── misc.rs            # DirCache and miscellaneous state helpers
│   ├── runtime/               # Action dispatch and event loop
│   │   ├── actions/           # Action enum and apply_action reducer
│   │   ├── stream/            # LLM streaming and tool execution
│   │   │   └── tools/         # Tool harness integration
│   │   │   └── turn.rs        # Turn orchestration
│   │   ├── event_loop/        # Main event loop and shortsend
│   │   ├── commands.rs        # Slash command dispatch
│   │   └── shortsend.rs       # Short-lived async send helper
│   ├── mode/                  # UI modes and overlays (13 modes)
│   │   ├── bash.rs            # Bash panel mode
│   │   ├── editor.rs          # Multi-line editor mode
│   │   ├── effort.rs          # Effort level selector
│   │   ├── help.rs            # Help overlay
│   │   ├── key_input.rs       # Raw key input mode
│   │   ├── loading.rs         # Loading spinner overlay
│   │   ├── mcp.rs             # MCP server management
│   │   ├── quit_confirm.rs    # Quit confirmation dialog
│   │   ├── rewind.rs          # Session rewind mode
│   │   ├── settings.rs        # Settings panel
│   │   ├── todo.rs            # Task list overlay
│   │   └── workflow.rs        # Workflow visualization
│   ├── harness.rs             # Tool harness for agent execution
│   ├── workflow/              # Workflow engine
│   │   ├── script.rs          # Workflow script DSL
│   │   ├── engine.rs          # Workflow executor
│   │   └── company.rs         # Company pipeline orchestrator
│   ├── mcp/                   # MCP client manager
│   │   └── manager.rs         # MCP server lifecycle and tool exposure
│   ├── subagent/              # Sub-agent management
│   │   ├── spawn.rs           # AgentDefinition and spawning
│   │   ├── engine.rs          # Sub-agent event loop
│   │   ├── context.rs         # Context construction for sub-agents
│   │   └── event.rs           # Progress event types
│   ├── bgbash/                # Background bash job management
│   │   ├── job.rs             # Background job handle
│   │   └── control.rs         # Bash control (bg/fg/kill)
│   ├── lsp/                   # LSP client management
│   │   ├── client.rs          # LSP client connection wrapper
│   │   └── provisioner.rs     # Auto-provisioning of LSP servers
│   └── review/                # Self-review quality system
├── controller/
│   ├── input.rs               # Key event → Action mapping
│   └── command.rs             # Slash command parser
├── dto/
│   ├── chat/                  # Message, ToolCall, Role types
│   │   ├── message.rs         # Chat message types
│   │   ├── tool.rs            # Tool call/result types
│   │   └── mod.rs
│   └── provider/              # AI provider request/response/usage types
│       ├── request.rs         # Provider request schema
│       ├── response.rs        # Provider response schema
│       └── usage.rs           # Token usage tracking
├── ipc/
│   ├── protocol.rs            # ClientRequest, DaemonFrame, StatePayload
│   ├── server.rs              # Unix socket server
│   ├── client.rs              # Unix socket client
│   ├── conn.rs                # Framed connection
│   ├── frame.rs               # Length-prefixed frame encoding
│   ├── snapshot.rs            # State snapshot serialization
│   └── diff.rs                # Binary diff for state sync
├── model/
│   ├── store.rs               # File-based storage (~/.config/zesdex/)
│   ├── session.rs             # Session CRUD and listing
│   ├── settings.rs            # User settings (provider, model, tokens)
│   ├── app_config.rs          # Provider definitions and model roles
│   ├── memory.rs              # Persistent memory with frontmatter
│   ├── editlog.rs             # Edit history tracking
│   ├── msglog/                # Message log (SQLite-backed)
│   │   ├── schema.rs          # SQLite schema
│   │   ├── query.rs           # Query helpers
│   │   ├── blobs.rs           # Large blob storage
│   │   └── summary.rs         # Session summarization
│   ├── agent_def/             # Agent definitions (builtin, global, session)
│   │   ├── builtin.rs         # Built-in agent profiles
│   │   ├── global.rs          # Global agent config
│   │   └── session.rs         # Per-session agent config
│   ├── conversation.rs        # Conversation helpers
│   └── session_lock.rs        # Flock-based session locking
├── service/
│   ├── provider.rs            # AI provider abstraction
│   └── oauth/                 # OAuth PKCE flow with loopback server
│       ├── loopback.rs        # Local HTTP server for OAuth redirect
│       ├── manager.rs         # OAuth token manager
│       ├── pkce.rs            # PKCE code challenge/verifier
│       └── mod.rs
├── tool/                      # 34 tool implementations
│   ├── fs/                    # read, write, edit, delete
│   │   ├── read.rs
│   │   ├── write.rs
│   │   ├── edit.rs
│   │   ├── delete.rs
│   │   └── helpers.rs         # Path resolution and validation
│   ├── search.rs              # grep, glob
│   ├── shell.rs               # bash
│   ├── bash_tools.rs          # bash_output, bash_kill
│   ├── git_operator.rs        # git operations
│   ├── git_worktree.rs        # git worktree management
│   ├── git_cred.rs            # git credential store/get/erase
│   ├── memory/                # remember, forget, recall
│   │   ├── remember.rs
│   │   ├── forget.rs
│   │   └── recall.rs
│   ├── plan.rs                # plan_enter, plan_ready
│   ├── seqthink.rs            # Sequential thinking
│   ├── workflow.rs            # workflow_run, note_finding
│   ├── utility/               # cd, dir_list, dir_cache_update, pong, todowrite, todofinish
│   │   ├── cd.rs
│   │   ├── dir_list.rs
│   │   ├── dir_cache_update.rs
│   │   ├── pong.rs
│   │   ├── todowrite.rs
│   │   └── todofinish.rs
│   ├── lsp/                   # LSP tools (connect, diagnostics, hover, etc.)
│   │   └── mod.rs
│   └── shell_filter/          # Shell output filtering (credentials, git)
│       ├── credentials.rs
│       ├── git.rs
│       └── mod.rs
└── view/                      # TUI rendering
    ├── chat.rs                # Chat transcript with markdown
    ├── markdown.rs            # Markdown → ratatui spans
    ├── status.rs              # Status bar
    ├── theme.rs               # Color scheme
    └── workflow.rs            # Workflow visualization

Usage

# Run in single-process mode (default)
zesdex

# Run as a background daemon
zesdex --daemon

# Attach to a running daemon session
zesdex --attach <session-id>

# Set log level
RUST_LOG=debug zesdex

Key Bindings

Binding Action
Ctrl+Q Quit
Ctrl+H Help overlay
Ctrl+P Settings overlay
Ctrl+B Bash panel
Ctrl+S Session hub
Ctrl+T Task list
Ctrl+W Workflow view
Ctrl+K Key input mode
Esc Cancel / back
Tab Autocomplete
↑/↓ History / navigation
Scroll Mouse scroll in chat

Slash Commands

Command Description
/help Show help
/clear Clear transcript
/model Select AI model provider
/pipeline Show current pipeline mode
/pipeline full Force full company pipeline (5 divisions) on next request
/pipeline quick Force quick pipeline (3 divisions) on next request
/pipeline skip Skip pipeline — handle next request directly
/exit Exit application
/settings Open settings
Any text Sent to the AI assistant as a prompt

Configuration

All configuration lives in ~/.config/zesdex/ (or platform equivalent via the dirs crate).

File Purpose
settings.json Provider selection, model, temperature, max tokens, review settings, workflow concurrency
app_config.json AI provider definitions (name, API base URL, auth type, default model)
memory/ Persistent lesson and reference storage (Markdown with YAML frontmatter)
sessions/ Per-session transcripts, edit logs, and activity data
run/ Unix domain sockets for daemon mode

Provider Configuration

Providers are defined in app_config.json:

{
  "providers": {
    "my-provider": {
      "api_base": "https://api.example.com/v1",
      "api_key_env": "MY_API_KEY",
      "default_model": "model-name"
    }
  },
  "model_roles": {
    "default": {
      "provider": "my-provider",
      "model": "model-name",
      "max_tokens": 8192,
      "temperature": 0.7
    }
  },
  "default_provider": "my-provider",
  "default_model": "model-name"
}

Settings

Key settings in settings.json:

Setting Default Description
review_enabled true Enable self-review after tool execution
review_max_lessons_per_run 5 Max lessons loaded per review cycle
adaptive_review_max_skip 3 Consecutive passes before skipping review
verify_command null Optional command to verify changes
workflow_max_concurrency 5 Max parallel sub-agents in workflows
session_archive_enabled true Auto-archive completed sessions

Installation

Prerequisites

  • Rust 2021 edition toolchain (rustup)

Build from Source

git clone <repository-url>
cd zesdex
cargo build --release
./target/release/zesdex

Development

Commit Convention

Project ini menggunakan Conventional Commits untuk otomatis menentukan versi rilis (melalui semantic-release).

Format:

<type>(<scope>): <description>

[optional body]

[optional footer]

<type> — menentukan bump version:

Type Bump Keterangan
feat minor Fitur baru
fix patch Perbaikan bug
chore patch Tugas maintenance, refactor ringan
docs patch Perubahan dokumentasi
refactor patch Refactor kode (tanpa perubahan fungsional)
test patch Penambahan atau perbaikan test
style patch Perubahan formatting, whitespace, dll
perf patch Optimasi performa
ci patch Perubahan CI/CD

BREAKING CHANGE pada body commit → major (apa pun typenya).

Contoh:

feat(agent): add workspace-aware file search

Implement context-aware search scoped to current workspace directory.

BREAKING CHANGE: search results now filter by workspace scope.
fix(ipc): handle partial frame on unix socket reconnect
chore: update rustls to 0.23

Release Workflow

Push ke branch main akan memicu:

  1. CIcargo build --release + cargo test
  2. Semantic Release — analisis commit → update Cargo.toml + CHANGELOG.md → git tag → GitHub Release dengan binary

License

See LICENSE for details.

S
Description
No description provided
Readme
2.3 MiB
Languages
Rust 99.4%
Nix 0.3%
JavaScript 0.1%