Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,13 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [Unreleased]

## [0.11.1] - 2026-02-19

### Added
- Persistent CLI input history with rustyline: arrow key navigation, prefix search, line editing, SQLite-backed persistence across restarts (#604)
- Clickable markdown links in TUI via OSC 8 hyperlinks — `[text](url)` renders as terminal-clickable link with URL sanitization and scheme allowlist (#580)
- `@`-triggered fuzzy file picker in TUI input — type `@` to search project files by name/path/extension with real-time filtering (#600)
- Command palette in TUI with read-only agent management commands (#599)
- Orchestrator provider option in `zeph init` wizard for multi-model routing setup (#597)
- `zeph vault` CLI subcommands: `init` (generate age keypair), `set` (store secret), `get` (retrieve secret), `list` (show keys), `rm` (remove secret) (#598)
- Atomic file writes for vault operations with temp+rename strategy (#598)
Expand Down Expand Up @@ -966,7 +969,8 @@ let agent = Agent::new(provider, channel, &skills_prompt, executor);
- Agent calls channel.send_typing() before each LLM request
- Agent::run() uses tokio::select! to race channel messages against shutdown signal

[Unreleased]: https://github.com/bug-ops/zeph/compare/v0.11.0...HEAD
[Unreleased]: https://github.com/bug-ops/zeph/compare/v0.11.1...HEAD
[0.11.1]: https://github.com/bug-ops/zeph/compare/v0.11.0...v0.11.1
[0.11.0]: https://github.com/bug-ops/zeph/compare/v0.10.0...v0.11.0
[0.10.0]: https://github.com/bug-ops/zeph/compare/v0.9.9...v0.10.0
[0.9.9]: https://github.com/bug-ops/zeph/compare/v0.9.8...v0.9.9
Expand Down
26 changes: 13 additions & 13 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 13 additions & 13 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ resolver = "3"
[workspace.package]
edition = "2024"
rust-version = "1.88"
version = "0.11.0"
version = "0.11.1"
authors = ["bug-ops"]
license = "MIT"
repository = "https://github.com/bug-ops/zeph"
Expand Down Expand Up @@ -89,18 +89,18 @@ unicode-width = "0.2"
url = "2.5"
uuid = "1.21"
cron = "0.15"
zeph-a2a = { path = "crates/zeph-a2a", version = "0.11.0" }
zeph-channels = { path = "crates/zeph-channels", version = "0.11.0" }
zeph-core = { path = "crates/zeph-core", version = "0.11.0" }
zeph-index = { path = "crates/zeph-index", version = "0.11.0" }
zeph-llm = { path = "crates/zeph-llm", version = "0.11.0" }
zeph-mcp = { path = "crates/zeph-mcp", version = "0.11.0" }
zeph-memory = { path = "crates/zeph-memory", version = "0.11.0" }
zeph-skills = { path = "crates/zeph-skills", version = "0.11.0" }
zeph-tools = { path = "crates/zeph-tools", version = "0.11.0" }
zeph-gateway = { path = "crates/zeph-gateway", version = "0.11.0" }
zeph-scheduler = { path = "crates/zeph-scheduler", version = "0.11.0" }
zeph-tui = { path = "crates/zeph-tui", version = "0.11.0" }
zeph-a2a = { path = "crates/zeph-a2a", version = "0.11.1" }
zeph-channels = { path = "crates/zeph-channels", version = "0.11.1" }
zeph-core = { path = "crates/zeph-core", version = "0.11.1" }
zeph-index = { path = "crates/zeph-index", version = "0.11.1" }
zeph-llm = { path = "crates/zeph-llm", version = "0.11.1" }
zeph-mcp = { path = "crates/zeph-mcp", version = "0.11.1" }
zeph-memory = { path = "crates/zeph-memory", version = "0.11.1" }
zeph-skills = { path = "crates/zeph-skills", version = "0.11.1" }
zeph-tools = { path = "crates/zeph-tools", version = "0.11.1" }
zeph-gateway = { path = "crates/zeph-gateway", version = "0.11.1" }
zeph-scheduler = { path = "crates/zeph-scheduler", version = "0.11.1" }
zeph-tui = { path = "crates/zeph-tui", version = "0.11.1" }

[workspace.lints.clippy]
all = "warn"
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ Skills **evolve**: failure detection triggers self-reflection, and the agent gen
| **A2A** | Agent-to-agent communication via JSON-RPC 2.0 with SSE streaming |
| **Audio input** | Speech-to-text via OpenAI Whisper API or local Candle Whisper (offline, feature-gated); Telegram and Slack audio files transcribed automatically |
| **Vision** | Image input via CLI (`/image`), TUI (`/image`), and Telegram photo messages; supported by Claude, OpenAI, and Ollama providers (20 MB max, automatic MIME detection) |
| **Channels** | CLI, Telegram (text + voice), Discord, Slack, TUI — all with streaming support |
| **Channels** | CLI (with persistent input history), Telegram (text + voice), Discord, Slack, TUI — all with streaming support |
| **Gateway** | HTTP webhook ingestion with bearer auth and rate limiting |
| **Native tool_use** | Structured tool calling via Claude/OpenAI APIs; text fallback for local models |

Expand All @@ -274,9 +274,10 @@ Skills **evolve**: failure detection triggers self-reflection, and the agent gen

A full terminal UI powered by ratatui — not a separate monitoring tool, but an integrated experience:

- Tree-sitter syntax highlighting and markdown rendering
- Tree-sitter syntax highlighting and markdown rendering with clickable hyperlinks (OSC 8)
- Syntax-highlighted diff view for file edits (compact/expanded toggle)
- `@`-triggered fuzzy file picker with real-time filtering (nucleo-matcher)
- Command palette for quick access to agent actions
- Live metrics: token usage, filter savings, cost tracking, confidence distribution
- Conversation history with message queueing
- Responsive input handling during streaming with render cache and event batching
Expand Down
2 changes: 1 addition & 1 deletion crates/zeph-scheduler/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ scheduler.register_handler(&TaskKind::UpdateCheck, Box::new(handler));
Notification format sent via the channel:

```
New version available: v0.12.0 (current: v0.11.0).
New version available: v0.12.0 (current: v0.11.1).
Update: https://github.com/bug-ops/zeph/releases/tag/v0.12.0
```

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ expression: output
│ ███████╗███████╗██║ ██║ ██║ │
│ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═╝ │
│ │
│ v0.11.0
│ v0.11.1
│ │
│ Type a message to start. │
│ │
Expand Down
11 changes: 9 additions & 2 deletions docs/src/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,19 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

See the full [CHANGELOG.md](https://github.com/bug-ops/zeph/blob/main/CHANGELOG.md) in the repository for the complete version history.

## [Unreleased]
## [0.11.1] - 2026-02-19

### Added
- Persistent CLI input history with rustyline: arrow key navigation, prefix search, line editing, SQLite-backed persistence across restarts (#604)
- Clickable markdown links in TUI via OSC 8 hyperlinks (#580)
- `@`-triggered fuzzy file picker in TUI input (#600)
- Orchestrator provider option in `zeph init` wizard for multi-model routing setup (#597)
- Command palette in TUI with read-only agent management commands (#599)
- Orchestrator provider option in `zeph init` wizard (#597)
- `zeph vault` CLI subcommands: init, set, get, list, rm (#598)
- Auto-update check via GitHub Releases API (#588)

### Fixed
- `--vault`, `--vault-key`, `--vault-path` CLI flags restored (#587)

## [0.11.0] - 2026-02-19

Expand Down
2 changes: 1 addition & 1 deletion docs/src/getting-started/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ ZEPH_INSTALL_DIR=/usr/local/bin curl -fsSL https://github.com/bug-ops/zeph/relea
Install a specific version:

```bash
curl -fsSL https://github.com/bug-ops/zeph/releases/latest/download/install.sh | sh -s -- --version v0.11.0
curl -fsSL https://github.com/bug-ops/zeph/releases/latest/download/install.sh | sh -s -- --version v0.11.1
```

After installation, run the configuration wizard:
Expand Down
2 changes: 1 addition & 1 deletion docs/src/guide/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ zeph [OPTIONS] [COMMAND]
| `init` | Interactive configuration wizard (see [Configuration](../getting-started/configuration.md)) |
| `vault` | Manage the age-encrypted secrets vault (see [Secrets Management](vault.md)) |

When no subcommand is given, Zeph starts the agent loop.
When no subcommand is given, Zeph starts the agent loop with persistent input history (arrow keys to navigate, prefix search with Ctrl+R, line editing via rustyline). History is stored in SQLite and persists across restarts.

### `zeph init`

Expand Down
29 changes: 28 additions & 1 deletion docs/src/guide/tui.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ ZEPH_TUI=true zeph

```text
+-------------------------------------------------------------+
| Zeph v0.9.8 | Provider: orchestrator | Model: claude-son... |
| Zeph v0.11.1 | Provider: orchestrator | Model: claude-son... |
+----------------------------------------+--------------------+
| | Skills (3/15) |
| | - setup-guide |
Expand Down Expand Up @@ -77,6 +77,7 @@ ZEPH_TUI=true zeph
| `Ctrl+C` | Quit application |
| `Ctrl+U` | Clear input line |
| `Ctrl+K` | Clear message queue |
| `Ctrl+P` | Open command palette |

### File Picker

Expand All @@ -92,6 +93,32 @@ Typing `@` in Insert mode opens a fuzzy file search popup above the input area.

All other keys are blocked while the picker is visible.

### Command Palette

Press `Ctrl+P` in Insert mode to open the command palette. The palette provides read-only agent management commands for inspecting runtime state without leaving the TUI.

| Key | Action |
|-----|--------|
| Any character | Filter commands by substring match |
| `Up` / `Down` | Navigate the command list |
| `Enter` | Execute selected command |
| `Backspace` | Remove last query character |
| `Escape` | Close palette without executing |

Available commands:

| Command | Description |
|---------|-------------|
| `skill:list` | List loaded skills |
| `mcp:list` | List MCP servers and tools |
| `memory:stats` | Show memory statistics |
| `view:cost` | Show cost breakdown |
| `view:tools` | List available tools |
| `view:config` | Show active configuration |
| `view:autonomy` | Show autonomy/trust level |

All commands are read-only and do not modify agent state. Results are displayed as system messages in the chat panel.

### Confirmation Modal

When a destructive command requires confirmation, a modal overlay appears:
Expand Down
Loading