Releases: startvibecoding/vibecoding
v0.1.47
Changelog
v0.1.47
✨ Features
- Expanded Model Catalog
- Added new Anthropic models: Claude Opus 4.8, Claude Opus 4.1, Claude Opus 4, Claude Sonnet 4.0, Claude Haiku 4.5, Claude Fable 5, and legacy Claude 3 series models.
- Added new OpenAI models: GPT-5.5, GPT-5.5 Pro, GPT-5.4 series, GPT-5.3 Codex/Spark, GPT-5.2 Pro/Codex, GPT-5.1 Codex variants, GPT-4.1 series, o4-mini, o3/o3-pro/o3-deep-research, o1-pro, and legacy GPT-4 variants.
- Added OpenRouter provider models: Claude Sonnet 4.6/4.5, Claude Opus 4.8, Claude Haiku 4.5, GPT-5.5/5.5 Pro/5.4, Gemini 3.5 Flash/2.5 Pro, DeepSeek V4 Flash/Pro, Qwen 3.7 Plus, Kimi K2.7 Code, MiniMax M3, Llama 4 Scout, GLM 5/5.2, Grok 4.3, and GPT-OSS-120B (free).
- Added Vercel AI Gateway models: Claude Sonnet 4.6/4.5, Claude Opus 4.8, Claude Haiku 4.5, GPT-5.5/5.4, Gemini 3.5 Flash, DeepSeek V4 Flash/Pro, Qwen3.6 Plus, MiniMax M3, Kimi K2.7 Code, Grok 4.3, and GLM 5.2.
- Reordered Anthropic and OpenAI model lists to show newest models first.
🐛 Bug Fixes
-
TUI Approval Details Visibility in Live View
- Fixed queued approval requests not showing details in the live transcript while waiting for user input.
- The current approval message index is now tracked so it stays visible during the approval prompt.
- Index is properly cleared after approval is answered and reset on state/clear paths.
-
TUI Tool Modal Performance and Display
- Added line-level caching for tool modal rendered output to avoid re-parsing the full transcript on every render.
- Added per-entry caching for expanded tool results to avoid repeated formatting.
invalidateToolModalCache()is now called at all transcript state mutation points to keep the cache consistent.- Fixed edit tool results duplicating diff excerpts in the expanded view by extracting a dedicated edit header formatter.
- Tool modals now open at the top (offset 0) instead of scrolling to the bottom.
🧪 Tests
- Added regression test verifying expanded edit output does not duplicate diff excerpts.
v0.1.46
Changelog
v0.1.46
✨ Features
-
Workflow Agent Instance Keys
- Added
:keyfor repeated logical workflow agents, so boundedwhileloops can keep literal agent names while storing per-round results asphase.agent[key]. - Added
result-keyandresult-latest, plus(result "phase.agent" :key "r0"), for explicit keyed result lookup and latest-instance lookup. - Keyed workflow workers use instance-aware runtime IDs such as
agent-worker[r0], preventing repeated loop workers from colliding while preserving the logical agent name.
- Added
-
Workflow Lint Tool
- Added
workflow_lintto validate workflow Elisp DSL without running worker agents. - Linting checks Elisp syntax, workflow/phase/agent forms, keyword arguments, required prompts, and result references.
- Registered the lint tool alongside workflow run/status/cancel tools and updated workflow prompt guidance to lint non-trivial generated or edited workflows before execution.
- Added
-
Configurable Context Compaction
- Added compaction settings for
tokenizer,tokenizerModel, andtemplate, wired through CLI, print mode, ACP, Gateway, Hermes, TUI mode switches, and delegated agent factories. - Added built-in compression summary templates:
default,code, andconversation, so long sessions can preserve task-appropriate checkpoints. - Introduced a token estimator abstraction while preserving the existing generic chars/4 estimator for
autoandgeneric. - Compaction entries now record summary version, previous compaction ID, and last summarized entry ID for better session replay/debugging.
- Added compaction settings for
🐛 Bug Fixes
-
Context Compaction Replay
- Print mode now restores replayed session history before running the agent, preserving prior conversation context.
- Manual and forced compaction now check for genuinely compactable older history instead of compacting only recent context.
- Replayed compacted messages strip stale usage metadata from kept messages to avoid leaking obsolete token accounting into future runs.
-
Concurrent File Writes
- Added a process-wide in-memory file lock manager shared by default tool registries.
writeandeditnow acquire per-file locks before reading and modifying files, preventing concurrent agents from interleaving writes to the same target.- Lock waits honor context cancellation/deadlines and report the current owner when interrupted.
🔧 Refactoring
-
Pre-release Packaging
npm-publish-prenow syncs and builds npm packages with a-preversion suffix before publishing pre-release packages.- Updated npm package metadata and optional platform dependency versions to the pre-release version.
-
Named Workflow Worker Agents
- Workflow worker agents now use deterministic IDs derived from DSL agent names (
agent-<name>), improving event attribution and background agent visibility. - Workflow skill guidance now documents the ID mapping and recommends unique agent names within a workflow.
- Workflow worker agents now use deterministic IDs derived from DSL agent names (
📚 Documentation
- Updated Workflow mode docs, tool reference, and the
workflow-elispskill to document:key, keyed result lookup, and bounded while-loop patterns. - Documented context compaction
tokenizer,tokenizerModel, andtemplatesettings, including the built-in template choices and the current reserved/deprecated status of idle compaction settings. - Clarified Ctrl+O details modal key hints for target switching, paging, scrolling, and closing.
- Documented the TUI scrollback trade-off: completed transcript blocks are printed to native terminal scrollback for stable selection/history, while user input should remain block-printed rather than unbuffered streaming to avoid interfering with Bubble Tea live rendering.
🧪 Tests
- Added workflow runner, lint, integration, and skill coverage for keyed repeated agents and keyed result lookup.
- Added context compaction tests for custom token estimators, template resolution, configured summary prompts, compaction metadata, compactability checks, and session replay usage cleanup.
- Added Gateway and Hermes coverage for
/compactwhen only recent context can be kept. - Added workflow lint tests for valid source collection and missing result reference errors.
- Added workflow integration coverage verifying DSL agent names are reflected in runtime worker agent IDs.
- Added file lock tests for wait/cancel behavior, shared default managers, and
write/editcontext handling.
v0.1.45
Changelog
v0.1.45
✨ Features
-
Workflow Skill with Progressive References
- Extracted workflow Elisp/DSL documentation from the system prompt into a dedicated
workflow-elispskill, reducing system prompt size. - Introduced progressive reference structure: skill index page lists 9 reference files loaded on demand, with core rules loaded by default.
- Eight pattern guides: research & investigation, serial & parallel composition, decision routing, bounded while loops, horizontal multi-agent collaboration, master-slave small teams, evaluator-optimizer review passes, and governance & human checkpoints.
- Each reference file includes copy-ready Elisp skeleton examples and pattern selection guidance.
EnsureProjectSkillautomatically creates the skill and all reference files under.skills/workflow-elisp/without overwriting user-customized content.
- Extracted workflow Elisp/DSL documentation from the system prompt into a dedicated
-
Workflow Timeout Control
- Added optional
timeoutSecondssupport toworkflow_run, allowing bounded long workflows to choose an appropriate timeout and intentional continuous workflows to set0to avoid the default agent-level deadline.
- Added optional
-
vibeEmacsLispVm v0.0.2 Upgrade
- Upgraded
vibeEmacsLispVmdependency from v0.0.1 to v0.0.2 with expanded Elisp surface. - Added support for backquote/comma,
let*/while/cond/catch/throw/lambda/defun/defmacro/with-current-buffer/save-current-bufferspecial forms. - Added builtins:
cons/car/cdr/nth/append/reverse/member/assoc/funcall/apply/macroexpand, arithmetic and predicate functions, and in-memory buffer + marker builtins. - Added comprehensive test coverage for v0.0.2 Elisp features.
- Upgraded
🔧 Refactoring
-
Gateway Session-Level Skills Support
- Gateway sessions now support independent
SkillsMgrandExtraContext, so delegate sub-agents inherit per-session state. /skilland/skillscommands now operate on session-level skills instead of global server-level skills.
- Gateway sessions now support independent
-
System Prompt Streamlining
- Detailed workflow Elisp VM syntax and DSL form descriptions removed from the system prompt, replaced by a reference to the
workflow-elispskill. - Only key constraints and usage notes remain in the system prompt, significantly reducing token usage.
- Detailed workflow Elisp VM syntax and DSL form descriptions removed from the system prompt, replaced by a reference to the
-
Workflow Skill Reference Clarity
- Renamed reference file titles for clarity: "Continuous Loops and Iterative Tasks" → "Bounded While Loops", "Evaluator-Optimizer and Critic Loops" → "Evaluator-Optimizer Review Passes".
- Split pattern selection guidance: bounded while loops for runtime repetition with stop conditions; evaluator-optimizer for one-pass draft/critique/revise pipelines.
- Added constraint: do not simulate loops with numbered phases.
- Unified progressive reference status labels to English ("loaded" / "load on demand") for consistency.
📚 Documentation
- Added Workflow mode usage guide and best practices documentation (EN/ZH) covering quick start, core concepts, common patterns, and pitfalls.
- Synced workflow references across docs pages: added Dynamic Workflows section to features overview, workflow orchestration scenario to use cases, and cross-links from tools references.
- Clarified workflow hidden defaults and limits in the
workflow-elispskill and docs: worker:max-iterationsdefault/failure behavior,workflow_run timeoutSeconds,concurrencydefault, inherited:mode, default:tools, current work directory behavior, disabled nested orchestration, and unsupported per-worker options.
🧪 Tests
- Added workflow skill tests verifying skill file and 8 reference file creation, non-overwrite behavior, and missing reference auto-creation.
- Expanded workflow runner and lisp test coverage.
- Added tests for reference content clarity and non-overlap of loop vs evaluator-optimizer patterns.
Full Changelog: v0.1.44...v0.1.45
v0.1.44
Changelog
v0.1.44
✨ Features
-
Dynamic Workflows
- Added
--workflowsmode for CLI, ACP, and Gateway, independent from--multi-agent. - Added Elisp workflow tools:
workflow_run,workflow_status, andworkflow_cancel. - Added workflow runtime support for phases, series/parallel execution, concurrency limits, worker-agent tasks, result fan-in, and run logs.
- Added persistent workflow run state under the VibeCoding workflow store and
/workflowsstatus commands in TUI and Gateway. - Added in-process active-run cancellation so
workflow_canceland/workflows cancel <id>can interrupt running workflows.
- Added
-
Z.AI Vendor Adapter
- Added
vendor_zai.gowith a dedicatedzaivendor adapter, registering domainsapi.z.aiandopen.bigmodel.cnwiththinkingFormat: zai. - Updated
zaiandzai-coding-cnprovider configs: setVendor: "zai",ThinkingFormat: "zai", updated base URL to the coding endpoint, addedglm-5v-turbovision model.
- Added
-
Kimi Provider Updates
- Added
api.kimi.comdomain to thekimivendor adapter for automatic vendor detection. - Added
User-Agent: KimiCLI/1.5header to thekimi-codingprovider config. - Added Kimi K2.7 Code and K2.7 Code HighSpeed models to
moonshotai,moonshotai-cn,fireworks, andopencode-goproviders.
- Added
-
New Models
- Added
GLM-5.2model to theopencode-goprovider (1M context, 262K max output). - Added Kimi K2.7 Code Fast model to
fireworksprovider.
- Added
🐛 Bug Fixes
-
TUI Agent Event Handling
- Fixed partial response text not being committed to terminal scrollback when an error event occurs mid-stream, ensuring partial content is not lost.
- Added regression test verifying stream indices and print queue behavior on error.
-
Version Strings
- Fixed
Makefileto use--abbrev=0withgit describefor clean tag versions without commit count/hash suffix. - Fixed
sync-npm-version.shto strip commit count and hash suffix from version strings. - Updated
npm/bin/vibecodingto use GitHub raw URL for install script fallback.
- Fixed
🔧 Refactoring
- Agent Manager Deterministic Ordering
AgentManager.Listnow sorts agents by start time then ID for stable, deterministic ordering.- Extracted
resetAgent/abortAndResetAgenthelpers to reduce code duplication in TUI commands. - Agent ID is now set in config when creating agents in TUI.
📦 Dependencies
- Added
github.com/startvibecoding/vibeEmacsLispVm v0.0.1as the embedded Elisp subset evaluator used by workflow DSL execution.
📚 Documentation
- Added the dynamic workflows Elisp proposal under
docs/proposal/. - Updated English and Chinese tool docs with workflow tool usage, Elisp-only DSL guidance, and cancellation scope.
🧪 Tests
- Added workflow runner/store/tool tests covering Elisp execution, parallel workers, result fan-in, persistence, tool registration isolation, and active-run cancellation.
- Added prompt and CLI flag tests ensuring workflow mode does not leak into multi-agent mode, delegate mode, or worker-agent prompts.
- Added
VendorFromBaseURLtest cases forapi.kimi.com,api.z.ai, andopen.bigmodel.cn. - Added agent manager tests verifying deterministic list ordering.
Full Changelog: v0.1.43...v0.1.44
v0.1.43
Changelog
v0.1.43
🐛 Bug Fixes
- TUI Input Flush
- Fixed
flushInputQueuein TUI app to properly return the queued input as atea.Cmd, ensuring queued keystrokes are flushed before processing key events (Enter,Tab,Up,Down). Previously the command was called but its return value was discarded.
- Fixed
🔧 Refactoring
- Remove Unused
mergeSettings- Removed the unused
mergeSettings()function and its related tests. Project settings merging is now handled directly byLoadSettings. - Rewrote
settings_zero_testto test via actual file I/O withLoadSettings()instead of direct JSON unmarshaling.
- Removed the unused
📦 Dependencies
- GoStreamingMarkdown Update
- Updated
github.com/startvibecoding/GoStreamingMarkdownfromv0.0.2tov0.0.3.
- Updated
🧪 Tests
- Added test verifying that
Enterflushes queued input before applying command suggestions.
v0.1.42
Changelog
v0.1.42
✨ Features
- TUI Multiline Input
- Replaced the prompt input with the reusable TUI editor component, enabling true multiline prompt composition.
Alt+EnterandCtrl+Jnow insert newlines;Enterstill submits the prompt.- Small multiline pastes are preserved as multiline text instead of flattening newlines to spaces, while large pastes still use paste markers.
Up/Downnow move within multiline input first and only browse prompt history at input boundaries.
🐛 Bug Fixes
- TUI Input Editing
Home/Endediting keys now reach the input editor correctly instead of being swallowed by top-level TUI handling.- Restored draft-preserving prompt history navigation when queued keystrokes have not yet flushed.
/clearnow resets printed-message bookkeeping after emitting the clear confirmation, avoiding stale transcript print state after clearing.
📚 Documentation
- Updated TUI keyboard shortcut documentation for multiline input, newline insertion, history navigation, and tool modal behavior.
🧪 Tests
- Added tests for multiline prompt input,
Alt+Enter/Ctrl+J, small multiline paste preservation, prompt history boundary navigation, Home/End input editing, and/cleartranscript state reset.
Full Changelog: v0.1.41...v0.1.42
v0.1.41
Changelog
v0.1.41
✨ Features
-
TUI Redesign
- Added a startup header with the Vibe logo, version, provider/model, and current working directory.
- Added a redesigned footer showing mode, model, cwd, elapsed/last request duration, sandbox, context window usage, cache metrics, and key hints.
- Added an inline loading indicator while the agent is running, with spinner, elapsed time, and cancel hint.
- Added a sticky todo list for active non-done
plantool steps, so long-running tasks remain visible while the transcript scrolls. - Added a multi-agent tab bar showing active agents and their states when more than one agent is running.
- Added compact tool display mode, toggled with
Ctrl+G, to collapse tool outputs into one-line summaries while keeping details available throughCtrl+O.
-
Terminal Scrollback Transcript
- Completed transcript blocks are now printed to native terminal scrollback via Bubble Tea
Program.Println, leaving only live streaming content inside the managed TUI view. - This improves mouse scrolling, terminal selection/copying, and behavior for long transcripts.
- Completed transcript blocks are now printed to native terminal scrollback via Bubble Tea
-
TUI Component Foundation
- Added reusable editor, suggestion list, and vertical scroll components under
internal/tui/components/with CJK-aware buffer and rendering behavior.
- Added reusable editor, suggestion list, and vertical scroll components under
-
Response Formatting Guideline
- Updated the system prompt to discourage excessive bold text, headers, and bullet lists unless structure is needed or requested.
🐛 Bug Fixes
-
TUI Tool Result Printing
- Tool result updates now go through one-time transcript printing instead of only refreshing in-memory live content, preventing completed tool output from disappearing from terminal scrollback.
-
Viewport Cleanup
- Removed obsolete viewport state resets after the TUI moved transcript history to terminal-native scrollback.
📦 Packaging
- Updated npm installer package metadata and optional platform package versions to
0.1.40.
🧪 Tests
- Added component tests for the new TUI editor, suggestion list, and vertical scroll models.
- Updated TUI cache/render tests for header, footer, native scrollback transcript printing, compact display mode, and simplified viewport behavior.
v0.1.38
Changelog
v0.1.38
✨ Features
-
Custom Provider Model Fallback
- When a provider is explicitly requested (via CLI, Gateway, or Hermes) but no model ID is specified, the factory now automatically falls back to the provider's first available model instead of using
settings.DefaultModel(which belongs to the default provider). - This prevents configuration mismatches and "model not found" errors when using non-default providers without a specified model.
- When a provider is explicitly requested (via CLI, Gateway, or Hermes) but no model ID is specified, the factory now automatically falls back to the provider's first available model instead of using
-
Hermes Configuration Default Resolution
- Updated Hermes default model resolution so that when
DefaultProvideris specified inhermes.jsonbutDefaultModelis left blank, the system correctly falls back to the custom provider's first available model instead of propagating the globalDefaultModelfromsettings.json.
- Updated Hermes default model resolution so that when
-
Refined Exposed Agent SDK Package & Examples
- Completed the mapping for all missing events and fields inside the top-level
agentbridge (includingMessages,TurnMessage,TurnToolResults,Message,ToolCall,ToolDiff,ToolError,PartialResult,Plan,Usage, andContextUsage). - Fixed a critical enum misalignment on
StreamEventTypecaused by internal-only types (likeStreamThinkSignature), implementing explicit, robust mapping helpers. - Implemented
PublicProviderAdapterto seamlessly bridge internal providers back to the publicagent.Providerinterface, and wired them up automatically to avoid package import cycles. - Added two rich top-level examples in the
example/directory (simple_agentandcustom_provider) with dual-language READMEs, showing custom provider and tool loop execution.
- Completed the mapping for all missing events and fields inside the top-level
🧪 Tests
- Added
TestCreateFallbackToFirstModelininternal/provider/factory_test.goto cover fallback behavior for both custom and built-in providers when the model ID is blank. - Added test coverage in
internal/hermes/config_test.goforGetDefaultModelwhenDefaultProvideris specified in Hermes config butDefaultModelis empty.
v0.1.37
Changelog
v0.1.37
✨ Features
- Vertex AI API Key Authentication
- Added support for authenticating directly with Google Vertex AI using API keys (
x-goog-api-key) instead of requiring gcloud OAuth tokens (ya29.). - When an API key is used, the default base URL automatically routes to
https://aiplatform.googleapis.com/v1/publishers/google/models(which doesn't require project/location parameters). - Keeps backward compatibility with existing OAuth bearer tokens.
- Added support for authenticating directly with Google Vertex AI using API keys (
🐛 Bug Fixes
-
Google Tool Thought Signatures
- Correctly extract and forward Gemini reasoning/thought signatures in tool calls, preventing any misalignment or signature mismatches.
-
TUI Raw Bash Output Preservation
- Preserved ANSI escape codes and raw spacing/newlines in Bubble Tea TUI rendering for
bashtool results, avoiding accidental italic style inheritance from the TUI framework.
- Preserved ANSI escape codes and raw spacing/newlines in Bubble Tea TUI rendering for
v0.1.36
Changelog
v0.1.36
✨ Features
- Doctor Subcommand (
vibecoding doctor)- New diagnostic command that checks environment, configuration, providers, sandbox, MCP servers, sessions, skills, and context files
- Reports OS/arch, Go version, shell, home/working directory
- Validates settings, gateway, and MCP config files with parse checks
- Lists configured providers with masked API keys, models with context window/max tokens/reasoning flags
- Checks bwrap sandbox availability and version
- Shows MCP servers, session counts, skills directories, and discovered context files
- Unconfigured providers (no API key) are silently skipped
🐛 Bug Fixes
-
TUI Session State
- Fixed
/clearto reset transcript rendering state, tool results, assistant markdown caches, active stream indices, plan panel, and tool modal state consistently with session switching - Extracted shared transcript/input reset helpers to reduce divergent cleanup paths
- Fixed
-
TUI Mode Switching
- Pressing Tab to cycle mode now aborts an active request before changing mode, matching
/modebehavior and preventing approval/question responses from targeting a stale agent
- Pressing Tab to cycle mode now aborts an active request before changing mode, matching
-
TUI Question Tool
- Numbered question selections now resolve to the selected option text instead of sending raw numbers back to the model
- Clearing question state now also clears the current question metadata
-
TUI Warnings and Details Modal
- Context-pressure and budget-pressure agent events are now displayed in the TUI
- Ctrl+O now reports when there is no conversation detail to show instead of opening an empty modal
-
Context Pressure Threshold Comparison
- Fixed Context Pressure threshold unit mismatch:
Percent(0-100) was compared directly againstthreshold(0-1), causing the warning to fire at ~0.5% usage instead of the intended 55% - Fixed
InitHermesConfigproject template to include explicitcontext_pressure_thresholdandbudget_pressure_thresholddefaults, preventing them from being serialized as 0 (disabled)
- Fixed Context Pressure threshold unit mismatch:
-
Live Message Rendering
- Live assistant messages render fenced code blocks as Markdown while keeping normal prose on the plain-text wrapping path to avoid awkward word splitting
-
Model Validation and Compaction
- Pass
ModelIDinChatParamsso providers know the active model - Forward model to compaction/summary generation, preventing silent fallback to default model
- Return errors with available model list when model is not found instead of silently falling back
- Consistent model error messages across factory, gateway, and TUI
- Pass
-
Google/OpenAI Tool Result Text Extraction
- Fixed Google and OpenAI providers sending empty content when tool results use rich
Contentsblocks instead of plainContentstring - Added
googleToolResultText()to extract text fromContentsblocks in Google provider - Fixed
responseToolOutput()usage in OpenAI rich tool result branch
- Fixed Google and OpenAI providers sending empty content when tool results use rich
🧪 Tests
- Added regression coverage for
/cleartranscript cleanup, question state tracking, empty details modal handling, pressure warnings, live code-block rendering, and prose wrapping - Added agent-level integration test (
TestToolResultIsIncludedInNextProviderTurn) verifying tool results with richContentsblocks reach the next provider turn - Added provider-level unit tests for Google and OpenAI tool result text extraction from
Contentsblocks