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)

Reply via email to