Changelog

What's new.

Every shipped release, newest first. The /changelog command in the CLI opens this page, and every launch quietly checks for a newer version. The full history lives in the CHANGELOG on GitHub.

16.5.2

2026-07-14 latest
Breaking
  • Removed the separate selector parameters from read and grep; line ranges and read modes must now be appended to path.
Added
  • Added a generate_image.enabled setting (Settings › Tools › Generate Image) to allow toggling the image generation tool.
Changed
  • Expanded provider rate-limit response header ingestion to all supported providers with header parsers (previously Anthropic-only), enabling proactive account rotation for multi-account sessions before hitting 429 errors.
  • Restored CPU model metadata in workstation prompts on non-Linux hosts.
Fixed
  • Fixed vey config list --json output truncation at 64 KiB when stdout is piped.
  • Fixed vim-style navigation (h/j/k/l) under the Kitty keyboard protocol.
  • Fixed /guided-goal throwing Model not found errors on websocket-only Codex models by routing the interview through the session's provider transport and reusing a single isolated side session.
  • Fixed tool_result extension handlers being unable to rewrite the model-visible content of a thrown tool failure.
  • Fixed intermittent Perplexity OAuth web search failures (401 errors) caused by transient transport drops on the ask endpoint.
  • Fixed the generate_image tool ignoring --no-tools and explicit tool whitelists.
  • 41 more
    • Fixed markerless prose thinking preambles incorrectly becoming session titles when title models omit the <title> marker.
    • Fixed the agent recreating a todo list immediately after a user clears it with /todo rm.
    • Fixed internal-URL autocomplete (agent://, skill://, veyyon://, etc.) not triggering inside slash command arguments.
    • Fixed the browser tool hanging indefinitely during tab closure when the headless Chromium process is wedged on Windows.
    • Fixed history:// URLs failing to resolve for unregistered, released, or resumed subagents by falling back to scanning artifacts directories on disk.
    • Fixed eval cells treating timeout: 0 as a one-second deadline and reporting session-deadline cancellations as user aborts.
    • Fixed MCP OAuth dynamic client registration for pathful authorization-server issuers by preserving the discovered registration endpoint.
    • Fixed the launch tool failing to start Windows executables due to double-escaped PTY commands and arguments.
    • Fixed the built-in advisor warning Advisor unavailable for silent reviews: a content-less stop is a valid "nothing to add" outcome and is never retried or warned about, regardless of reported token usage.
    • Fixed read, edit, and grep tools failing on paths with a stray leading colon emitted by some models.
    • Fixed git plugin re-installs retaining stale commits by fetching Bun's cached clone before updating the lockfile pin.
    • Fixed overlapping Bash timeout and interrupt cleanup to explicitly abort isolated shells instead of leaving child processes running.
    • Fixed a bug where generic provider aborts arriving as stopReason: "error" were not auto-retried.
    • Fixed switching from a vision model to a text-only model mid-session sending historical image blocks to the new provider.
    • Fixed inline images in Agent Hub transcripts by routing replayed images through the shared image budget and Kitty placeholder renderer.
    • Fixed OSC 5522 paste in direct API-key login prompts being routed to the hidden main chat editor instead of the focused credential field.
    • Fixed plugin installation failures when an ES module extension synchronously requires CommonJS helpers.
    • Fixed GitHub code search rejecting empty optional date placeholders.
    • Fixed /tree navigation onto a /skill: injection node landing on the incorrect entry.
    • Fixed interactive TUI sessions crashing with concurrent JS runtime errors when the JS eval worker falls back to the in-process inline path.
    • Fixed compaction aborting instead of trying an authenticated fallback model when Amazon Bedrock credential resolution fails.
    • Fixed full-context forks and /tan clones cold-missing OpenAI prompt caches by properly persisting and inheriting provider prompt-cache keys.
    • Fixed Codex advisor requests using local session labels as provider session IDs.
    • Fixed macOS stdio MCP servers launching in a detached session, allowing the TCC Apple Events permission prompt to trigger.
    • Fixed the ask tool timeout to auto-select the recommended option when the UI selector does not settle.
    • Fixed LSP workspace diagnostics for Go workspaces to correctly recognize go.work roots and include all used modules.
    • Fixed interactive OAuth login success messages waiting on background model discovery.
    • Fixed Windows bash tool crashes when an explicit timeout fires while a piped command is still streaming.
    • Fixed subagent yield tool calls being discarded when the soft request budget hard-aborted the same assistant turn.
    • Fixed --tools filtering in interactive sessions disabling deferred MCP tools.
    • Fixed kept-alive task subagents entering repeated provider-call loops after an IRC wake and terminal yield.
    • Fixed manual /compact with the snapcompact strategy hard-failing on text-only active models.
    • Fixed the empty-editor ←← gesture trapping input when opening the Agent Hub from persisted/parked subagents.
    • Fixed eval read() URI handling in Python and JS runtimes to correctly delegate URI reads and pass pagination arguments.
    • Fixed discovered plugin .mcp.json stdio servers launching relative command or cwd values against the session cwd instead of the plugin's config directory.
    • Fixed Model Hub DEFAULT role assignments with auto retaining a stale concrete reasoning suffix after restart.
    • Fixed configured retry.fallbackChains failing to engage on non-retryable provider errors.
    • Fixed backgrounded Bash blocks continuing to repaint with live output after completion.
    • Fixed --reasoning-slide-plan silently ending the run with no code written when the model answered with a text-only reply.
    • Fixed launch tool rendering issues, including stacked pending headers and confusing start/wait results when readiness timed out.
    • Fixed the in-process stat and other GNU-flavored shell builtins (such as date, sed, mktemp, tail, find, base64, and ln) mangling or failing on macOS/BSD-style invocations.

16.5.1

2026-07-14
Changed
  • Enhanced Anthropic credential and usage management to support organization-scoped accounts, including displaying organization names in /usage, /logout, vey token --list, and OAuth login success messages, resolving active-account matching for shared organizations, and deduplicating identities during migration.
Fixed
  • Fixed compatibility of GNU-flavored shell builtins (such as stat, date, sed, mktemp, tail, find, base64, and ln) when invoked with macOS/BSD-style arguments.
  • Fixed subagent model and thinking level resolution to correctly respect the configured modelRoles.task selector instead of intermittently falling back to the parent session's model.
  • Fixed TUI rendering issues, including preventing macOS runtime diagnostics from painting into the viewport, bounding transcript retention in long sessions, and fixing scrollback repainting when collapsing history.
  • Fixed /tan and /fork clones failing to inherit or persist the parent session's prompt cache keys.
  • Fixed Python and JavaScript evaluation kernels suspending the CLI on subprocess foregrounding, deadlocking on non-serializable values, or losing in-flight subagent work during external aborts.
  • Fixed configured retry.fallbackChains failing to engage when encountering non-retryable provider errors.
  • 11 more
    • Improved auto-compaction to automatically drop images and elide content when context is tight, and added persistent warning badges to the compaction divider when manual intervention is required.
    • Fixed the downshift plan nudge silently ending runs with no code written when the model answered with a text-only reply.
    • Fixed launch tool rendering and status reporting, including resolving contradictory readiness timeout messages and preventing backgrounded Bash blocks from continuing to repaint.
    • Fixed Advisor containment and timing issues, preventing hallucinated tool calls from contaminating later advice and ensuring late-arriving transcript deltas are coalesced before advisor calls.
    • Fixed vey update on npm-managed Windows installations to prevent downloaded release binaries from overwriting npm launchers.
    • Fixed --max-time duration values (e.g., 5s, 10m, 1h) being ignored instead of setting a session deadline.
    • Fixed vey plugin install --force failing with a dependency loop when replacing an existing pinned Git plugin source.
    • Fixed MCP tools receiving session image attachments as raw local:// URIs instead of resolving them to local filesystem paths.
    • Fixed Pyright LSP semantic requests hanging during startup.
    • Fixed Codex web search requests for GPT-5.6 Responses-Lite models.
    • Fixed custom model/provider configuration discovery to correctly load ~/.veyyon/agent/models.yaml when models.yml is absent.

16.5.0

2026-07-13
Breaking
  • Replaced the --reasoning-slide-* flag family with a unified --prewalk mechanism (--prewalk, --prewalk-into <model>, and --no-prewalk) to manage model handoffs during execution.
Added
  • Added a new --prewalk execution flow (with --prewalk-into <model> and --no-prewalk overrides) that starts tasks on a strong model for planning and todo initialization before handing off to a faster, cheaper model for implementation. - Added a status line annotation for the active prewalk phase (armed or active). - Added the tui.scrollbackRebuild setting to gate the erase-and-replay native scrollback rebuild mechanism (defaults to off).
  • Added a display setting to toggle between collapsing or keeping compacted history inline in live session displays.
  • Added a compact session-only model picker (Alt+P) for quick model switching, featuring @ search to quickly list and apply configured quick roles.
  • Redesigned Agent Hub entries into a cleaner two-line card layout showing identity, active model, reasoning level, age, and task description.
  • Added a project-scoped launch tool (gated by launch.enabled) for managing shared long-running services and debuggers, featuring readiness probes, bounded logs, PTY input, restart policies, and automatic teardown.
  • Added support for detached launches, allowing standalone services to survive broker shutdowns and reconnect to subsequent sessions.
Changed
  • Updated JSON logs (--mode json) to include provider payloads in auto-compaction events.
  • Updated tangential agent forks (/tan) to ignore parent session history and focus exclusively on the new request, hardening isolation with cleared todo lists and concurrent editing warnings.
  • Added visual markers in the transcript for elided tool calls that have no corresponding result.
  • Updated the status event log to prioritize the most recent entries in the display window.
  • Upgraded @agentclientprotocol/sdk to version 1.2.1.
Fixed
  • Fixed terminal scrollback duplication issues with expanded streaming edit previews (Ctrl+O) by using a viewport-sized tail window.
  • Fixed custom model role resolution and alias parsing, ensuring canonical role selectors (@role) and thinking suffixes resolve correctly across all configuration surfaces.
  • Fixed quadratic growth in JSON logs by eliding redundant message snapshots and payloads.
  • Fixed prompt cache misses and incorrect cache key pinning for /tan and /fork clones.
  • Fixed inconsistent history rendering and scrollback repainting when toggling the display setting for compacted items.
  • Fixed retry.fallbackChains failing to engage on non-retryable provider errors, ensuring the agent correctly falls back to the next candidate model.
  • 4 more
    • Improved auto-compaction to automatically drop images and elide content when context is tight, and added persistent warning badges when manual intervention is required.
    • Fixed backgrounded Bash blocks continuing to repaint with live output; they now freeze with a compact job notice while completion is delivered separately.
    • Fixed rendering, status display, and PTY control sequence formatting issues in the launch tool.
    • Fixed in-process shell builtins (including stat, date, sed, mktemp, tail, find, base64, and ln) to correctly detect and translate macOS/BSD-style arguments and flags, preventing failures caused by GNU-only assumptions.
Removed
  • Removed the --prewalk-boomerang feature and its associated configuration setting.
  • Removed the unreliable Bing and Yahoo HTML-scraping web search providers.

16.4.8

2026-07-12
Added
  • Added a predicate form to the browser run's wait() helper: wait(fn, { timeout?, interval? }) polls the function (sync or async) until truthy and resolves with that value, failing with a named timeout error (deadline clamped under the cell budget so it always beats the opaque whole-cell timeout) instead of Bun's sleep expects a number or a whole-cell stall from in-page polling Promises; both wait forms now register in the stall diagnosis of cell timeouts
  • Added --reasoning-slide-model and --reasoning-slide-turns to switch a running agent from its initial model after a fixed number of completed assistant turns
  • Added --reasoning-slide-plan (with --reasoning-slide-plan-at) to steer a hidden deep-planning nudge into the run before the reasoning slide; the switch is held until a substantial plan turn actually lands (bounded by a grace window) and the nudge is scrubbed from the LLM context at the switch so the fast model inherits only the produced plan
  • Added --reasoning-slide-on-action to trigger the reasoning slide at the first completed turn that ran an edit/write tool instead of a fixed turn count (bash is excluded — it doubles as exploration)
Changed
  • Replaced the Alt+P / /switch temporary model selector's fullscreen /models hub with a compact full-width floating overlay anchored above the editor (~40% of the terminal height): just the searchable model list — no provider sidebar or role management — with the session's active model highlighted and preselected
  • Improved tab recovery after timeouts by automatically clearing pending navigation and JS dialogs
  • Made tab.goto navigation failures catchable with a named error instead of triggering a whole-cell timeout
  • Made tab.evaluate run in the page's main JavaScript world so page-defined globals are available without a directive
  • Enhanced cell timeout messages to include identification of stalled operations and blocking JS dialogs
  • Browser run on a tab the supervisor force-killed now reports the kill reason instead of a bare "not alive"
  • 1 more
    • Refined agent workflow to prioritize smoke testing and reduce mandatory upfront test generation
Fixed
  • Fixed the eval tool's status-event tree truncating from the bottom: the newest log() progress lines were hidden behind an … N more marker while the oldest stayed visible; the tree now shows a tail window behind an … N earlier marker, and the expanded view widens to the viewport instead of a fixed 10 events
  • Fixed the //!world=main directive being silently ignored for string expressions passed to raw Puppeteer evaluation APIs
  • Fixed tab reuse issues where hung navigation or unhandled modals would cause initialization to stall and trigger a force-kill
  • Improved search reliability for Perplexity provider by forcing retrieval for all queries
  • Fixed JS eval cells losing top-level function and var declarations across cells when the defining cell contained top-level await — the async wrapper scoped them to the cell's IIFE instead of publishing them to the worker global

16.4.7

2026-07-12
Added
  • Enabled Home and End keyboard navigation in the model browser
  • Added a c hotkey in the plan-review overlay that copies the current reviewed plan markdown to the system clipboard, including in-overlay edits.
Changed
  • Streamlined list view styling by removing inline model role chips from row entries
  • Reworked /models hub selection visuals: the background highlight band is reserved for mouse hover, the keyboard position is a cursor glyph drawn only in the pane that owns the arrow keys, and the sidebar's active scope renders as a bold accent label
  • Removed the redundant "login" label from inactive (locked) provider entries in the Model Hub sidebar
Fixed
  • Fixed PageUp/PageDown in the model browser wrapping past the list edges instead of clamping
  • Fixed the hover highlight sticking to the last hovered model row when the pointer moved into the provider sidebar

16.4.6

2026-07-12
Added
  • Added invalidate action to the usage command to clear cached usage reports
  • Added model-oriented keys and wildcard entries to retry.fallbackChains: a provider/model-id key attaches a fallback chain to that exact model, a provider/* key covers every current or future model of a provider, and a provider/* chain entry keeps the failing model's id while swapping the provider (google-antigravity/xgoogle/x) — so fallbacks survive role and model reassignments without config edits. Keys resolve by specificity: exact model, then provider wildcard, then role, then default.
  • Added fallback-chain editing to the /models Roles view: each role's retry.fallbackChains entries render as indented rows beneath it, f picks a fallback model to append, Enter on an entry replaces it, x/backspace removes it, and [/] (or shift+↑/↓) reorder the chain.
  • Added model-keyed fallback management to the /models Roles view: model and provider/* chains render as a separate section below the roles (divider + "+ New fallback…" row for creating one by picking the protected model, then keying it by model or provider), with the same replace/remove/reorder editing as role chains; the model strip gains fallbacks:<model> and fallbacks:<provider>/* chips as shortcuts.
  • Added /queue <message> plus -> / => composer shorthand for follow-up messages that wait until the agent yields. The shorthand opens a dim Queueing header and splits sequential numeric, Roman-numeral, or alphabetic lists into separately highlighted queue entries.
  • Added per-model TPS/TTFT tracking: every completed assistant turn folds its timing into recency-weighted aggregates in ~/.veyyon/agent.db, and the /models browser shows measured speed — a right-aligned 118t/s column on wide terminals (plus TTFT, e.g. 0.9s 118t/s, when wider) and ~118t/s · 0.9s ttft facts in the selection detail line — with no dependency on the vey stats session scan.
Changed
  • Retain completed and abandoned tasks in session history for improved context on resume
  • Changed the Model Hub retry-fallback strip chip to append the model to the default fallback chain instead of prepending it, matching the chain-building order of the Roles view (already-registered models are a no-op).
  • Changed per-model perf recording (recordModelPerf) to be deferred like prompt history: samples are batched and written to agent.db in one transaction ~100ms later, keeping SQLite writes off the turn-completion hot path.
Fixed
  • Fixed failure to trigger model fallback when the retry budget is exhausted by credential rotation
  • Fixed uncontrollable mouse-wheel scrolling in the /models hub: the wheel moved the selection (one step per wheel event, so a single trackpad flick skipped many rows) and wrapped from the bottom back to the top. Wheel scrolling now pans the list viewport only, clamps at the ends, and leaves the selection where it is; keyboard navigation still scrolls the selection into view. Likewise, the wheel over the provider sidebar no longer switches the active scope (or triggers provider refreshes) — it just scrolls the sidebar.
  • Fixed TPS being inflated several-fold when a provider hides reasoning tokens until late in the stream (e.g. google/gemini-3.5 vs google-vertex/gemini-3.5 reporting 648 vs 186 TPS for identical durations): vey bench, the per-turn usage row, and the /models perf aggregates now measure tokens/sec over the total request duration instead of the post-TTFT decode window, matching vey stats. Stored perf aggregates are purged and re-backfilled from stats history with the corrected math on first launch.
  • Fixed the model-perf stats.db backfill freezing the TUI (~30s on multi-million-row stats databases) when /models triggered it: the import is now fire-and-forget, walks the newest rows in small chunks with event-loop yields between them, and is bounded to 90 days / 256 newest samples per model — beyond either bound the recency decay would erase the contribution anyway.
  • Fixed compiled release binaries bundling fastembed and baking the build-machine @anush008/tokenizers path; native runtime dependencies now stay external for every compiled build path so Mnemopi resolves its on-demand install instead.
  • Fixed /btw side-channel turns on Codex models such as gpt-5.6-luna by preserving the session websocket preference instead of forcing SSE, and made Esc dismiss the active /btw panel before interrupting loop/maintenance work.
  • 3 more
    • Fixed the Model Hub role-assignment strip hiding the selected chip once the row overflowed; the strip now scrolls horizontally, truncating passed chips behind a leading ellipsis so the selection (plus one chip of lookahead) stays visible.
    • Fixed mouse hover and clicks in the /models Roles view landing one row above the pointer (the row mapping subtracted the status row twice).
    • Fixed model search keeping the most-recently-used model on top of the results: match quality now ranks first (an exact gpt-5.5 beats the active gpt-5.6-sol), with MRU order only breaking ties between equally good matches.

16.4.5

2026-07-11
Breaking
  • Reworked the task tool wire schema: moved the top-level agent field into individual task items, renamed assignment to task and id to name, and removed the role and description fields. UI labels are now automatically generated from the task text.
Added
  • Introduced a fullscreen, mouse-supported Model Hub (via /model) featuring a sidebar of scopes, metadata-aligned model tables, inline role/thinking assignment strips, custom role creation, quick-switch cycle editing, and manual provider refreshing.
  • Added a /pause command to freeze all active agents (main, subagents, and advisor) at their next safe step, allowing manual repository edits mid-run before resuming.
  • Added support for per-ID bulk conflict directives via write({ path: "conflict://*", content: "..." }) to resolve multiple conflicts in a single call.
  • Added auto as a valid thinking-level in agent frontmatter, which is now the default for the bundled task subagent.
  • Added rich, interactive, fixed-height ask dialogs featuring question tabs, option previews, notes, and multi-select toggles.
Changed
  • Redesigned OAuth logins to run inside a cancellable dialog (aborted via Esc) rather than an inescapable pairing prompt.
  • Reworked the subagent soft request budget to gracefully steer child agents to wrap up and yield partial findings instead of silently terminating them, and raised the default budget to 200 requests.
  • Updated task rendering to retain the agent type badge on live progress and finished result rows.
Fixed
  • Fixed issues where in-flight tool calls or task blocks would disappear from the chat during mid-turn transcript rebuilds or when background jobs settled.
  • Fixed mixed blocking and non-blocking task batches degrading all spawns to synchronous execution; execution mode is now correctly handled per item.
  • Fixed budget-stopped subagents becoming unreachable, allowing them to remain adopted and resumable via irc with full context.
  • Fixed code duplication in write conflict://<N> when models pasted lines adjacent to the marker block.
  • Fixed visible per-keystroke lag when searching in the /resume session picker by caching search targets and debouncing SQLite lookups.
  • Fixed compiled Linux binary extension loading failures related to bundled web-search header generation data paths.
  • 4 more
    • Fixed job list and empty-poll snapshots returning empty output, ensuring running subagents without backing jobs are properly listed.
    • Fixed agents getting stuck waiting for messages from peers that have already stopped running.
    • Fixed compiled Linux binary extension loading when bundled web-search header generation cannot read header-generator data files from the build-time path.
    • Fixed plugin custom tool loading to skip and report invalid feature entries instead of crashing startup when a plugin dependency tree leaves one feature unresolved.

16.4.4

2026-07-11
Changed
  • Optimized session title generation and auto-thinking classification for sub-billion-parameter tiny models (such as LFM2) by rewriting system prompts, improving input truncation to preserve message context, and unifying preprocessing to filter out noise like ANSI codes, XML tags, and long commit hashes.
Fixed
  • Fixed an issue where the Windows binary exited silently without running the CLI, which also caused vey update to roll back.
  • Fixed native Windows binary compatibility on older Windows 10 CPUs by building the veyyon-windows-x64.exe release asset with a baseline x64 runtime instead of AVX2. (#5172)
  • Fixed GenerateImage rejecting OpenAI Codex-compatible proxy bearer keys when the token does not expose a chatgpt-account-id. (#5174)
  • Fixed context promotion documentation to accurately reflect the contextPromotionTarget runtime behavior and contextPromotion.enabled default. (#5163)

16.4.3

2026-07-11
Added
  • Added /vibe mode, allowing the model to act as a director driving persistent background worker sessions (fast and good tiers) with dedicated session tools (vibe_spawn, vibe_send, vibe_wait, vibe_kill, vibe_list) and a live TUI "TV wall" showing active worker activity, tool traces, and streamed output.
  • Added multiple credential-free web search providers (Google, Bing, Yahoo, Startpage, Ecosia, Mojeek) with stealth-browser escalation, bot challenge detection, and recency filters, alongside a parallel public ("Public Web") provider that aggregates and deduplicates results across all engines.
  • Added PCRE2 fallback support for grep lookaround and backreferences when the default Rust regex engine rejects a pattern.
  • Added a helpful stderr hint when launching vey acp from an interactive terminal to clarify that the command communicates via JSON-RPC over stdout.
Changed
  • Reduced browser action timeout from 15s to 8s to improve agent iteration speed.
  • Refined agent delegation logic to prioritize top-level planning by the primary agent, discourage single-agent delegation, and handle prerequisite work inline.
  • Optimized credential-free web search engine ordering and routing, prioritizing Startpage and Ecosia, and using randomized desktop Chrome profiles with stealth-browser escalation for blocked requests.
Fixed
  • Fixed advisor config preserving an explicit empty tool list so /advisor config can disable all advisor tools.
  • Fixed npm bundle generation failing on Linux with E2BIG by building dist/cli.js in-process via Bun.build instead of passing the embedded docs payload as a CLI --define argument.
  • Fixed compiled-binary extensions failing to load native .node FFI dependencies by resolving platform-specific packages against the extension's own node_modules.
  • Fixed a hang in vey search and vey q CLI commands by ensuring the AuthStorage connection is properly closed upon completion.
  • Fixed write blocking for the full LSP diagnostics poll by deferring slow diagnostics to a late-diagnostics channel.
  • Fixed multiple browser and puppeteer tool issues, including locator action timeouts, missing console/print output buffering, missing fill() method on element handles, and incorrect viewport screenshots on multi-tab setups.
  • 14 more
    • Improved browser selector error diagnostics to report match counts and abort early on empty matches instead of waiting for the full timeout.
    • Fixed silent failures, duplicate error messages, and unhandled provider errors in ACP mode when errors occurred before streaming assistant text.
    • Fixed glob reporting contradictory "no files found" messages on timeout by explicitly stating the scan was incomplete.
    • Fixed read adding unwanted context padding to raw range selectors (e.g., raw:31-31).
    • Fixed first-run interactive startup rendering the entire changelog when the last-seen marker is missing or unreadable (#5135).
    • Fixed empty local-model stop responses exhausting retries without displaying a user-visible error (#5128).
    • Fixed serialization of BigInt values in tool arguments during session compaction.
    • Fixed GPT-5.6 over-delegating work by centralizing task fan-out and concurrency policy in the system prompt.
    • Fixed session title generation including leaked thinking markup from OpenAI-compatible endpoints (#5122).
    • Fixed bare skill://<name> path-only resolution for bash, grep, and glob to resolve to the skill directory instead of SKILL.md (#5087).
    • Fixed macOS stdio MCP servers missing Apple Events TCC prompts by spawning MCP children via the correct Bun.spawn overload (#5085).
    • Fixed the /move directory picker drawing a narrow 68-column frame inside wider overlays (#5067).
    • Fixed snapcompact inline imaging for GitHub Copilot Business and Enterprise models (#4779).
    • Fixed vey commit agent sessions to ensure valid proposals are committed before teardown, handle missing host outputs with non-zero exits, and prevent forcing GPG_TTY on signing-enabled repositories (#4794).
Removed
  • Removed the bundled plan subagent from available task agents.

16.4.2

2026-07-10
Fixed
  • Fixed an issue where BigInt values in tool arguments failed to serialize during session compaction.
  • Resolved an issue where GPT-5.6 over-delegated tasks by refining task fan-out and concurrency policies in the system prompt.
  • Fixed a race condition in concurrent MCP OAuth token refreshes across processes, ensuring rotating refresh tokens are only refreshed once and preventing stale token errors from clearing valid credentials.

16.4.1

2026-07-10
Changed
  • Reduced agent bias against large diffs and refactors in advisor prompts
  • Updated advisor blocker criteria to prioritize explicit user instructions over plan size
Fixed
  • Fixed MCP OAuth dynamic client registration omitting discovered scopes on the RFC 7591 registration body. Providers such as Clerk bind DCR-created clients to only the scopes declared at registration, then reject the subsequent authorize request when it asks for openid (from scopes_supported). Registration now includes config.scopes when present, matching Claude Code and the scopes already sent on authorize.

16.4.0

2026-07-10
Breaking
  • Renamed the bundled agent explore to scout, including its configuration keys, prompt files, and task definitions. Any configurations, allowlists, or invocations referencing explore must now use scout.
  • Changed the public selectLaunchAdapter() result from DapResolvedAdapter | null to LaunchAdapterSelection; callers must handle adapter, unavailable, and none outcomes.
Added
  • Added a native, first-class max thinking tier for supported models, including a new thinkingBudgets.max configuration setting, support in CLI flags (--thinking, :max model suffixes), and terminal theme customization (thinkingMax border color and icons).
Fixed
  • Fixed Go debug launches falling back to native debuggers when Delve is unavailable; nested modules and go.work workspaces now resolve local Delve adapters before PATH, newly installed adapters are detected without restart, and missing adapter errors include install or configuration guidance.
  • Fixed a memory leak (large retained JavaScriptCore heaps) in the TUI during session transcript rebuilds and refreshes by properly handling snapcompact archive image frames.
  • Fixed a crash in interactive TUI sessions (Cannot set cwd while another same-realm JS runtime is running) when the JS evaluation worker falls back to the in-process inline path.
  • Fixed compaction aborting when Amazon Bedrock credential resolution fails, ensuring it now falls back to trying an authenticated model.
  • Improved OpenAI prompt cache hit rates for full-context forks by persisting inherited provider prompt-cache keys separately from session IDs, and added a --prompt-cache-key flag for explicit cache affinity.
  • Fixed Codex advisor requests incorrectly using local session labels as provider session IDs, switching to stable UUIDv7 provider identities.
  • 8 more
    • Fixed macOS stdio MCP servers launching in detached sessions, allowing tools like xcrun mcpbridge to successfully trigger TCC Apple Events permission prompts.
    • Fixed the ask tool timeout behavior to automatically select the recommended option if the UI selector does not settle.
    • Fixed LSP workspace diagnostics for Go workspaces to correctly recognize go.work roots and include all specified modules in go build package patterns.
    • Fixed interactive OAuth login (/login xai-oauth) delaying success messages; credentials are now reported immediately while model metadata refreshes in the background.
    • Fixed a crash in the Windows bash tool when a timeout occurs while a piped command is streaming output.
    • Fixed subagent yield tool calls being discarded when a soft request budget aborts the assistant turn before the yield event completes.
    • Fixed --tools filtering in interactive sessions incorrectly disabling deferred MCP tools from configured servers.
    • Fixed kept-alive task subagents entering infinite provider-call loops after an IRC wake and terminal yield.

16.3.15

2026-07-09
Changed
  • Integrated testing guidance directly into the main system prompt for improved workflow cohesion
  • Moved testing guidance into the main system prompt and removed the bundled Tester subagent.

16.3.14

2026-07-09
Fixed
  • Fixed issue where unfinalized tool blocks could incorrectly pin the live-region scroll seam
  • Improved rendering of raw thinking blocks by stripping empty HTML comment noise
  • Fixed display of thinking blocks consisting entirely of hidden comment noise
  • Fixed gpt-5.6 reasoning summaries rendering literal <!-- --> sentinel lines in thinking blocks; empty HTML comments (and the unterminated <!-- tail while streaming) are now dropped from the thinking display, and blocks reduced to pure comment noise are hidden entirely.
History

Built on oh-my-pi.

Veyyon is a fork of oh-my-pi (MIT) by Can Boluk, shipped as its own product. Full commit history and per-release detail live on GitHub.