Releases: startvibecoding/vibecoding
v0.1.26
Changelog
v0.1.26
✨ Features
-
Gateway Mode (
vibecoding gateway)- New HTTP server exposing a standard OpenAI Chat Completions API (
/v1/chat/completions,/v1/models,/health) - Any OpenAI-compatible client (Cursor, Continue, Open WebUI, Python SDK, etc.) can connect directly
- Streaming (SSE) and non-streaming responses fully supported
- Backend powered by VibeCoding agent loop with tool execution transparent to the caller
- New HTTP server exposing a standard OpenAI Chat Completions API (
-
Multi-Session Support
- Built-in
SessionPoolfor concurrent sessions, each with isolated agent, tools, and message history - Session association via
x_session_idin request body; auto-created when absent - Configurable idle timeout (
session.idleTimeoutSeconds) and max session limit (session.maxSessions)
- Built-in
-
Sub-Agent Support in Gateway
- Optional
enableSubAgentsconfig to enable multi-agent orchestration in gateway mode - Reuses existing
AgentFactory/AgentManager/ sub-agent tools with no core agent changes
- Optional
-
Bearer Token Authentication
- Configurable via
gateway.jsonwithauth.enabledandauth.tokenslist - Disabled by default;
/healthendpoint always unauthenticated
- Configurable via
-
Slash Commands via API
/clear,/mode,/model,/models,/sessions,/compact,/status,/skill,/skills,/help- Triggered when the last user message starts with
/; processed at gateway layer without invoking LLM - Responses use standard OpenAI format with
x_commandextension field
-
Tool Visibility Configuration (
toolVisibility.mode)"content"(default): tool status sent as text incontentfield during streaming"sse_event": tool status sent as extended SSE events for custom clients"none": fully transparent, client sees only final text
-
System Prompt Handling (
systemPromptMode)"append"(default): client system messages appended to built-in system prompt"ignore": client system messages discarded entirely
-
Security: allowedWorkDirs
- Directory whitelist for
x_working_dirrequest-level overrides with path-separator-aware prefix matching - Three-layer security model: L1 auth + L2 directory control + L3 sandbox (bwrap)
- Directory whitelist for
-
Sandbox Support in Gateway
- Configurable via
gateway.jsonsandbox.enabled/sandbox.levelor--sandboxflag - Inherits detailed sandbox settings (allowedRead, deniedPaths, etc.) from
settings.json
- Configurable via
-
Gateway Configuration (
gateway.json)- Independent config file at
~/.config/vibecoding/gateway.json - Covers: listen address, auth, mode, sandbox, workingDir, allowedWorkDirs, session management, CORS, tool visibility, system prompt mode, request timeout, concurrency limit, logging
vibecoding --init-gatewayto generate template;--forceto overwrite
- Independent config file at
-
Request Timeout & Concurrency
requestTimeoutSeconds(default 1800s); streaming keeps alive as long as data flowsmaxConcurrentRequests(default 0 = unlimited)
📝 Docs
- Added
docs/gateway-proposal.mdwith full architecture, API design, security model, and implementation plan - Updated
AGENTS.mdversion note
v0.1.25
v0.1.25
✨ Features
-
Multi-Agent Mode
- Added opt-in
--multi-agentsupport across CLI, TUI, and ACP mode - Added
AgentManager,EventRouter, and per-agent registries so agents have isolated tools, job managers, sessions, messages, and context - Added
subagent_spawn,subagent_status,subagent_send, andsubagent_destroytools for delegated background work - Added multi-agent prompt guidance and safeguards that prevent nested sub-agent spawning
- Added opt-in
-
Cron Task Support
- Added
internal/cronwith persistent cron store and scheduler coverage - Added
/croncommand entry points in multi-agent TUI workflows
- Added
-
Provider Vendor Adapter Layer
- Added vendor adapter registration in
internal/provider/vendor*.go - Centralized provider/model creation in
internal/provider/factory - Added vendor detection for DeepSeek, Xiaomi, Kimi, MiniMax, Seed, Qianfan, Bailian, Gitee, OpenRouter, Together, Groq, Fireworks, OpenAI, and Anthropic
- Preserved existing provider config format while allowing vendor-specific defaults and generic OpenAI/Anthropic-compatible fallback
- Added model
compathandling for thinking formats, reasoning effort support, max token field selection, adaptive Anthropic thinking, and DeepSeek/Xiaomi assistantreasoning_content
- Added vendor adapter registration in
🐛 Bug Fixes
- Auto-initialized sessions on first append so sub-agents can write session entries without requiring explicit prior initialization
- Fixed sub-agent tests to wait for background runs and clean up spawned agents before temporary directory removal
- Preserved ACP Anthropic cache-control behavior while moving provider creation to the shared factory
📝 Docs
- Updated
AGENTS.mdwith provider factory and vendor adapter guidance - Replaced the multi-agent implementation checklist with a completed architecture/status document
- Removed the obsolete root
todo.md
🧪 Testing
- Added coverage for provider vendor resolution, provider factory creation, OpenAI/Anthropic compat behavior, multi-agent manager/router/sub-agent flows, cron storage/scheduler behavior, and session auto-initialization
- Verified with
make test(go test -v -race ./...)
v0.1.24
v0.1.24
✨ Features
- API Retry with Exponential Backoff
- Automatic retry for transient errors (5xx, network failures, rate limits) on initial HTTP connection
- Exponential backoff:
baseDelay × 2^attempt, capped at 30 seconds - Does NOT retry on user abort (
context.Canceled), 4xx client errors, or mid-stream failures - Configurable via
retrysettings (maxRetries,baseDelay,maxDelay) - Agent forwards retry events as status updates visible in TUI and print mode
- ACP mode also receives retry configuration
🐛 Bug Fixes
-
Anthropic
cache_controlNow Opt-In- Changed default
cache_controlbehavior to off (was auto-enabled for official API base URL) - Require explicit
cacheControl: truein provider config to enable prompt caching - ACP provider creation explicitly enables
cache_controlfor Anthropic
- Changed default
-
Anthropic Tool Result Grouping
- Fixed consecutive
toolResultmessages to be grouped into a singleusermessage - Anthropic API requires all
tool_resultblocks for precedingtool_useto appear together before other content - Image blocks from tool results are now appended after all result blocks in the same message
- Fixed consecutive
-
Agent Tool-Only Loop Warning Ordering
- Moved the no-text tool-loop warning to be injected after tool results are appended
- Keeps assistant -> toolResult -> warning message ordering valid for provider and session transcripts
- Warning messages are now also persisted to session storage
📝 Docs
- Comprehensive Configuration Documentation Rewrite
- Added missing settings:
cacheControl, idle compression, full sandbox fields (bwrapPath,allowedRead,allowedWrite,deniedPaths,passEnv,tmpSize),shellPath,shellCommandPrefix,sessionDir,skillsDir,theme,retry - Documented shell command
apiKeyformat (!cmd) for password manager integration - Fixed key resolution order: config
apiKeyfirst, then derived env var - Fixed macOS config path:
~/Library/Application Support/vibecoding/ - Added top-level fields reference table with all defaults
- Added per-platform defaults for sandbox paths and env vars
- Improved examples with Claude provider
cacheControl, idle compression, project-level overrides, and custom sandbox paths
- Added missing settings:
🧪 Testing
- Added retry tests covering
IsRetryable,RetryDelay, andFormatRetryMessage - Added Anthropic provider tests for consecutive tool result grouping
- Added a regression test covering tool-only warning placement after tool results
v0.1.22
Changelog
v0.1.22
✨ Features
- CLI/TUI MCP Auto-Loading
- CLI/TUI startup now loads global and project
mcp.json, connects configured MCP servers, and registers MCP tools before the agent tool list is frozen
- CLI/TUI startup now loads global and project
🐛 Bug Fixes
- Markdown Rendering Style
- Switched CLI print mode and TUI markdown rendering from Glamour auto-style detection to the fixed
darkstyle for more consistent terminal output
- Switched CLI print mode and TUI markdown rendering from Glamour auto-style detection to the fixed
🧪 Testing
- Added MCP config loader coverage for placeholder template filtering
🛠 Improvements
- Shared MCP Runtime
- Moved MCP connection/tool registration out of ACP-only code into a shared runtime used by ACP and normal CLI/TUI sessions
- Starter-template placeholder MCP servers are ignored during automatic startup loading
v0.1.21
Changelog
v0.1.21
✨ Features
-
Plan/Apply Workflow
- Added a built-in
plantool for structured task plans withpending,running,done, andfailedstep statuses - TUI now shows the current task plan and records plan updates in the transcript
- Print mode and ACP now surface plan updates for non-interactive and editor-client flows
- Added a built-in
-
Apply Confirmation
- Added
approval.confirmBeforeWriteto require approval beforewriteandeditin agent mode - Enabled write/edit confirmation by default in generated settings
- TUI approval prompts summarize write content by byte size instead of dumping full file content
- Added
-
MCP Config Commands
- Added
/init_mcpto create project/globalmcp.jsonwithbasic/fulltemplates and optional--force - Added
/mcpsto list MCP servers from global and projectmcp.jsonfiles - MCP config is now maintained in standalone
mcp.json(separate fromsettings.json)
- Added
🧪 Testing
- Added coverage for the
plantool and write/edit approval gating - Added HTTP-based MCP integration tests for tool/resource/prompt registration and callback paths
- Added SSE-based MCP integration tests for stream callbacks and message endpoint request/response flow
🛠 Improvements
- ACP MCP Hardening
- Added MCP transport support for
httpandsse(alongside existingstdio) - Added MCP initialize/tool-discovery timeouts to avoid hanging ACP sessions
- Added paginated
tools/listfetching with upper page bounds - Added MCP
resources/*andprompts/*discovery and tool registration - Added duplicate MCP server-name detection and MCP tool-name de-duplication
- Added MCP inbound request/notification handling (
ping, progress/logging/cancel notifications) - Added bridge for inbound
sampling/createMessageto the active ACP provider/model - Added stricter close/error propagation
- Added MCP transport support for
v0.1.20
v0.1.20
✨ Features
- Structured File Change Reporting
writeandeditnow attach structured file diff metadata to tool results- TUI tool details show full unified diffs while collapsed tool rows keep a compact
+N -Nsummary - Print mode now emits clear file change summaries for non-interactive runs
- ACP tool updates include diff metadata in raw output for compatible clients
🧪 Testing
- Added coverage for structured diff metadata from
writeandedit
v0.1.19
✨ Features
-
TUI Tool Details Modal
- Replaced
Ctrl+Otoggle-expand with a scrollable full-screen modal overlay showing all tool calls and results - Supports PgUp/PgDn, Up/Down, Home/End navigation; Esc/Ctrl+O/q to close
- Tool headers now display file paths; removed content truncation in tool args display
- Write tool results show diff summary in the one-line summary line
- Key input is blocked while the modal is open to prevent accidental actions
- Replaced
-
Write Tool Diff Summary
writetool now computes LCS-based line-level diff when overwriting files- Returns structured diff info (
+N -Nwith line ranges) in the tool result - Skips diff computation for very large files (>200K line pairs) to avoid memory pressure
🛠 Improvements
- Unified Shell Args Across Sandbox Backends
- All sandbox backends (
none,mac,windows) now useplatform.ShellArgs()for cmd.exe/PowerShell argument construction - Fixes Windows cmd.exe and PowerShell commands in sandboxed execution modes
ShellArgsnow normalizes shell name to lowercase before matching
- All sandbox backends (
🧪 Testing
- Added
TestNoneSandboxWrapCommandUsesPlatformShellArgscovering cmd.exe and PowerShell argument generation
v0.1.18
Changelog
v0.1.18
🐛 Bug Fixes
-
TUI Nil Pointer Panic
- Fixed a nil pointer panic in
printMessageOncewhenprintedMessageIdxmap was not initialized - Added nil check before accessing the map in the message printing logic
- Fixed a nil pointer panic in
-
Stream Commit Before Tool Execution
- Added
commitActiveStream()method to flush streaming content (thinking and assistant messages) to output before tool execution - Now properly commits active stream before
EventToolCallandEventToolApprovalRequesthandling - Ensures thinking and partial assistant responses are visible when tools run or approval is requested
- Added
🧪 Testing
- Added
TestHandleAgentEventCommitsStreamBeforeApprovalregression test for stream commit ordering
v0.1.17
Changelog
v0.1.17
🛠 Improvements
-
TUI Native Scrollback
- Reworked TUI history rendering so completed messages are printed into the terminal's native scrollback instead of a fixed-height viewport
- Removed the virtual scrollbar and mouse-capture approach; mouse wheel scrolling now uses normal terminal history behavior
- Kept live streaming content, input, footer, context/cache status, and tool output controls in the Bubble Tea view
-
TUI Request Timers
- Added per-request elapsed time display while a response is running
- Footer now keeps the last request duration after completion
-
Event Loop Decoupling
- Added shared agent event consumption helpers
- Split the TUI agent-event bridge out of the main app file and reused the event loop from CLI print mode
-
Windows Console Compatibility
- Enabled Windows virtual terminal console modes where available for better PowerShell rendering on Windows 10
🐛 Bug Fixes
- Fixed a TUI startup deadlock caused by printing initial/session history before Bubble Tea had started consuming program messages
- Fixed an agent message-history data race found by
go test -race - Fixed mock provider cancellation handling for already-canceled contexts
🧪 Testing
- Full
make testnow passes with race detection - Added TUI regression coverage for startup history printing without blocking
- Hardened tests that depend on local HTTP listeners or default home-directory session paths in restricted environments
v0.1.15
Changelog
v0.1.15
🐛 Bug Fixes
-
Vendored Search Tool Availability
- Fixed
grepandfindso they prepare embeddedrg/fdbinaries on demand instead of failing when vendored tools have not been extracted yet - Restored executable permissions for already-extracted vendored binaries to avoid
permission deniedfailures on reuse
- Fixed
-
Bash Tool Result Handling
- Fixed bash tool responses to report stdout, stderr, working directory, and exit code in a stable structured format
- Preserved non-zero command exits as normal tool results with explicit
exit_codeoutput instead of mixing shell failures into transport-level errors - Standardized empty stdout/stderr rendering as
(no output)for more predictable downstream handling
Full Changelog: v0.1.14...v0.1.15
v0.1.14
Changelog
v0.1.14
🐛 Bug Fixes
- Session Continue Context Injection (
-c)- Fixed a TUI state coupling issue where continued sessions could display history but fail to inject that history into the model context for follow-up prompts
- Split session history state into separate UI-display and agent-injection flags to ensure resumed conversations keep prior context
- Reset agent history-injection state consistently when the agent is recreated (abort/mode/model/skill/session switches)
- Added missing TUI handlers for
EventStatusandEventMessageStartso status/warning messages are rendered reliably
🧪 Testing
- Added regressions that cover:
- history injection when UI history is already loaded
- real startup ordering (
Init()history load, then follow-up input) for continued sessions
v0.1.13
🐛 Bug Fixes
-
Streaming Event and Tool Call Robustness
- Preserved terminal agent events in the TUI event listener so done/error/status handling is not dropped during streaming
- Added Anthropic thinking signature streaming and replay support, and surfaced SSE
errorevents as proper stream errors - Generated fallback tool call IDs for OpenAI-compatible streamed tool calls when providers omit IDs, with an extra defensive fallback in the agent loop
-
Sandbox Environment Inheritance
- Fixed
nonesandbox execution so commands inherit the parent environment, including variables such as$HOME - Clarified bubblewrap environment override handling to match runtime behavior
- Fixed
🛠 Improvements
-
Vendored Tool Build Flow
- Unified build and distribution targets around
prepare-vendored - Removed the old
vendored-toolsrelease step and deprecated the stale extract helper script
- Unified build and distribution targets around
-
Documentation Site Layout
- Expanded the docs landing page content width for better large-screen readability
-
Package Metadata
- Updated npm package versions for installer packages
📖 Documentation
- Updated README and docs landing pages to highlight safer approval handling, unified cache metrics, and consistent provider debugging
- Simplified
AGENTS.mdguidance for repository agents
🧪 Testing
- Added bash tool output coverage for stdout-only, stderr-only, no-output, and non-zero exit cases
- Added TUI regression tests for status/warning rendering and done/error event passthrough
- Added OpenAI streaming regression coverage for tool calls with missing IDs