All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Telegram (sven-node): scaffolding for Telegram integration.
1.9.0 - 2026-03-22
- sven-frontend: shared agent-wiring layer extracted from
sven-tuifor reuse across frontends. - sven-gui: Slint desktop GUI;
sven-uimerged intosven --gui(single binary). - GUI: session persistence; lazy chat loading; per-session token usage persisted; full markdown in the chat view; markdown in thinking and tool result bubbles; scrollable tool bubbles; todo tool results in chat; vertical chat layout; sidebar search filter; SearchInput/SearchBar styling; Slint GUI skill.
- Channels (
sven-channels):Channeltrait and multi-platform adapters; E2E integration tests for channel → manager → reply. - Scheduler (
sven-scheduler): cron, interval, and one-shot jobs. - Integrations (
sven-integrations): email, calendar, and voice. - Memory (
sven-memory): SQLite store with FTS5 semantic search. - Config: schema for channels, scheduler, email, calendar, voice, memory, and webhooks.
- Node: generic webhook endpoints; proactive agent integrations wired through bootstrap and tool registry.
- Skills: load system-installed skills from
/usr/shareand/usr/local; always reload skill content from disk when the agent loads a skill.
- GUI: nested-runtime panic on
--gui; Slint layout, interaction, display, ask-question UX, picker, queue, spinners, markdown wrapping, session list busy indicator, completion, errors, clear, highlighting (multiple rounds of fixes). - TUI: markdown aligned with GUI (block quote vs list); first completed todo item no longer shows a stray bullet.
- GUI: large UI refactor; removed standalone “current tool” display in favor of clearer chat-centric UX.
- Docs: README condensed and expanded with accurate feature lists; user guides for channels, scheduler, email, calendar, voice, memory, webhooks, and use cases; AGENTS.md updated for sven-frontend, sven-gui, and dual-binary layout.
1.8.1 - 2026-03-15
- Tests (
sven-model): coverage that the full MCP tool schema is passed through to the model API.
- MCP: omit
nullcapabilitiesininitializefor strict servers; show disabled status whenenabled: falsein config. - MCP: wait for tools in headless mode and refresh on
ToolsChanged. - TUI: compile fixes for ratatui 0.30;
CompletionOverlayviewport now driven byListState(removed fixedmax_visible).
1.8.0 - 2026-03-14
- MCP client: broad client-side MCP server support (SSE, sessions, OAuth integration).
- MCP OAuth: PKCE flow with auto-auth, token lifecycle, and scope discovery (no manual scope lists).
- CLI:
sven mcpauth flow; default OAuth redirectsven://sven.mcpwith container fallback;cursor://support. - Release:
makerelease targets accept--no-confirmfor non-interactive runs.
- MCP / OAuth: RFC-compliant PKCE; stop perpetual auth loops; trigger OAuth on 401; skip OAuth flows in headless/CI; improved SSE and session handling.
- Config: recognize
mcp_servers; fix SKILL.md frontmatter parsing.
- Headless: apply settings on startup; reduce unlabelled noise; show context path.
- TUI: focus the input pane when it is clicked.
1.7.5 - 2026-03-13
- TUI: conversation cost in the status bar.
- GDB:
gdb_start_serverMakefile target made target-agnostic. - Docs:
AGENTS.mdadded.
- Tokens / UI: status bar token display; subagents run at correct depth; restore subagent chat hierarchy on restart with new chat at top; suppress noisy tracing when a subagent runs
acp serve. - Subagents & sessions: subagent UX, agent error handling, and background session completeness.
- sven-config: default model auto-detection priority (OpenRouter first) with regression test.
- CLI: auto-enable headless mode when a positional prompt is provided.
- TUI: focus the chat list on click so keyboard navigation applies immediately.
1.7.4 - 2026-03-12
- OpenRouter Auto & Free routers:
openrouter/autoandopenrouter/freeare registered in the model catalog and resolvable via--model openrouter/auto/--model openrouter/free.openrouter/autois the default out-of-the-box model (replacingopenai/gpt-4o) whenOPENROUTER_API_KEYis available.auto_router_allowed_modelsindriver_optionsmaps to the nestedpluginsstructure expected by the OpenRouter Auto Router API. - Benchmark: Terminal-Bench 2.0 evaluation via Harbor.
- TUI drag/resize: unified system —
SplitPrefsextracted fromLayoutCachefor durable split dimensions;anchor_offsetonResizeDragso borders track the grab point;PeersSplitBorderinHitArea; singlehit_test()path. - Peers-split border drag: use
peers_pane.y + peers_pane.heightas the sidebar bottom (fixes upward-drag snap to minimum). - Subagents: inherit the live model from the parent.
- Cache / tokens: cache hit rate capped near ~49% from double-counted tokens — corrected.
- CI: record resolved model in chat output documents.
- Model catalog:
models.yamlparsed once per process viaOnceLockcatalog_ref(); lookups use the cached slice instead of cloning on every call. - Model provider:
check_api_key_requirementandtransform_openrouter_optionssplit into private helpers inlib.rs. - Repository:
.gitignoreextended for Python__pycache__paths.
1.7.3 - 2026-03-11
- Compound system tools: built-in tools consolidated into action-dispatched compound tools for cleaner tool surface and fewer tool slots.
- Live timestamp removed from stable system prompt to avoid unnecessary prompt churn and improve caching.
- Model and mode transitions now apply immediately in the TUI instead of waiting for the next user message.
- OpenRouter: Anthropic prompt caching enabled for Anthropic models.
switch_modeltakes effect in the next model turn (correct staging behavior).- Mode upgrades from within a conversation are now allowed (tools no longer block mode changes).
- Grey-on-grey rendering artifacts in pager and chat view eliminated.
- Command prompt for
/commandis loaded from disk on each run so edits are picked up without restart. - Modifier+click on chat content is ignored so the terminal can open links.
- OpenSSL cross-compilation for macOS and Linux aarch64 in CI.
1.7.2 - 2026-03-11
- E2E tests: replaced hardcoded local paths and forward
context_openargs in CI.
1.7.1 - 2026-03-11
- Clippy: remove empty line after doc comment in
task_tool.rs. - CI: centralize build commands via Makefile and fix macOS OpenSSL cross-compilation.
1.7.0 - 2026-03-10
- ACP (Agent Client Protocol): full protocol compliance across server and
client roles;
--model/--providerforacp serve, model inheritance. - Unified todo tool: replaces
todo_writewith a single tool supporting read/add/update/set actions. - Chat tree view: subagent sessions shown as children in the TUI.
- ToolDisplay trait: chat view tool labels and summaries use shared display logic.
- LLM-generated chat titles and delete-active-chat; animation updates.
- Compound tools: 42 built-in tools consolidated into 14 compound tools.
- P2P peers pane in TUI; keyboard-first segment actions (per-line icons removed).
- Website: overhauled copy, SEO, and section SVGs; logo and hero font (JetBrains Mono).
- Comprehensive adversarial test suite (64 Rust + 25 Bats tests).
- Peers pane resize drag, peer list population, and P2P dial noise.
- Subagent exit code, chat pane keybindings, peers-split drag direction.
- Full tool result shown at expand level 2 in TUI.
- Task tool returns result immediately when PromptResponse arrives.
- Thought block display and subagent user message.
- Subagent inactivity timeout during long tool calls (bootstrap).
- Chat display and welcome screen after streaming refactor.
- Tool rendering, shell intent, subagent blocking, and character width (CJK ambiguous).
- Chat title race so LLM-generated title is used when available.
- Merge positional prompt with stdin in CI runner (not in main); workflow only for
-f. - File deletion (sven-input); trailing empty lines in segments; delete as default button.
- Build errors:
From<anyhow::Error>forFileModifiedError,ToolDisplayInfoexport. - Pre-commit runs clippy only on staged files.
- Streaming seasoning/thinking shown without backticks in gray dim text; thinking content preview instead of word count; tool scan animation sinusoidal; streaming cursor blink ~500ms; timeouts to prevent indefinite hangs.
- ACP used for subagent communication with structured streaming.
- Refactor: eliminate duplication and decouple crate architecture.
1.6.0 - 2026-03-09
- Multi-session TUI: run several conversations simultaneously without
restarting sven. Collapsible chat list sidebar (toggle with
Ctrl+B) with live status;nnew session,Enterswitch,ddelete,aarchive. - Background sessions: switching away does not interrupt the agent; spinner shows running sessions; events buffered when you return.
- YAML persistence: sessions saved to
~/.config/sven/history/<id>.yaml, restored on launch; last active session restored on startup. - Per-session model and mode; mouse drag to resize chat list sidebar.
- Inspector overlay: skills, subagents, peers, context;
/toolsinspector with node-proxy support. - Parallel tool slots (sven-core): streaming dispatch with multiple concurrent tool slots.
- Vim-style pane navigation (focus chat list / main pane).
/newnow creates a proper new session in the sidebar with isolated agent (no bleed from old session).- Per-session
/modeland/modestate; queued messages andabort_pendingcleared on new session; message-edit state cleared on new session. - JSONL log path tracked per-session; state leakage on new sessions fixed (input, queue, edit state, agent state isolated).
- Chat list click no longer triggers wrong session’s segment actions (HitArea hit-test); duplicate agent on initial session removed; message loss on exit fixed (session state saved).
wait_for_messageno longer drops replies when peer responds before waiter registers.- Neovim double-response bug; inspector and pager UX improved.
- TodoUpdate segment ordering in tool output; chat pane selection and scrollbar ghost/stuck rendering.
- Chat document formatting (sven-input); mouse routing centralized (HitArea);
inspector overlay dead
kindfield removed; docs for parallel tool slots and multi-session TUI.
1.5.0 - 2026-03-09
- Team orchestration in sven-node with layered tool architecture (sven-team crate + TUI).
- Team tool confusion that caused the model to duplicate work and misuse APIs.
- Teammate task execution and node restart resilience.
1.4.0 - 2026-03-08
- ACP (Agent Client Protocol) server for IDE integration (e.g. Zed).
- Agent team orchestration (sven-team crate + TUI); multi-agent orchestration roadmap.
- Site: install script at install route; install action and package updates.
- ACP bridge: drop TextComplete/ThinkingComplete to prevent double output.
- Chat view display and find_file glob matching; subagent model wiring.
- Team picker keys through dispatch and missing key bindings.
- Clippy lints; pre-commit fails on format changes.
- CI and installation route fixes.
- Docs: Zed ACP config snippet (
agent_servers, notassistant.provider); README mentions ACP IDE integration.
1.3.2 - 2026-03-07
sven tool listandsven tool callcommands for direct tool invocation from the CLI- Support for executing inline
<invoke>tool calls emitted by MiniMax and similar models - Subagent streaming via process-based TaskTool (replaces in-process execution)
/clearand/newTUI commands for conversation management- Cache hit percentage displayed inline after token counts in the status bar
- Cumulative session token totals shown instead of per-turn counts
- Context percentage now uses cumulative tokens for accuracy
- Unicode corruption when multi-byte characters span SSE chunk boundaries
- Token tracking for multi-call turns; simplified completion menu
- Correct
ctx%denominator; exact provider token counts shown in status bar - Grouped segment rendering and hardcoded test paths in TUI
/installendpoint now served as plain text instead of SPA fallback
- Site container runtime switched from nginx to
serve - Built-in tools refactored into categorised modules
- Types hardened and boilerplate eliminated across the core agent codebase
- Site placeholder images replaced with real sven SVG illustrations
1.3.0 - 2026-03-05
- RLM context tools: memory-mapped large-content analysis with
context_query, per-sub-query timeouts, and real-time UI drain - TUI UX overhaul: clean hierarchical agentic interface with improved input handling, multiline paste, and rendering fixes
- Clock-driven animations for thinking indicator, tool-scan, and stream cursor in TUI
- Shell-style input history in TUI
- Markdown table rendering in TUI
- Mouse drag selection in TUI
max_output_tokensandmax_input_tokensconfig fields per model- Provider-first config structure with environment variable expansion
- React marketing landing page for agentsven.com
- Install script served at
/installfrom the site container - Latest release version injected at site build time
- 70 integration tests for RLM context tools on real data
- 39-test end-to-end suite for
edit_filetool - bats end-to-end tests for context tools and error handling
- Garbled welcome logo — normalised row widths and fixed connector colours
- Welcome screen logo colours and tagline URL
- Multiline paste display, completion double-slash, and rendering artefacts
- Mid-turn mode consistency and mode display in status bar
- aarch64 OpenSSL build in CI (non-fatal fallback)
1.2.3 - 2026-03-03
- TUI node-proxy mode: connect, stream, and lock model/mode to node correctly
- Node-proxy TUI now forwards Resubmit events to the node (streamed responses)
- Stale waiter slots in the session multiplexer
- Session depth accumulation regression; aarch64 release build
- Renamed
gateway→nodeacross the entire codebase for naming consistency
1.2.2 - 2026-03-03
- All circular message-loop paths across P2P channels (three separate loop vectors closed)
- Infinite session echo loops and delegation chain corruption in P2P network
- Dual-delivery of messages on the P2P session bus
- Removed model auto-nudge from sven-core
- Updated dependency versions across Cargo workspace
1.2.1 - 2026-03-03
- Node model defaults, error messages, and CLI ergonomics improvements
1.2.0 - 2026-03-03
- Agent-to-agent collaboration via libp2p session messaging and named rooms
- Browser web terminal on sven-node with WebAuthn passkey authentication and PTY sessions
- Plug-and-play TLS for sven-node using Tailscale and a local CA
- Complete overhaul of sven-tui with a modern ratatui architecture
1.1.0 - 2026-03-01
- MCP server support via
sven mcp serve - Node-proxy mode for
sven mcp serve(proxies MCP requests through a remote node)
- Updated SPDX licence tags across all crates
1.0.4 - 2026-03-01
- macOS OpenSSL build linkage
1.0.3 - 2026-03-01
- CI pipeline and release workflow errors
1.0.2 - 2026-03-01
- Initial public release
- Multi-arch release pipeline with CI builds for Linux x86_64/aarch64 and macOS, plus curl-pipe install script
- Codified context infrastructure: three-tier knowledge base for large codebases
- Agent-to-agent task routing over P2P with named rooms
- sven-node heartbeat, separate control-plane configuration, and configurable agent listen address
- Peer allow-list and mDNS local discovery for P2P networks
find_filetool (unified fromglob/glob_file_search)- Apache 2.0 licence
- 12 P2P security vulnerabilities for hostile network deployment
- Circular delegation false-positive caused by empty peer ID in P2P
- Agent stall nudge firing on legitimate single-tool-call + answer patterns