Co-Authored-By: Quentin Torroba <quentin.torroba@mistral.ai>
This commit is contained in:
Mathias Gesbert 2025-12-18 18:12:18 +01:00 committed by Quentin
parent d8dbeeb31e
commit 402e898f39
10 changed files with 26 additions and 17 deletions

2
.vscode/launch.json vendored
View file

@ -1,5 +1,5 @@
{ {
"version": "1.2.0", "version": "1.2.1",
"configurations": [ "configurations": [
{ {
"name": "ACP Server", "name": "ACP Server",

View file

@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.2.1] - 2025-12-18
### Fixed
- Improve error message when running in home dir
- Do not show trusted folder workflow in home dir
## [1.2.0] - 2025-12-18 ## [1.2.0] - 2025-12-18
### Added ### Added

View file

@ -1,7 +1,7 @@
id = "mistral-vibe" id = "mistral-vibe"
name = "Mistral Vibe" name = "Mistral Vibe"
description = "Mistral's open-source coding assistant" description = "Mistral's open-source coding assistant"
version = "1.2.0" version = "1.2.1"
schema_version = 1 schema_version = 1
authors = ["Mistral AI"] authors = ["Mistral AI"]
repository = "https://github.com/mistralai/mistral-vibe" repository = "https://github.com/mistralai/mistral-vibe"
@ -11,25 +11,25 @@ name = "Mistral Vibe"
icon = "./icons/mistral_vibe.svg" icon = "./icons/mistral_vibe.svg"
[agent_servers.mistral-vibe.targets.darwin-aarch64] [agent_servers.mistral-vibe.targets.darwin-aarch64]
archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.2.0/vibe-acp-darwin-aarch64-1.2.0.zip" archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.2.1/vibe-acp-darwin-aarch64-1.2.1.zip"
cmd = "./vibe-acp" cmd = "./vibe-acp"
[agent_servers.mistral-vibe.targets.darwin-x86_64] [agent_servers.mistral-vibe.targets.darwin-x86_64]
archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.2.0/vibe-acp-darwin-x86_64-1.2.0.zip" archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.2.1/vibe-acp-darwin-x86_64-1.2.1.zip"
cmd = "./vibe-acp" cmd = "./vibe-acp"
[agent_servers.mistral-vibe.targets.linux-aarch64] [agent_servers.mistral-vibe.targets.linux-aarch64]
archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.2.0/vibe-acp-linux-aarch64-1.2.0.zip" archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.2.1/vibe-acp-linux-aarch64-1.2.1.zip"
cmd = "./vibe-acp" cmd = "./vibe-acp"
[agent_servers.mistral-vibe.targets.linux-x86_64] [agent_servers.mistral-vibe.targets.linux-x86_64]
archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.2.0/vibe-acp-linux-x86_64-1.2.0.zip" archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.2.1/vibe-acp-linux-x86_64-1.2.1.zip"
cmd = "./vibe-acp" cmd = "./vibe-acp"
[agent_servers.mistral-vibe.targets.windows-aarch64] [agent_servers.mistral-vibe.targets.windows-aarch64]
archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.2.0/vibe-acp-windows-aarch64-1.2.0.zip" archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.2.1/vibe-acp-windows-aarch64-1.2.1.zip"
cmd = "./vibe-acp.exe" cmd = "./vibe-acp.exe"
[agent_servers.mistral-vibe.targets.windows-x86_64] [agent_servers.mistral-vibe.targets.windows-x86_64]
archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.2.0/vibe-acp-windows-x86_64-1.2.0.zip" archive = "https://github.com/mistralai/mistral-vibe/releases/download/v1.2.1/vibe-acp-windows-x86_64-1.2.1.zip"
cmd = "./vibe-acp.exe" cmd = "./vibe-acp.exe"

View file

@ -1,6 +1,6 @@
[project] [project]
name = "mistral-vibe" name = "mistral-vibe"
version = "1.2.0" version = "1.2.1"
description = "Minimal CLI coding agent by Mistral" description = "Minimal CLI coding agent by Mistral"
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"

View file

@ -41,7 +41,7 @@ class TestACPInitialize:
), ),
) )
assert response.agentInfo == Implementation( assert response.agentInfo == Implementation(
name="@mistralai/mistral-vibe", title="Mistral Vibe", version="1.2.0" name="@mistralai/mistral-vibe", title="Mistral Vibe", version="1.2.1"
) )
assert response.authMethods == [] assert response.authMethods == []
@ -63,7 +63,7 @@ class TestACPInitialize:
), ),
) )
assert response.agentInfo == Implementation( assert response.agentInfo == Implementation(
name="@mistralai/mistral-vibe", title="Mistral Vibe", version="1.2.0" name="@mistralai/mistral-vibe", title="Mistral Vibe", version="1.2.1"
) )
assert response.authMethods is not None assert response.authMethods is not None

2
uv.lock generated
View file

@ -661,7 +661,7 @@ wheels = [
[[package]] [[package]]
name = "mistral-vibe" name = "mistral-vibe"
version = "1.2.0" version = "1.2.1"
source = { editable = "." } source = { editable = "." }
dependencies = [ dependencies = [
{ name = "agent-client-protocol" }, { name = "agent-client-protocol" },

View file

@ -3,4 +3,4 @@ from __future__ import annotations
from pathlib import Path from pathlib import Path
VIBE_ROOT = Path(__file__).parent VIBE_ROOT = Path(__file__).parent
__version__ = "1.2.0" __version__ = "1.2.1"

View file

@ -105,7 +105,7 @@ def parse_arguments() -> argparse.Namespace:
def check_and_resolve_trusted_folder() -> None: def check_and_resolve_trusted_folder() -> None:
cwd = Path.cwd() cwd = Path.cwd()
if not (cwd / ".vibe").exists(): if not (cwd / ".vibe").exists() or cwd.resolve() == Path.home().resolve():
return return
is_folder_trusted = trusted_folders_manager.is_trusted(cwd) is_folder_trusted = trusted_folders_manager.is_trusted(cwd)

View file

@ -1130,7 +1130,7 @@ class VibeApp(App):
warning = ( warning = (
f"⚠ WARNING: {reason}\n\nRunning in this location is not recommended." f"⚠ WARNING: {reason}\n\nRunning in this location is not recommended."
) )
await self._mount_and_scroll(UserCommandMessage(warning)) await self._mount_and_scroll(WarningMessage(warning, show_border=False))
async def _finalize_current_streaming_message(self) -> None: async def _finalize_current_streaming_message(self) -> None:
if self._current_streaming_message is None: if self._current_streaming_message is None:

View file

@ -189,12 +189,14 @@ class ErrorMessage(Static):
class WarningMessage(Static): class WarningMessage(Static):
def __init__(self, message: str) -> None: def __init__(self, message: str, show_border: bool = True) -> None:
super().__init__() super().__init__()
self.add_class("warning-message") self.add_class("warning-message")
self._message = message self._message = message
self._show_border = show_border
def compose(self) -> ComposeResult: def compose(self) -> ComposeResult:
with Horizontal(classes="warning-container"): with Horizontal(classes="warning-container"):
if self._show_border:
yield ExpandingBorder(classes="warning-border") yield ExpandingBorder(classes="warning-border")
yield Static(self._message, markup=False, classes="warning-content") yield Static(self._message, markup=False, classes="warning-content")