Mistral Vibe: Shell and Git Safeguards Tighten the Working-Directory and Trust Boundary

Mistral VibeView original changelog

Mistral Vibe 3.0.3 closed several gaps where the agent could reach beyond what a user authorized. Shell tools set to permission = "always" now ask before touching paths outside the working directory, bare symlink names such as cat link are treated as paths, and a new outside_workdir = "deny" setting refuses outside access without a prompt. Git handling was also hardened so untrusted repositories can no longer run their own configured programs during context loading, worktree creation or file completion.

Key Takeaways

  • Shell tools set to permission = "always" now prompt for paths outside the working directory, closing a gap versus file tools.
  • A new outside_workdir = "deny" option refuses outside access with a tool error, so the agent continues instead of waiting on a prompt.
  • Symlinks and Windows junctions passed as bare names, such as cat link, are now treated as paths and checked like any other outside path.
  • Repository-defined Git programs (signature verification, file filters, LFS extensions, fsmonitor) no longer run before the folder is trusted.
  • Worktree operations respect session and source-repo trust, and untrusted submodules are retained when they cannot be safely inspected.
  • /reload permission changes now apply to running custom subagents on their next tool call, not only to new ones.

Why this release matters for safety

Mistral Vibe 3.0.3 contains a group of changes that share one theme: the agent should only act within what the user has authorized. Several of them fix cases where a permission setting or a trust decision did not apply as widely as users would expect.

Outside-the-workdir access is now checked more strictly

Shell tools configured with permission = "always" previously skipped the extra check for paths outside the project folder. As of 3.0.3, Mistral Vibe asks before a shell command reaches outside the working directory, matching how file tools already behaved.

The release also closes a symlink loophole. A bare file name that is a symlink or a Windows junction, for example cat link, is now treated as a path. A link that points outside the working directory therefore triggers a prompt or a denial, the same as any explicit outside path.

For teams that want a firm rule, Mistral Vibe added outside_workdir = "deny", available globally or per tool. With it set, file and shell access outside the working directory is refused with a tool error instead of a prompt. The agent sees the error and keeps working, so a long task is not blocked waiting for a human.

Repository Git configuration no longer runs code before trust

A second group of fixes addresses Git settings that a repository can carry with it:

  • Automatic project context no longer runs repository-configured Git signature verification programs.
  • Creating a worktree no longer runs file filters defined in the repository's own Git configuration before the folder is trusted.
  • Conditional Git includes are evaluated in the destination worktree, and untrusted snapshots cannot run repository LFS extensions through global filters.
  • Worktree Git operations honor both session trust and source repository trust. Untrusted submodules are kept when their contents cannot be safely inspected or saved.
  • @ file completion no longer runs a repository's core.fsmonitor command, and no longer hangs on a stuck fsmonitor daemon.

Permission changes reach running subagents

A permission change applied with /reload now reaches custom subagents that are already running, on their next tool call. Before this, a subagent started earlier could keep acting under the old, looser rules.

What users should do

Users who rely on permission = "always" for shell tools will see new prompts for outside paths. Those who prefer unattended runs can set outside_workdir = "deny" to turn those prompts into plain refusals.

Mistral Vibe Tightens Workdir and Git Trust Checks | Yet Another Changelog