mistralai/mistral-vibe v2.25.1
mistralai/mistral-vibe
Captured source
source ↗published Sep 9, 2026seen 1hcaptured 1hhttp 200method plain
v2.25.1
Repository: mistralai/mistral-vibe
Tag: v2.25.1
Published: 2026-09-09T13:37:18Z
Prerelease: no
Release notes:
[2.25.1] - 2026-09-09
Added
- Desktop keeps 15 recent managed Code worktrees by default, configurable in Local Coding settings; cleanup skips active, dirty, untracked, or unpushed worktrees.
- Background process tools (process.start, process.stop, process.output, process.list, process.write) now show the command or process ID in the call header and a typed result widget instead of raw JSON.
- Tool call groups now fold into a single compact summary line by default. Click to expand the full list. Ctrl+O toggles all groups and result bodies. The summary shows present-tense labels while running (e.g. "Running commands") and past-tense when done (e.g. "Ran commands"). File edits and writes are included in the fold.
- Show a loading spinner in the conversation while
/reloadis in progress - A risky call is returned to the model to self-correct rather than interrupting the human, escalating to an approval prompt only after a streak; no failure path auto-approves
- Experimental
experimental_enable_tab_statusconfig option: shows>>(running) and?(waiting) indicators in the terminal tab title. - New built-in
worktreeplugin with a skill for creating, reusing, and cleaning up git worktrees under $VIBE_HOME/worktrees.
Changed
- The invalid API key error now names where the key came from (
env var MISTRAL_API_KEY,the keyring), so a shell-exported key shadowing the one saved at setup is visible. - Optimized resource usage when running the full test suite.
- The
vibeandskill-creatorskills now reach a session as skills of the shippedvibeplugin, so they are offered once, as/vibe:vibeand/vibe:skill-creator. - Bump harness to v0.4.3
- Vibe Desktop can create local projects from any existing folder.
- Background LLM session titles are now off by default. Set
session_logging.generate_titles = trueto re-enable them. - Vibe CLI shows the output of a
!command directly in the timeline: it is neither folded behind its own toggle nor gathered into the summary line that folds the agent's tool calls. Shell calls the model makes still fold, as every other tool result does. - The
/pluginsdetail view now leads with Author and Version, then the description, then Location (renamed from "Installed from"), Scope, Format, and Pinned. - The
/resumesession picker now shows an animated loading indicator while saved sessions are discovered and waits briefly before loading a highlighted session preview, keeping rapid keyboard navigation responsive. - A session that asks for a worktree now starts in the repository and moves into the worktree once
git worktree addlands, so the session exists from the moment the prompt is sent instead of after the checkout. Only its first turn waits.
Fixed
- Worktree sessions retain access to attached images and files.
- Pinning or removing a shared skill now republishes this repository's claims, so another repository's cleanup no longer deletes a skill you just added.
- Removed unauthenticated debugpy listener on localhost:5678 that was activated by
DEBUG_MODE=trueundervibe-acp - A rejected API key no longer offers
/retry, which could only fail again with the same key. - Path autocomplete now prioritizes matches beneath an explicitly typed directory prefix in large repositories
- GrowthBook rollouts set only via a feature's default value now take effect (previously ignored)
- GrowthBook boolean feature flags now take effect, not just string on/off values
- Cached experiment variants are no longer dropped to defaults on cold start or resume
- Stop the CLI from dumping a traceback on exit when the app-server connection drops during shutdown (a failed reconnect/resume no longer crashes the event listener).
- Built-in plugins are no longer listed under "Not loaded" in
/pluginswith "Plugin namespace 'vibe' is reserved". Only a built-in may claim the reservedvibenamespace, but the re-resolve a session's plugin bind performs was re-reading every checkout at project scope, so the shippedvibeplugin was dropped from every session. - Tool call group icon now reflects the status of the last call in the group instead of the worst (any failure no longer overrides a later success)
- Individual failed tool call indicators stay grey (muted) when a later call in the same group succeeds, instead of escalating to red
- Tool group and individual tool call indicators now show a blinking square while running, then a colored dropdown triangle when settled
- App-server validation errors now name the offending field and reason instead of only "Invalid request parameters".
- The auto-generated session title now waits for the first turn to complete and ignores the assistant's process preamble, so it names the actual task (e.g. the real subject of a linked issue) rather than an opening line like "I'll explore the codebase"
- Session titles now generate and refresh while a turn is still running — including long, tool-heavy turns that emit few assistant messages — instead of only when the turn ends or is interrupted
- A
!command that exits non-zero (or is interrupted) now shows what it printed. Only the exit status was reported before, which hid the stderr explaining it. - User-scope plugins (
~/.vibe/plugins/) were shown asprojectscope in/pluginsbecause the bind-time resolve collapsed all staged checkouts to project scope. Scope is now preserved from the original discovery. - Smart approve now runs its classifier on the fast Mistral model regardless of the session's active model, including when you switch into the mode mid-turn; a session on another model (e.g. a non-Mistral provider) sent the classify call to the wrong endpoint, so every gated tool call came back unverifiable and prompted instead of auto-approving
- The smart-approve pre-check no longer fast-approves content-dumping git commands (
git diff/show/blame,git log -p,git status -v); they defer to the classifier so a secret shown in a diff is not auto-read - The smart-approve pre-check no longer fast-approves a secret path hidden behind a
cdprefix (e.g.cd ~/.ssh && ls); the secret scan now reads the whole command, not the part after thecd - The classifier now runs the fast model with deterministic decoding (temperature 0, thinking off) regardless of the session, so a thinking session no longer sends a thinking...
Excerpt shown — open the source for the full document.