Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package mistral-vibe for openSUSE:Factory checked in at 2026-06-15 19:51:30 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mistral-vibe (Old) and /work/SRC/openSUSE:Factory/.mistral-vibe.new.1981 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mistral-vibe" Mon Jun 15 19:51:30 2026 rev:8 rq:1359582 version:2.15.0 Changes: -------- --- /work/SRC/openSUSE:Factory/mistral-vibe/mistral-vibe.changes 2026-06-11 17:28:55.514265895 +0200 +++ /work/SRC/openSUSE:Factory/.mistral-vibe.new.1981/mistral-vibe.changes 2026-06-15 19:54:52.596183397 +0200 @@ -1,0 +2,55 @@ +Mon Jun 15 13:55:56 UTC 2026 - Matej Cepl <[email protected]> + +- Add fix_tests.patch (gh#mistralai/mistral-vibe!796) which fixes + test failures in build environments + +------------------------------------------------------------------- +Fri Jun 12 15:35:22 UTC 2026 - Matej Cepl <[email protected]> + +- Update to 2.15.0: + - Added + - **[Experimental]** `before_tool` and `after_tool` hooks: + shell scripts declared in `hooks.toml` that fire around + every tool call; hooks can deny the call, rewrite tool + inputs, or append context to the output — enable with + `enable_experimental_hooks = true` + - Message queue: messages typed while the agent or a `!bash` + command is running are queued and shown above the input; + Esc pauses the queue, Ctrl+C drops the last queued message + (LIFO), Enter flushes the queue when paused + - Tool result output is now collapsed by default to keep + responses scannable + - Common read-only shell commands (`ls`, `cat`, `pwd`, etc.) + are allowed without approval by default + - Session deletion available directly from the resume picker + - `[mcp_servers.auth]` block in config for per-server MCP + authentication + - Collapsed web tool output now shows the URL and search + query at a glance + - `max_turns` support exposed over ACP via + `set_config_option` + - Changed + - Compaction now re-injects prior user messages so the agent + retains the original task goals across context resets + - **[Breaking — experimental hooks]** `post_agent_turn` + retries no longer use exit code `2`; hooks must now exit + `0` and return `{"decision": "deny", "reason": "..."}` on + stdout to trigger a retry — exit code `2` is treated as + a failure + - Model refusal stop reason is now surfaced to the user + instead of stopping silently + - Fixed + - CLI UI no longer goes blank during app switches + - User messages are preserved correctly across repeated + compactions + - Non-UTF-8 input is handled gracefully across all CLI + surfaces + - `--resume` now shows history when launched from a dangerous + directory + - Startup no longer crashes in unowned folders or when a git + ancestor is unreadable + - Plain-string answers from `web_search` are handled without + crashing + - NaN SGR mouse reports no longer leak into the chat input + +------------------------------------------------------------------- Old: ---- mistral_vibe-2.14.1.tar.gz New: ---- fix_tests.patch mistral_vibe-2.15.0.tar.gz ----------(New B)---------- New: - Add fix_tests.patch (gh#mistralai/mistral-vibe!796) which fixes test failures in build environments ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mistral-vibe.spec ++++++ --- /var/tmp/diff_new_pack.b0y5V3/_old 2026-06-15 19:54:53.532222659 +0200 +++ /var/tmp/diff_new_pack.b0y5V3/_new 2026-06-15 19:54:53.532222659 +0200 @@ -16,7 +16,7 @@ # Name: mistral-vibe -Version: 2.14.1 +Version: 2.15.0 Release: 0 Summary: Minimal CLI coding agent by Mistral License: Apache-2.0 @@ -25,6 +25,9 @@ # PATCH-FIX-UPSTREAM build-tests.patch [email protected] # make tests pass Patch0: build-tests.patch +# PATCH-FIX-UPSTREAM fix_tests.patch gh#mistralai/mistral-vibe!796 [email protected] +# Fix test failures in build environments +Patch1: fix_tests.patch BuildRequires: fdupes BuildRequires: python-rpm-macros BuildRequires: python3-base >= 3.12 @@ -33,6 +36,7 @@ BuildRequires: python3-hatchling BuildRequires: python3-pip Requires: python3-GitPython >= 3.1.47 +Requires: python3-Jinja2 Requires: python3-PyYAML >= 6.0.3 Requires: python3-agent-client-protocol >= 0.10.1 Requires: python3-attrs >= 26.1.0 @@ -49,7 +53,6 @@ Requires: python3-jaraco.context >= 6.1.2 Requires: python3-jaraco.functools >= 4.4.0 Requires: python3-jeepney >= 0.9.0 -Requires: python3-Jinja2 Requires: python3-jsonpatch >= 1.33 Requires: python3-jsonpath-python >= 1.1.5 Requires: python3-jsonpointer >= 3.1.1 @@ -62,7 +65,6 @@ Requires: python3-mcp >= 1.27.1 Requires: python3-mdit-py-plugins >= 0.5.0 Requires: python3-mdurl >= 0.1.2 -Requires: python3-mcp >= 1.27.1 Requires: python3-mistralai >= 2.4.4 Requires: python3-more-itertools >= 11.0.2 Requires: python3-opentelemetry-api >= 1.39.1 @@ -76,7 +78,6 @@ Requires: python3-python-dotenv >= 1.2.2 Requires: python3-rich >= 15.0.0 Requires: python3-sounddevice >= 0.5.5 -Requires: python3-truststore >= 0.10.4 Requires: python3-syrupy Requires: python3-textual >= 8.2.7 Requires: python3-textual-speedups >= 0.2.1 @@ -84,6 +85,7 @@ Requires: python3-tomlkit Requires: python3-tree-sitter >= 0.25.2 Requires: python3-tree-sitter-bash >= 0.25.1 +Requires: python3-truststore >= 0.10.4 Requires: python3-watchfiles >= 1.1.1 Requires: python3-websockets >= 16.0 Requires: python3-zstandard >= 0.25.0 @@ -95,7 +97,10 @@ Obsoletes: python314-mistral-vibe < %{version} BuildArch: noarch # SECTION test requirements +BuildRequires: ca-certificates +BuildRequires: ca-certificates-mozilla BuildRequires: python3-GitPython >= 3.1.47 +BuildRequires: python3-Jinja2 BuildRequires: python3-PyYAML >= 6.0.3 BuildRequires: python3-agent-client-protocol >= 0.10.1 BuildRequires: python3-attrs >= 26.1.0 @@ -111,7 +116,6 @@ BuildRequires: python3-jaraco.context >= 6.1.2 BuildRequires: python3-jaraco.functools >= 4.4.0 BuildRequires: python3-jeepney >= 0.9.0 -BuildRequires: python3-Jinja2 BuildRequires: python3-jsonpatch >= 1.33 BuildRequires: python3-jsonpath-python >= 1.1.5 BuildRequires: python3-jsonpointer >= 3.1.1 @@ -142,7 +146,6 @@ BuildRequires: python3-respx >= 0.22.0 BuildRequires: python3-rich >= 15.0.0 BuildRequires: python3-sounddevice >= 0.5.5 -BuildRequires: python3-truststore >= 0.10.4 BuildRequires: python3-syrupy BuildRequires: python3-textual >= 8.2.7 BuildRequires: python3-textual-speedups >= 0.2.1 @@ -150,10 +153,11 @@ BuildRequires: python3-tomlkit BuildRequires: python3-tree-sitter >= 0.25.2 BuildRequires: python3-tree-sitter-bash >= 0.25.1 +BuildRequires: python3-truststore >= 0.10.4 +BuildRequires: python3-uv BuildRequires: python3-watchfiles >= 1.1.1 BuildRequires: python3-websockets >= 16.0 BuildRequires: python3-zstandard >= 0.25.0 -BuildRequires: python3-uv # /SECTION %description ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.b0y5V3/_old 2026-06-15 19:54:53.580224673 +0200 +++ /var/tmp/diff_new_pack.b0y5V3/_new 2026-06-15 19:54:53.592225177 +0200 @@ -1,5 +1,5 @@ -mtime: 1781118859 -commit: 6b01387ed38b5ec5079abd03bc6077c14d3335fe6be7482bb0ffd641c50aca6a +mtime: 1781532055 +commit: 78422f365de17cf92c97d2b57ceef63aeed5be9806dd57db090ff746026ee0df url: https://src.opensuse.org/AI/mistral-vibe.git revision: factory ++++++ build-tests.patch ++++++ --- /var/tmp/diff_new_pack.b0y5V3/_old 2026-06-15 19:54:53.620226351 +0200 +++ /var/tmp/diff_new_pack.b0y5V3/_new 2026-06-15 19:54:53.636227022 +0200 @@ -11,11 +11,11 @@ tests/test_install_script.py | 3 +++ 10 files changed, 21 insertions(+), 1 deletion(-) -Index: mistral_vibe-2.13.0/pyproject.toml +Index: mistral_vibe-2.15.0/pyproject.toml =================================================================== ---- mistral_vibe-2.13.0.orig/pyproject.toml 2020-02-02 01:00:00.000000000 +0100 -+++ mistral_vibe-2.13.0/pyproject.toml 2026-05-29 18:29:06.002783309 +0200 -@@ -305,8 +305,11 @@ +--- mistral_vibe-2.15.0.orig/pyproject.toml 2020-02-02 01:00:00.000000000 +0100 ++++ mistral_vibe-2.15.0/pyproject.toml 2026-06-12 17:37:46.207098733 +0200 +@@ -254,8 +254,11 @@ ignore_decorators = ["@*"] [tool.pytest.ini_options] @@ -28,10 +28,10 @@ filterwarnings = [ # (e2e) streaming mock server is started in a thread; and the cli is spawn in a fork "ignore:This process \\(pid=.*\\) is multi-threaded, use of forkpty\\(\\) may lead to deadlocks in the child\\.:DeprecationWarning", -Index: mistral_vibe-2.13.0/tests/acp/test_acp.py +Index: mistral_vibe-2.15.0/tests/acp/test_acp.py =================================================================== ---- mistral_vibe-2.13.0.orig/tests/acp/test_acp.py 2020-02-02 01:00:00.000000000 +0100 -+++ mistral_vibe-2.13.0/tests/acp/test_acp.py 2026-05-29 18:29:06.003169918 +0200 +--- mistral_vibe-2.15.0.orig/tests/acp/test_acp.py 2020-02-02 01:00:00.000000000 +0100 ++++ mistral_vibe-2.15.0/tests/acp/test_acp.py 2026-06-12 17:37:46.207534464 +0200 @@ -39,6 +39,7 @@ RESPONSE_TIMEOUT = 2.0 MOCK_ENTRYPOINT_PATH = "tests/mock/mock_entrypoint.py" @@ -40,10 +40,10 @@ def deep_merge(target: dict, source: dict) -> None: -Index: mistral_vibe-2.13.0/tests/acp/test_acp_entrypoint_smoke.py +Index: mistral_vibe-2.15.0/tests/acp/test_acp_entrypoint_smoke.py =================================================================== ---- mistral_vibe-2.13.0.orig/tests/acp/test_acp_entrypoint_smoke.py 2020-02-02 01:00:00.000000000 +0100 -+++ mistral_vibe-2.13.0/tests/acp/test_acp_entrypoint_smoke.py 2026-05-29 18:29:06.003462839 +0200 +--- mistral_vibe-2.15.0.orig/tests/acp/test_acp_entrypoint_smoke.py 2020-02-02 01:00:00.000000000 +0100 ++++ mistral_vibe-2.15.0/tests/acp/test_acp_entrypoint_smoke.py 2026-06-12 17:37:46.208093366 +0200 @@ -21,6 +21,8 @@ "Sign into Mistral Vibe through your Mistral AI Studio account." ) @@ -53,10 +53,10 @@ class _AcpSmokeClient(Client): def on_connect(self, conn: Any) -> None: -Index: mistral_vibe-2.13.0/tests/e2e/test_cli_tui_fresh_install.py +Index: mistral_vibe-2.15.0/tests/e2e/test_cli_tui_fresh_install.py =================================================================== ---- mistral_vibe-2.13.0.orig/tests/e2e/test_cli_tui_fresh_install.py 2020-02-02 01:00:00.000000000 +0100 -+++ mistral_vibe-2.13.0/tests/e2e/test_cli_tui_fresh_install.py 2026-05-29 18:29:06.003683876 +0200 +--- mistral_vibe-2.15.0.orig/tests/e2e/test_cli_tui_fresh_install.py 2020-02-02 01:00:00.000000000 +0100 ++++ mistral_vibe-2.15.0/tests/e2e/test_cli_tui_fresh_install.py 2026-06-12 17:37:46.208268065 +0200 @@ -62,6 +62,7 @@ return _venv_executable(venv_path, "vibe") @@ -65,10 +65,10 @@ @pytest.mark.timeout(90) def test_fresh_wheel_install_can_spawn_cli_and_complete_happy_path( streaming_mock_server: StreamingMockServer, -Index: mistral_vibe-2.13.0/tests/e2e/test_cli_tui_hooks.py +Index: mistral_vibe-2.15.0/tests/e2e/test_cli_tui_hooks.py =================================================================== ---- mistral_vibe-2.13.0.orig/tests/e2e/test_cli_tui_hooks.py 2020-02-02 01:00:00.000000000 +0100 -+++ mistral_vibe-2.13.0/tests/e2e/test_cli_tui_hooks.py 2026-05-29 18:29:06.003862292 +0200 +--- mistral_vibe-2.15.0.orig/tests/e2e/test_cli_tui_hooks.py 2020-02-02 01:00:00.000000000 +0100 ++++ mistral_vibe-2.15.0/tests/e2e/test_cli_tui_hooks.py 2026-06-12 17:37:46.208452002 +0200 @@ -19,6 +19,8 @@ ) from tests.e2e.mock_server import StreamingMockServer @@ -78,10 +78,10 @@ def _enable_hooks(vibe_home: Path, invocation_path: Path) -> None: config_path = vibe_home / "config.toml" -Index: mistral_vibe-2.13.0/tests/e2e/test_cli_tui_onboarding.py +Index: mistral_vibe-2.15.0/tests/e2e/test_cli_tui_onboarding.py =================================================================== ---- mistral_vibe-2.13.0.orig/tests/e2e/test_cli_tui_onboarding.py 2020-02-02 01:00:00.000000000 +0100 -+++ mistral_vibe-2.13.0/tests/e2e/test_cli_tui_onboarding.py 2026-05-29 18:29:06.004042261 +0200 +--- mistral_vibe-2.15.0.orig/tests/e2e/test_cli_tui_onboarding.py 2020-02-02 01:00:00.000000000 +0100 ++++ mistral_vibe-2.15.0/tests/e2e/test_cli_tui_onboarding.py 2026-06-12 17:37:46.208591665 +0200 @@ -7,6 +7,8 @@ from tests.e2e.common import SpawnedVibeProcessFixture, ansi_tolerant_pattern @@ -91,23 +91,23 @@ @pytest.mark.timeout(15) def test_spawn_cli_shows_onboarding_when_api_key_missing( -Index: mistral_vibe-2.13.0/tests/e2e/test_cli_tui_session_exit.py +Index: mistral_vibe-2.15.0/tests/e2e/test_cli_tui_session_exit.py =================================================================== ---- mistral_vibe-2.13.0.orig/tests/e2e/test_cli_tui_session_exit.py 2020-02-02 01:00:00.000000000 +0100 -+++ mistral_vibe-2.13.0/tests/e2e/test_cli_tui_session_exit.py 2026-05-29 18:29:06.004190119 +0200 -@@ -19,6 +19,8 @@ - ) +--- mistral_vibe-2.15.0.orig/tests/e2e/test_cli_tui_session_exit.py 2020-02-02 01:00:00.000000000 +0100 ++++ mistral_vibe-2.15.0/tests/e2e/test_cli_tui_session_exit.py 2026-06-12 17:37:46.208755223 +0200 +@@ -23,6 +23,8 @@ from tests.e2e.mock_server import StreamingMockServer + from vibe.core.utils.io import read_safe +pytestmark = pytest.mark.network + def _usage_by_run_factory( request_index: int, _payload: object -Index: mistral_vibe-2.13.0/tests/e2e/test_cli_tui_streaming.py +Index: mistral_vibe-2.15.0/tests/e2e/test_cli_tui_streaming.py =================================================================== ---- mistral_vibe-2.13.0.orig/tests/e2e/test_cli_tui_streaming.py 2020-02-02 01:00:00.000000000 +0100 -+++ mistral_vibe-2.13.0/tests/e2e/test_cli_tui_streaming.py 2026-05-29 18:29:06.004337066 +0200 +--- mistral_vibe-2.15.0.orig/tests/e2e/test_cli_tui_streaming.py 2020-02-02 01:00:00.000000000 +0100 ++++ mistral_vibe-2.15.0/tests/e2e/test_cli_tui_streaming.py 2026-06-12 17:37:46.208915956 +0200 @@ -14,6 +14,8 @@ ) from tests.e2e.mock_server import StreamingMockServer @@ -117,10 +117,10 @@ @pytest.mark.timeout(15) def test_spawn_cli_to_send_and_receive_message( -Index: mistral_vibe-2.13.0/tests/e2e/test_cli_tui_tool_approval.py +Index: mistral_vibe-2.15.0/tests/e2e/test_cli_tui_tool_approval.py =================================================================== ---- mistral_vibe-2.13.0.orig/tests/e2e/test_cli_tui_tool_approval.py 2020-02-02 01:00:00.000000000 +0100 -+++ mistral_vibe-2.13.0/tests/e2e/test_cli_tui_tool_approval.py 2026-05-29 18:29:06.004478623 +0200 +--- mistral_vibe-2.15.0.orig/tests/e2e/test_cli_tui_tool_approval.py 2020-02-02 01:00:00.000000000 +0100 ++++ mistral_vibe-2.15.0/tests/e2e/test_cli_tui_tool_approval.py 2026-06-12 17:37:46.209054767 +0200 @@ -14,6 +14,8 @@ ) from tests.e2e.mock_server import ChatCompletionsRequestPayload, StreamingMockServer @@ -130,10 +130,10 @@ PREDICTABLE_OUTPUT = "__E2E_BASH_OK__" TOOL_ARGUMENTS = f'{{"command":"printf \\"{PREDICTABLE_OUTPUT}\\\\n\\""}}' -Index: mistral_vibe-2.13.0/tests/test_install_script.py +Index: mistral_vibe-2.15.0/tests/test_install_script.py =================================================================== ---- mistral_vibe-2.13.0.orig/tests/test_install_script.py 2020-02-02 01:00:00.000000000 +0100 -+++ mistral_vibe-2.13.0/tests/test_install_script.py 2026-05-29 18:29:06.004679852 +0200 +--- mistral_vibe-2.15.0.orig/tests/test_install_script.py 2020-02-02 01:00:00.000000000 +0100 ++++ mistral_vibe-2.15.0/tests/test_install_script.py 2026-06-12 17:37:46.209215450 +0200 @@ -6,6 +6,8 @@ import subprocess from textwrap import dedent ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-06-15 16:00:55.000000000 +0200 @@ -0,0 +1,8 @@ +.assets +_build.* +*.obscpio +*.obsinfo +*.osc +.pbuild +_service:* +mistral-vibe-*-build/ ++++++ fix_tests.patch ++++++ --- tests/core/test_build_ssl_context.py | 1 + vibe/core/tools/builtins/grep.py | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) Index: mistral_vibe-2.15.0/tests/core/test_build_ssl_context.py =================================================================== --- mistral_vibe-2.15.0.orig/tests/core/test_build_ssl_context.py 2020-02-02 01:00:00.000000000 +0100 +++ mistral_vibe-2.15.0/tests/core/test_build_ssl_context.py 2026-06-12 22:54:46.798767652 +0200 @@ -28,6 +28,7 @@ mock_ctx = MagicMock(spec=ssl.SSLContext) with ( + patch("vibe.core.utils.http.os.path.exists", return_value=True), patch("vibe.core.utils.http.certifi.where", return_value="/certifi.pem"), patch( "vibe.core.utils.http.ssl.create_default_context", return_value=mock_ctx Index: mistral_vibe-2.15.0/vibe/core/tools/builtins/grep.py =================================================================== --- mistral_vibe-2.15.0.orig/vibe/core/tools/builtins/grep.py 2020-02-02 01:00:00.000000000 +0100 +++ mistral_vibe-2.15.0/vibe/core/tools/builtins/grep.py 2026-06-12 23:41:13.954665850 +0200 @@ -241,7 +241,7 @@ "--no-heading", "--with-filename", "--smart-case", - "--no-binary", + "--text", # Request one extra to detect truncation "--max-count", str(max_matches + 1), @@ -262,7 +262,7 @@ ) -> list[str]: max_matches = args.max_matches or self.config.default_max_matches - cmd = ["grep", "-r", "-n", "-H", "-I", "-E", f"--max-count={max_matches + 1}"] + cmd = ["grep", "-r", "-n", "-H", "-a", "-E", f"--max-count={max_matches + 1}"] if args.pattern.islower(): cmd.append("-i") ++++++ mistral_vibe-2.14.1.tar.gz -> mistral_vibe-2.15.0.tar.gz ++++++ ++++ 21368 lines of diff (skipped)
