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-08-24 12:11:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mistral-vibe (Old) and /work/SRC/openSUSE:Factory/.mistral-vibe.new.1258 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mistral-vibe" Mon Aug 24 12:11:11 2026 rev:15 rq:1373262 version:2.24.3 Changes: -------- --- /work/SRC/openSUSE:Factory/mistral-vibe/mistral-vibe.changes 2026-08-13 13:17:02.108584016 +0200 +++ /work/SRC/openSUSE:Factory/.mistral-vibe.new.1258/mistral-vibe.changes 2026-08-24 12:16:42.114854801 +0200 @@ -1,0 +2,50 @@ +Fri Aug 21 09:48:25 UTC 2026 - Matej Cepl <[email protected]> + +- Update to 2.24.3: + - Added + - Slash commands and setting pickers can be used while the + agent or a command is running + - The process is named "Vibe CLI" and the bottom bar shows + its PID + - Changed + - Models are shown by display name instead of the raw config + alias + - Python dependencies updated to clear known security + advisories + - Fixed + - Connector bootstrap failures are surfaced instead of + reporting no connectors + +------------------------------------------------------------------- +Thu Aug 20 17:12:04 UTC 2026 - Matej Cepl <[email protected]> + +- Update to 2.24.2: + - Added + - In-app session picker with live preview + - /log-level command for runtime log-level control + - /retry is exposed to ACP clients + - Created worktrees are shown in the transcript + - Worktrees are cleaned up when their local session is + deleted + - Changed + - Faster startup: the TUI renders before session + initialization and imports are deferred + - Faster session resume + - Edit and read tool headers show paths relative to the + current directory + - Admin config fetch retries with exponential backoff + - Custom tools are flagged as deprecated + - Fixed + - New worktrees branch from the remote default instead of + local HEAD + - Configured temperature is respected for reasoning models + - Thinking setting updates correctly for routed models + - Path picker stays open on / and supports ../ traversal + - Escape sequences in command output no longer flood the + input box + - Live tool-permission bypass propagates to child agent loops + - Managed shell output is no longer sent to the LLM twice + - Adding a tool to the allowlist keeps the default allowlist + - OpenTelemetry traces are sent to the correct endpoint + +------------------------------------------------------------------- Old: ---- mistral-vibe-2.24.1.tar.gz New: ---- mistral-vibe-2.24.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mistral-vibe.spec ++++++ --- /var/tmp/diff_new_pack.6EmyFi/_old 2026-08-24 12:16:43.833916027 +0200 +++ /var/tmp/diff_new_pack.6EmyFi/_new 2026-08-24 12:16:43.834916062 +0200 @@ -16,7 +16,7 @@ # Name: mistral-vibe -Version: 2.24.1 +Version: 2.24.3 Release: 0 Summary: Minimal CLI coding agent by Mistral License: Apache-2.0 @@ -130,6 +130,7 @@ Requires: python3-tomli-w >= 1.2.0 Requires: python3-tree-sitter >= 0.26.0 Requires: python3-tree-sitter-bash >= 0.25.1 +Requires: tree-sitter-bash Requires: python3-truststore >= 0.10.4 Requires: python3-typing-extensions >= 4.15.0 Requires: python3-typing-inspection >= 0.4.2 @@ -239,6 +240,7 @@ BuildRequires: python3-tomlkit >= 0.13.0 BuildRequires: python3-tree-sitter >= 0.26.0 BuildRequires: python3-tree-sitter-bash >= 0.25.1 +BuildRequires: tree-sitter-bash BuildRequires: python3-truststore >= 0.10.4 BuildRequires: python3-typing-extensions >= 4.15.0 BuildRequires: python3-typing-inspection >= 0.4.2 ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.6EmyFi/_old 2026-08-24 12:16:43.928919410 +0200 +++ /var/tmp/diff_new_pack.6EmyFi/_new 2026-08-24 12:16:43.935919660 +0200 @@ -1,5 +1,5 @@ -mtime: 1786541825 -commit: 846dbc5c4c7d20d9918e0df0ca9ad1c052377f039147c5f2fa90ab431b992103 +mtime: 1787498788 +commit: 3a58ca22ed6dcc68c96bd1ebdbbbc4b1eb49810d146d4f4e8b74865cd5de4bbc url: https://src.opensuse.org/AI/mistral-vibe.git revision: factory ++++++ 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-08-23 17:26:28.000000000 +0200 @@ -0,0 +1,9 @@ +.assets +_build.* +*.obscpio +*.obsinfo +*.osc +.pbuild +_service:* +mistral-vibe-*-build/ +.aider* ++++++ fix_tests.patch ++++++ --- /var/tmp/diff_new_pack.6EmyFi/_old 2026-08-24 12:16:44.398936150 +0200 +++ /var/tmp/diff_new_pack.6EmyFi/_new 2026-08-24 12:16:44.403936328 +0200 @@ -2,11 +2,11 @@ vibe/core/tools/builtins/grep.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -Index: mistral-vibe-2.24.1/vibe/core/tools/builtins/grep.py +Index: mistral-vibe-2.24.3/vibe/core/tools/builtins/grep.py =================================================================== ---- mistral-vibe-2.24.1.orig/vibe/core/tools/builtins/grep.py 2026-08-11 17:43:49.506144252 +0200 -+++ mistral-vibe-2.24.1/vibe/core/tools/builtins/grep.py 2026-08-11 17:43:54.974872349 +0200 -@@ -272,7 +272,7 @@ +--- mistral-vibe-2.24.3.orig/vibe/core/tools/builtins/grep.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/vibe/core/tools/builtins/grep.py 2026-08-22 13:40:22.402713050 +0200 +@@ -271,7 +271,7 @@ "--no-heading", "--with-filename", "--smart-case", @@ -15,7 +15,7 @@ # Request one extra to detect truncation "--max-count", str(max_matches + 1), -@@ -293,7 +293,7 @@ +@@ -292,7 +292,7 @@ ) -> list[str]: max_matches = args.max_matches or self.config.default_max_matches ++++++ fix_ui_tests.patch ++++++ --- /var/tmp/diff_new_pack.6EmyFi/_old 2026-08-24 12:16:44.435937468 +0200 +++ /var/tmp/diff_new_pack.6EmyFi/_new 2026-08-24 12:16:44.444937789 +0200 @@ -1,16 +1,16 @@ --- tests/app_server/test_vibe_code.py | 2 +- + tests/cli/test_ui_config_and_model_picker.py | 12 +++++++++++- tests/cli/test_ui_session_incremental_renderer.py | 2 ++ tests/cli/test_ui_skill_dispatch.py | 2 ++ tests/cli/textual_ui/test_app_server_requests.py | 2 ++ - tests/core/test_worktree.py | 7 ++++++- tests/test_ui_rewind.py | 2 ++ - 6 files changed, 15 insertions(+), 2 deletions(-) + 6 files changed, 20 insertions(+), 2 deletions(-) -Index: mistral-vibe-2.24.1/tests/app_server/test_vibe_code.py +Index: mistral-vibe-2.24.3/tests/app_server/test_vibe_code.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/app_server/test_vibe_code.py 2026-08-11 17:43:49.363141762 +0200 -+++ mistral-vibe-2.24.1/tests/app_server/test_vibe_code.py 2026-08-11 17:44:03.556013548 +0200 +--- mistral-vibe-2.24.3.orig/tests/app_server/test_vibe_code.py 2026-08-22 13:42:42.936887544 +0200 ++++ mistral-vibe-2.24.3/tests/app_server/test_vibe_code.py 2026-08-22 13:44:23.769739837 +0200 @@ -68,7 +68,7 @@ capture_output=True, env=env, @@ -20,10 +20,46 @@ ) assert result.returncode == 0, result.stderr -Index: mistral-vibe-2.24.1/tests/cli/test_ui_session_incremental_renderer.py +Index: mistral-vibe-2.24.3/tests/cli/test_ui_config_and_model_picker.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/cli/test_ui_session_incremental_renderer.py 2026-08-11 17:43:49.363141762 +0200 -+++ mistral-vibe-2.24.1/tests/cli/test_ui_session_incremental_renderer.py 2026-08-11 17:44:03.557260298 +0200 +--- mistral-vibe-2.24.3.orig/tests/cli/test_ui_config_and_model_picker.py 2026-08-22 13:44:10.539665525 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_ui_config_and_model_picker.py 2026-08-22 13:44:23.770218219 +0200 +@@ -1,5 +1,6 @@ + from __future__ import annotations + ++import time + from unittest.mock import AsyncMock, patch + + import pytest +@@ -41,6 +42,15 @@ + return build_test_vibe_config(models=_model_configs(), active_model="", **kwargs) + + ++async def _wait_until_drained(pilot, app, timeout: float = 2.0) -> bool: ++ deadline = time.monotonic() + timeout ++ while time.monotonic() < deadline: ++ if not app._queue.draining: ++ return True ++ await pilot.pause(0.05) ++ return False ++ ++ + # --- /model command --- + + +@@ -263,7 +273,7 @@ + # Highlight starts on pinned "alpha" (index 1); move up to Default. + await pilot.press("up") + await pilot.press("enter") +- await pilot.pause(0.2) ++ assert await _wait_until_drained(pilot, app) + + assert app.config.active_model_pinned is False + assert app._current_bottom_app == BottomApp.Input +Index: mistral-vibe-2.24.3/tests/cli/test_ui_session_incremental_renderer.py +=================================================================== +--- mistral-vibe-2.24.3.orig/tests/cli/test_ui_session_incremental_renderer.py 2026-08-22 13:42:42.936887544 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_ui_session_incremental_renderer.py 2026-08-22 13:44:23.770518335 +0200 @@ -5,6 +5,8 @@ import time @@ -33,10 +69,10 @@ from textual.widgets import Button from tests.conftest import build_test_agent_loop -Index: mistral-vibe-2.24.1/tests/cli/test_ui_skill_dispatch.py +Index: mistral-vibe-2.24.3/tests/cli/test_ui_skill_dispatch.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/cli/test_ui_skill_dispatch.py 2026-08-11 17:43:49.363141762 +0200 -+++ mistral-vibe-2.24.1/tests/cli/test_ui_skill_dispatch.py 2026-08-11 17:44:03.557470925 +0200 +--- mistral-vibe-2.24.3.orig/tests/cli/test_ui_skill_dispatch.py 2026-08-22 13:42:42.936887544 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_ui_skill_dispatch.py 2026-08-22 13:44:23.770763718 +0200 @@ -7,6 +7,8 @@ import pytest @@ -46,10 +82,10 @@ from tests.conftest import build_test_vibe_app, build_test_vibe_config from tests.skills.conftest import create_skill from vibe.app_server.models import CompletedEffectState, PublicEffectEntry -Index: mistral-vibe-2.24.1/tests/cli/textual_ui/test_app_server_requests.py +Index: mistral-vibe-2.24.3/tests/cli/textual_ui/test_app_server_requests.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/cli/textual_ui/test_app_server_requests.py 2026-08-11 17:43:49.363141762 +0200 -+++ mistral-vibe-2.24.1/tests/cli/textual_ui/test_app_server_requests.py 2026-08-11 17:44:03.556388917 +0200 +--- mistral-vibe-2.24.3.orig/tests/cli/textual_ui/test_app_server_requests.py 2026-08-22 13:42:42.936887544 +0200 ++++ mistral-vibe-2.24.3/tests/cli/textual_ui/test_app_server_requests.py 2026-08-22 13:44:23.771035260 +0200 @@ -8,6 +8,8 @@ import pytest @@ -59,28 +95,10 @@ from tests.conftest import ( build_test_agent_loop, build_test_vibe_app, -Index: mistral-vibe-2.24.1/tests/core/test_worktree.py -=================================================================== ---- mistral-vibe-2.24.1.orig/tests/core/test_worktree.py 2026-08-11 17:43:49.363141762 +0200 -+++ mistral-vibe-2.24.1/tests/core/test_worktree.py 2026-08-11 17:44:03.556790523 +0200 -@@ -21,7 +21,12 @@ - - - def _init_repo(root: Path, *, separate_git_dir: Path | None = None) -> Repo: -- repo = Repo.init(root, initial_branch="main", separate_git_dir=separate_git_dir) -+ repo = Repo.init( -+ root, -+ initial_branch="main", -+ separate_git_dir=separate_git_dir, -+ allow_unsafe_options=True, -+ ) - repo.config_writer().set_value("user", "name", "Tester").release() - repo.config_writer().set_value("user", "email", "[email protected]").release() - (root / "file.txt").write_text("hello\n") -Index: mistral-vibe-2.24.1/tests/test_ui_rewind.py +Index: mistral-vibe-2.24.3/tests/test_ui_rewind.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/test_ui_rewind.py 2026-08-11 17:43:49.363141762 +0200 -+++ mistral-vibe-2.24.1/tests/test_ui_rewind.py 2026-08-11 17:44:03.557055772 +0200 +--- mistral-vibe-2.24.3.orig/tests/test_ui_rewind.py 2026-08-22 13:42:42.936887544 +0200 ++++ mistral-vibe-2.24.3/tests/test_ui_rewind.py 2026-08-22 13:44:23.771389237 +0200 @@ -6,6 +6,8 @@ import pytest ++++++ history_properties_timeout.patch ++++++ --- /var/tmp/diff_new_pack.6EmyFi/_old 2026-08-24 12:16:44.472938786 +0200 +++ /var/tmp/diff_new_pack.6EmyFi/_new 2026-08-24 12:16:44.481939107 +0200 @@ -2,10 +2,10 @@ tests/core/test_history_properties.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -Index: mistral-vibe-2.23.3/tests/core/test_history_properties.py +Index: mistral-vibe-2.24.3/tests/core/test_history_properties.py =================================================================== ---- mistral-vibe-2.23.3.orig/tests/core/test_history_properties.py 2026-08-03 14:57:51.000000000 +0200 -+++ mistral-vibe-2.23.3/tests/core/test_history_properties.py 2026-08-05 16:38:25.740805859 +0200 +--- mistral-vibe-2.24.3.orig/tests/core/test_history_properties.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/core/test_history_properties.py 2026-08-22 13:40:27.668515522 +0200 @@ -118,7 +118,7 @@ # -- core invariants over random text chains --------------------------------- ++++++ mistral-vibe-2.24.1.tar.gz -> mistral-vibe-2.24.3.tar.gz ++++++ ++++ 44366 lines of diff (skipped) ++++++ no_network.patch ++++++ --- /var/tmp/diff_new_pack.6EmyFi/_old 2026-08-24 12:16:46.230001366 +0200 +++ /var/tmp/diff_new_pack.6EmyFi/_new 2026-08-24 12:16:46.243001829 +0200 @@ -1,33 +1,37 @@ --- - pyproject.toml | 3 +++ - tests/acp/test_acp_entrypoint_smoke.py | 2 ++ - tests/e2e/test_cli_tui_fresh_install.py | 1 + - tests/e2e/test_cli_tui_hooks.py | 2 ++ - tests/e2e/test_cli_tui_onboarding.py | 2 ++ - tests/e2e/test_cli_tui_session_exit.py | 2 ++ - tests/e2e/test_cli_tui_streaming.py | 2 ++ - tests/e2e/test_cli_tui_tool_approval.py | 2 ++ - tests/test_install_script.py | 3 +++ - 9 files changed, 19 insertions(+) + pyproject.toml | 1 + + tests/acp/test_acp_entrypoint_smoke.py | 2 ++ + tests/app_server/test_transport.py | 1 + + tests/cli/test_audio_config_boundary.py | 3 +++ + tests/cli/test_log_level_command.py | 1 + + tests/cli/test_ui_config_and_model_picker.py | 1 + + tests/cli/textual_ui/test_custom_tools_deprecation.py | 2 ++ + tests/conftest.py | 11 +++++++++++ + tests/e2e/test_cli_tui_fresh_install.py | 1 + + tests/e2e/test_cli_tui_hooks.py | 2 ++ + tests/e2e/test_cli_tui_onboarding.py | 2 ++ + tests/e2e/test_cli_tui_session_exit.py | 2 ++ + tests/e2e/test_cli_tui_streaming.py | 2 ++ + tests/e2e/test_cli_tui_tool_approval.py | 2 ++ + tests/test_install_script.py | 3 +++ + 15 files changed, 36 insertions(+) -Index: mistral-vibe-2.24.1/pyproject.toml +Index: mistral-vibe-2.24.3/pyproject.toml =================================================================== ---- mistral-vibe-2.24.1.orig/pyproject.toml 2026-08-11 17:43:49.609146046 +0200 -+++ mistral-vibe-2.24.1/pyproject.toml 2026-08-11 17:43:52.261274367 +0200 -@@ -261,6 +261,9 @@ - [tool.pytest.ini_options] - addopts = "-vvvv -q -n auto --durations=10 --import-mode=importlib --maxschedchunk=1" +--- mistral-vibe-2.24.3.orig/pyproject.toml 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/pyproject.toml 2026-08-22 13:40:18.974703431 +0200 +@@ -271,6 +271,7 @@ timeout = 10 -+markers = [ + markers = [ + "unified_supported: backend contract behavior implemented by the Unified Harness", + "network: tests that require network-capable execution environment", -+] + ] 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.24.1/tests/acp/test_acp_entrypoint_smoke.py +Index: mistral-vibe-2.24.3/tests/acp/test_acp_entrypoint_smoke.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/acp/test_acp_entrypoint_smoke.py 2026-08-11 17:43:49.609146046 +0200 -+++ mistral-vibe-2.24.1/tests/acp/test_acp_entrypoint_smoke.py 2026-08-11 17:43:52.261699137 +0200 +--- mistral-vibe-2.24.3.orig/tests/acp/test_acp_entrypoint_smoke.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/acp/test_acp_entrypoint_smoke.py 2026-08-22 13:40:18.975019507 +0200 @@ -29,6 +29,8 @@ "Sign into Mistral Vibe through your Mistral AI Studio account." ) @@ -37,10 +41,116 @@ class _AcpSmokeClient(Client): def on_connect(self, conn: Any) -> None: -Index: mistral-vibe-2.24.1/tests/e2e/test_cli_tui_fresh_install.py +Index: mistral-vibe-2.24.3/tests/app_server/test_transport.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/e2e/test_cli_tui_fresh_install.py 2026-08-11 17:43:49.609146046 +0200 -+++ mistral-vibe-2.24.1/tests/e2e/test_cli_tui_fresh_install.py 2026-08-11 17:43:52.262039669 +0200 +--- mistral-vibe-2.24.3.orig/tests/app_server/test_transport.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/app_server/test_transport.py 2026-08-22 13:40:18.977797014 +0200 +@@ -239,6 +239,7 @@ + assert [json.loads(line) for line in writer.getvalue().splitlines()] == [{"id": 1}] + + [email protected] + @pytest.mark.asyncio + async def test_stdio_server_uses_the_same_json_rpc_lifecycle() -> None: + agent_loop = build_test_agent_loop() +Index: mistral-vibe-2.24.3/tests/cli/test_audio_config_boundary.py +=================================================================== +--- mistral-vibe-2.24.3.orig/tests/cli/test_audio_config_boundary.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_audio_config_boundary.py 2026-08-22 13:40:18.976615476 +0200 +@@ -29,6 +29,7 @@ + return await _wait_until(pilot, lambda: not app._queue.draining, timeout) + + [email protected] + @pytest.mark.asyncio + async def test_voice_mode_is_persisted_before_local_application() -> None: + voice = FakeVoiceManager(is_voice_ready=False) +@@ -60,6 +61,7 @@ + assert voice.is_enabled is True + + [email protected] + @pytest.mark.asyncio + async def test_local_voice_failure_does_not_undo_accepted_config() -> None: + voice = FakeVoiceManager(is_voice_ready=False) +@@ -84,6 +86,7 @@ + assert notify.call_args.kwargs["severity"] == "warning" + + [email protected] + @pytest.mark.asyncio + async def test_narrator_sync_observes_accepted_config() -> None: + narrator = MagicMock() +Index: mistral-vibe-2.24.3/tests/cli/test_log_level_command.py +=================================================================== +--- mistral-vibe-2.24.3.orig/tests/cli/test_log_level_command.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_log_level_command.py 2026-08-22 13:40:18.976856901 +0200 +@@ -199,6 +199,7 @@ + assert get_session_override() is None + + [email protected] + @pytest.mark.asyncio + async def test_picker_config_write_failure_surfaces_error(monkeypatch) -> None: + # When the inline (idle) config write fails, the picker must surface an +Index: mistral-vibe-2.24.3/tests/cli/test_ui_config_and_model_picker.py +=================================================================== +--- mistral-vibe-2.24.3.orig/tests/cli/test_ui_config_and_model_picker.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_ui_config_and_model_picker.py 2026-08-22 13:40:18.977067178 +0200 +@@ -145,6 +145,7 @@ + update_config.assert_not_awaited() + + [email protected] + @pytest.mark.asyncio + async def test_model_picker_select_model() -> None: + app = build_test_vibe_app(config=_make_config_with_models()) +Index: mistral-vibe-2.24.3/tests/cli/textual_ui/test_custom_tools_deprecation.py +=================================================================== +--- mistral-vibe-2.24.3.orig/tests/cli/textual_ui/test_custom_tools_deprecation.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/cli/textual_ui/test_custom_tools_deprecation.py 2026-08-22 13:40:18.977278536 +0200 +@@ -21,6 +21,7 @@ + pytest.fail("Condition not met within timeout") + + [email protected] + @pytest.mark.asyncio + async def test_startup_warns_when_custom_tools_are_available(tmp_path: Path) -> None: + tools_dir = tmp_path / "tools" +@@ -69,6 +70,7 @@ + assert not app.query(CustomToolsDeprecationMessage) + + [email protected] + @pytest.mark.asyncio + async def test_rebuilding_the_transcript_restores_the_custom_tools_warning( + tmp_path: Path, +Index: mistral-vibe-2.24.3/tests/conftest.py +=================================================================== +--- mistral-vibe-2.24.3.orig/tests/conftest.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/conftest.py 2026-08-22 13:40:18.977557692 +0200 +@@ -237,6 +237,17 @@ + + + @pytest.fixture(autouse=True) ++def _mock_fetch_managed_config(monkeypatch: pytest.MonkeyPatch) -> None: ++ from vibe.core.config.admin_config import ManagedConfigResult ++ ++ async def fake_fetch(*args: Any, **kwargs: Any) -> ManagedConfigResult: ++ return ManagedConfigResult(error="Mocked: no network in tests") ++ ++ monkeypatch.setattr("vibe.core.config.admin_config.fetch_managed_config", fake_fetch) ++ monkeypatch.setattr("vibe.app_server._resources.fetch_managed_config", fake_fetch) ++ ++ [email protected](autouse=True) + def _mock_platform(monkeypatch: pytest.MonkeyPatch) -> None: + """Mock platform to be Linux with /bin/sh shell for consistent test behavior. + +Index: mistral-vibe-2.24.3/tests/e2e/test_cli_tui_fresh_install.py +=================================================================== +--- mistral-vibe-2.24.3.orig/tests/e2e/test_cli_tui_fresh_install.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/e2e/test_cli_tui_fresh_install.py 2026-08-22 13:40:18.975294035 +0200 @@ -62,6 +62,7 @@ return _venv_executable(venv_path, "vibe") @@ -49,10 +159,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.24.1/tests/e2e/test_cli_tui_hooks.py +Index: mistral-vibe-2.24.3/tests/e2e/test_cli_tui_hooks.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/e2e/test_cli_tui_hooks.py 2026-08-11 17:43:49.609146046 +0200 -+++ mistral-vibe-2.24.1/tests/e2e/test_cli_tui_hooks.py 2026-08-11 17:43:52.262307063 +0200 +--- mistral-vibe-2.24.3.orig/tests/e2e/test_cli_tui_hooks.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/e2e/test_cli_tui_hooks.py 2026-08-22 13:40:18.975501406 +0200 @@ -18,6 +18,8 @@ ) from tests.e2e.mock_server import StreamingMockServer @@ -62,10 +172,10 @@ def _setup_recording_hook(vibe_home: Path, invocation_path: Path) -> None: script = vibe_home / "_record_hook.py" -Index: mistral-vibe-2.24.1/tests/e2e/test_cli_tui_onboarding.py +Index: mistral-vibe-2.24.3/tests/e2e/test_cli_tui_onboarding.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/e2e/test_cli_tui_onboarding.py 2026-08-11 17:43:49.609146046 +0200 -+++ mistral-vibe-2.24.1/tests/e2e/test_cli_tui_onboarding.py 2026-08-11 17:43:52.262557024 +0200 +--- mistral-vibe-2.24.3.orig/tests/e2e/test_cli_tui_onboarding.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/e2e/test_cli_tui_onboarding.py 2026-08-22 13:40:18.975682106 +0200 @@ -7,6 +7,8 @@ from tests.e2e.common import SpawnedVibeProcessFixture, ansi_tolerant_pattern @@ -75,10 +185,10 @@ @pytest.mark.timeout(15) def test_spawn_cli_shows_onboarding_when_api_key_missing( -Index: mistral-vibe-2.24.1/tests/e2e/test_cli_tui_session_exit.py +Index: mistral-vibe-2.24.3/tests/e2e/test_cli_tui_session_exit.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/e2e/test_cli_tui_session_exit.py 2026-08-11 17:43:49.609146046 +0200 -+++ mistral-vibe-2.24.1/tests/e2e/test_cli_tui_session_exit.py 2026-08-11 17:43:52.262775486 +0200 +--- mistral-vibe-2.24.3.orig/tests/e2e/test_cli_tui_session_exit.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/e2e/test_cli_tui_session_exit.py 2026-08-22 13:40:18.975875240 +0200 @@ -23,6 +23,8 @@ from tests.e2e.mock_server import StreamingMockServer from vibe.utils.io import read_safe @@ -88,10 +198,10 @@ def _usage_by_run_factory( request_index: int, _payload: object -Index: mistral-vibe-2.24.1/tests/e2e/test_cli_tui_streaming.py +Index: mistral-vibe-2.24.3/tests/e2e/test_cli_tui_streaming.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/e2e/test_cli_tui_streaming.py 2026-08-11 17:43:49.609146046 +0200 -+++ mistral-vibe-2.24.1/tests/e2e/test_cli_tui_streaming.py 2026-08-11 17:43:52.262991943 +0200 +--- mistral-vibe-2.24.3.orig/tests/e2e/test_cli_tui_streaming.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/e2e/test_cli_tui_streaming.py 2026-08-22 13:40:18.976063916 +0200 @@ -14,6 +14,8 @@ ) from tests.e2e.mock_server import StreamingMockServer @@ -101,10 +211,10 @@ @pytest.mark.timeout(15) def test_spawn_cli_to_send_and_receive_message( -Index: mistral-vibe-2.24.1/tests/e2e/test_cli_tui_tool_approval.py +Index: mistral-vibe-2.24.3/tests/e2e/test_cli_tui_tool_approval.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/e2e/test_cli_tui_tool_approval.py 2026-08-11 17:43:49.609146046 +0200 -+++ mistral-vibe-2.24.1/tests/e2e/test_cli_tui_tool_approval.py 2026-08-11 17:43:52.263154390 +0200 +--- mistral-vibe-2.24.3.orig/tests/e2e/test_cli_tui_tool_approval.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/e2e/test_cli_tui_tool_approval.py 2026-08-22 13:40:18.976236071 +0200 @@ -14,6 +14,8 @@ ) from tests.e2e.mock_server import ChatCompletionsRequestPayload, StreamingMockServer @@ -114,10 +224,10 @@ PREDICTABLE_OUTPUT = "__E2E_BASH_OK__" TOOL_ARGUMENTS = f'{{"command":"printf \\"{PREDICTABLE_OUTPUT}\\\\n\\""}}' -Index: mistral-vibe-2.24.1/tests/test_install_script.py +Index: mistral-vibe-2.24.3/tests/test_install_script.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/test_install_script.py 2026-08-11 17:43:49.609146046 +0200 -+++ mistral-vibe-2.24.1/tests/test_install_script.py 2026-08-11 17:43:52.263330892 +0200 +--- mistral-vibe-2.24.3.orig/tests/test_install_script.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/test_install_script.py 2026-08-22 13:40:18.976414006 +0200 @@ -7,6 +7,8 @@ import subprocess from textwrap import dedent ++++++ no_terminal.patch ++++++ --- /var/tmp/diff_new_pack.6EmyFi/_old 2026-08-24 12:16:46.282003218 +0200 +++ /var/tmp/diff_new_pack.6EmyFi/_new 2026-08-24 12:16:46.287003396 +0200 @@ -4,6 +4,7 @@ pyproject.toml | 1 + tests/cli/test_switching_mode.py | 2 ++ tests/cli/test_ui_clipboard_notifications.py | 2 ++ + tests/cli/test_ui_config_and_model_picker.py | 3 +++ tests/cli/test_ui_config_screen.py | 2 ++ tests/cli/test_ui_exit_command.py | 2 ++ tests/cli/test_ui_theme_picker.py | 2 ++ @@ -19,23 +20,23 @@ tests/onboarding/test_ui_onboarding.py | 2 ++ tests/tools/test_ui_bash_execution.py | 2 ++ tests/vscode_extension_promo/test_ui_vscode_extension_promo.py | 2 ++ - 18 files changed, 35 insertions(+) -Index: mistral-vibe-2.24.1/pyproject.toml + 19 files changed, 38 insertions(+) +Index: mistral-vibe-2.24.3/pyproject.toml =================================================================== ---- mistral-vibe-2.24.1.orig/pyproject.toml 2026-08-11 17:43:52.261274367 +0200 -+++ mistral-vibe-2.24.1/pyproject.toml 2026-08-11 17:43:56.972599493 +0200 -@@ -263,6 +263,7 @@ - timeout = 10 +--- mistral-vibe-2.24.3.orig/pyproject.toml 2026-08-22 13:42:27.422660226 +0200 ++++ mistral-vibe-2.24.3/pyproject.toml 2026-08-22 13:42:27.455279313 +0200 +@@ -272,6 +272,7 @@ markers = [ + "unified_supported: backend contract behavior implemented by the Unified Harness", "network: tests that require network-capable execution environment", + "terminal: tests that require terminal-capable execution environment", ] filterwarnings = [ # (e2e) streaming mock server is started in a thread; and the cli is spawn in a fork -Index: mistral-vibe-2.24.1/tests/cli/test_switching_mode.py +Index: mistral-vibe-2.24.3/tests/cli/test_switching_mode.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/cli/test_switching_mode.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/cli/test_switching_mode.py 2026-08-11 17:43:56.970825149 +0200 +--- mistral-vibe-2.24.3.orig/tests/cli/test_switching_mode.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_switching_mode.py 2026-08-22 13:42:27.455560854 +0200 @@ -5,6 +5,8 @@ import pytest @@ -45,10 +46,10 @@ from tests.conftest import build_test_agent_loop, build_test_vibe_app from tests.mock.utils import mock_llm_chunk from tests.stubs.fake_backend import FakeBackend -Index: mistral-vibe-2.24.1/tests/cli/test_ui_clipboard_notifications.py +Index: mistral-vibe-2.24.3/tests/cli/test_ui_clipboard_notifications.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/cli/test_ui_clipboard_notifications.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/cli/test_ui_clipboard_notifications.py 2026-08-11 17:43:56.972803507 +0200 +--- mistral-vibe-2.24.3.orig/tests/cli/test_ui_clipboard_notifications.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_ui_clipboard_notifications.py 2026-08-22 13:42:27.455841212 +0200 @@ -3,6 +3,8 @@ from unittest.mock import patch @@ -58,10 +59,24 @@ from textual.selection import Selection from textual.widget import Widget -Index: mistral-vibe-2.24.1/tests/cli/test_ui_config_screen.py +Index: mistral-vibe-2.24.3/tests/cli/test_ui_config_and_model_picker.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/cli/test_ui_config_screen.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/cli/test_ui_config_screen.py 2026-08-11 17:43:56.971204534 +0200 +--- mistral-vibe-2.24.3.orig/tests/cli/test_ui_config_and_model_picker.py 2026-08-22 13:42:42.936887544 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_ui_config_and_model_picker.py 2026-08-22 13:44:10.539665525 +0200 +@@ -3,6 +3,9 @@ + from unittest.mock import AsyncMock, patch + + import pytest ++ ++pytestmark = pytest.mark.terminal ++ + from textual.widgets import OptionList + + from tests.conftest import build_test_vibe_app, build_test_vibe_config +Index: mistral-vibe-2.24.3/tests/cli/test_ui_config_screen.py +=================================================================== +--- mistral-vibe-2.24.3.orig/tests/cli/test_ui_config_screen.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_ui_config_screen.py 2026-08-22 13:42:27.456149493 +0200 @@ -4,6 +4,8 @@ import tomllib @@ -71,10 +86,10 @@ import tomli_w from tests.conftest import ( -Index: mistral-vibe-2.24.1/tests/cli/test_ui_exit_command.py +Index: mistral-vibe-2.24.3/tests/cli/test_ui_exit_command.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/cli/test_ui_exit_command.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/cli/test_ui_exit_command.py 2026-08-11 17:43:56.971274246 +0200 +--- mistral-vibe-2.24.3.orig/tests/cli/test_ui_exit_command.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_ui_exit_command.py 2026-08-22 13:42:27.456446363 +0200 @@ -4,6 +4,8 @@ import pytest @@ -84,11 +99,11 @@ from tests.conftest import build_test_vibe_app from vibe.cli.textual_ui.widgets.chat_input.container import ChatInputContainer from vibe.cli.textual_ui.widgets.messages import SlashCommandMessage, UserMessage -Index: mistral-vibe-2.24.1/tests/cli/test_ui_theme_picker.py +Index: mistral-vibe-2.24.3/tests/cli/test_ui_theme_picker.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/cli/test_ui_theme_picker.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/cli/test_ui_theme_picker.py 2026-08-11 17:43:56.971598918 +0200 -@@ -5,6 +5,8 @@ +--- mistral-vibe-2.24.3.orig/tests/cli/test_ui_theme_picker.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_ui_theme_picker.py 2026-08-22 13:42:27.456693028 +0200 +@@ -7,6 +7,8 @@ import pytest @@ -97,10 +112,10 @@ from tests.conftest import build_test_vibe_app, build_test_vibe_config from vibe.cli.textual_ui.app import BottomApp from vibe.cli.textual_ui.widgets.theme_picker import ThemePickerApp -Index: mistral-vibe-2.24.1/tests/cli/test_whoami_command.py +Index: mistral-vibe-2.24.3/tests/cli/test_whoami_command.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/cli/test_whoami_command.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/cli/test_whoami_command.py 2026-08-11 17:43:56.971807651 +0200 +--- mistral-vibe-2.24.3.orig/tests/cli/test_whoami_command.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_whoami_command.py 2026-08-22 13:42:27.456730528 +0200 @@ -4,6 +4,8 @@ import pytest @@ -110,10 +125,10 @@ from tests.conftest import build_test_vibe_app from tests.stubs.fake_account_gateway import FakeAccountGateway from tests.stubs.fake_identity_gateway import FakeIdentityGateway -Index: mistral-vibe-2.24.1/tests/cli/test_word_selection.py +Index: mistral-vibe-2.24.3/tests/cli/test_word_selection.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/cli/test_word_selection.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/cli/test_word_selection.py 2026-08-11 17:43:56.972060567 +0200 +--- mistral-vibe-2.24.3.orig/tests/cli/test_word_selection.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_word_selection.py 2026-08-22 13:42:27.457256380 +0200 @@ -3,6 +3,8 @@ from typing import Any, ClassVar, cast @@ -123,10 +138,10 @@ from textual import events from textual.geometry import Offset, Region from textual.screen import Screen -Index: mistral-vibe-2.24.1/tests/cli/textual_ui/test_chat_input_word_drag.py +Index: mistral-vibe-2.24.3/tests/cli/textual_ui/test_chat_input_word_drag.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/cli/textual_ui/test_chat_input_word_drag.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/cli/textual_ui/test_chat_input_word_drag.py 2026-08-11 17:43:56.972345374 +0200 +--- mistral-vibe-2.24.3.orig/tests/cli/textual_ui/test_chat_input_word_drag.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/cli/textual_ui/test_chat_input_word_drag.py 2026-08-22 13:42:27.457520158 +0200 @@ -1,6 +1,8 @@ from __future__ import annotations @@ -136,11 +151,11 @@ from textual import events from textual.widgets.text_area import Selection -Index: mistral-vibe-2.24.1/tests/cli/textual_ui/test_message_queue_ui.py +Index: mistral-vibe-2.24.3/tests/cli/textual_ui/test_message_queue_ui.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/cli/textual_ui/test_message_queue_ui.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/cli/textual_ui/test_message_queue_ui.py 2026-08-11 17:43:56.972996742 +0200 -@@ -4,6 +4,8 @@ +--- mistral-vibe-2.24.3.orig/tests/cli/textual_ui/test_message_queue_ui.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/cli/textual_ui/test_message_queue_ui.py 2026-08-22 13:42:27.457801147 +0200 +@@ -5,6 +5,8 @@ import pytest @@ -149,10 +164,10 @@ from tests.conftest import build_test_vibe_app from vibe.cli.textual_ui.app import VibeApp from vibe.cli.textual_ui.widgets.chat_input.container import ChatInputContainer -Index: mistral-vibe-2.24.1/tests/e2e/agent_loop_characterization/test_resume.py +Index: mistral-vibe-2.24.3/tests/e2e/agent_loop_characterization/test_resume.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/e2e/agent_loop_characterization/test_resume.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/e2e/agent_loop_characterization/test_resume.py 2026-08-11 17:43:56.973246532 +0200 +--- mistral-vibe-2.24.3.orig/tests/e2e/agent_loop_characterization/test_resume.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/e2e/agent_loop_characterization/test_resume.py 2026-08-22 13:42:27.458043234 +0200 @@ -8,6 +8,8 @@ import pexpect import pytest @@ -162,10 +177,10 @@ from tests.e2e.agent_loop_characterization.support import ( assert_assistant_tool_call_present, assert_message_content_present, -Index: mistral-vibe-2.24.1/tests/e2e/agent_loop_characterization/test_subagents.py +Index: mistral-vibe-2.24.3/tests/e2e/agent_loop_characterization/test_subagents.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/e2e/agent_loop_characterization/test_subagents.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/e2e/agent_loop_characterization/test_subagents.py 2026-08-11 17:43:56.973510059 +0200 +--- mistral-vibe-2.24.3.orig/tests/e2e/agent_loop_characterization/test_subagents.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/e2e/agent_loop_characterization/test_subagents.py 2026-08-22 13:42:27.458288687 +0200 @@ -5,6 +5,8 @@ import pexpect import pytest @@ -175,10 +190,10 @@ from tests.e2e.agent_loop_characterization.support import ( assert_message_content_present, assert_tool_result_contains, -Index: mistral-vibe-2.24.1/tests/e2e/agent_loop_characterization/test_tool_execution.py +Index: mistral-vibe-2.24.3/tests/e2e/agent_loop_characterization/test_tool_execution.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/e2e/agent_loop_characterization/test_tool_execution.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/e2e/agent_loop_characterization/test_tool_execution.py 2026-08-11 17:43:56.973695007 +0200 +--- mistral-vibe-2.24.3.orig/tests/e2e/agent_loop_characterization/test_tool_execution.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/e2e/agent_loop_characterization/test_tool_execution.py 2026-08-22 13:42:27.458452165 +0200 @@ -6,6 +6,8 @@ import pexpect import pytest @@ -188,10 +203,10 @@ from tests.e2e.agent_loop_characterization.support import ( answer_approval, assert_assistant_tool_call_present, -Index: mistral-vibe-2.24.1/tests/e2e/agent_loop_characterization/test_tool_permissions.py +Index: mistral-vibe-2.24.3/tests/e2e/agent_loop_characterization/test_tool_permissions.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/e2e/agent_loop_characterization/test_tool_permissions.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/e2e/agent_loop_characterization/test_tool_permissions.py 2026-08-11 17:43:56.973882481 +0200 +--- mistral-vibe-2.24.3.orig/tests/e2e/agent_loop_characterization/test_tool_permissions.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/e2e/agent_loop_characterization/test_tool_permissions.py 2026-08-22 13:42:27.458628026 +0200 @@ -6,6 +6,8 @@ import pexpect import pytest @@ -201,10 +216,10 @@ from tests.e2e.agent_loop_characterization.support import ( answer_approval, assert_tool_result_contains, -Index: mistral-vibe-2.24.1/tests/e2e/agent_loop_characterization/test_user_interaction.py +Index: mistral-vibe-2.24.3/tests/e2e/agent_loop_characterization/test_user_interaction.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/e2e/agent_loop_characterization/test_user_interaction.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/e2e/agent_loop_characterization/test_user_interaction.py 2026-08-11 17:43:56.974060957 +0200 +--- mistral-vibe-2.24.3.orig/tests/e2e/agent_loop_characterization/test_user_interaction.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/e2e/agent_loop_characterization/test_user_interaction.py 2026-08-22 13:42:27.458825018 +0200 @@ -7,6 +7,8 @@ import pexpect import pytest @@ -214,10 +229,10 @@ from tests.e2e.agent_loop_characterization.support import ( APPROVAL_INPUT_GRACE_PERIOD_S, assert_tool_result_contains, -Index: mistral-vibe-2.24.1/tests/onboarding/test_ui_onboarding.py +Index: mistral-vibe-2.24.3/tests/onboarding/test_ui_onboarding.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/onboarding/test_ui_onboarding.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/onboarding/test_ui_onboarding.py 2026-08-11 17:43:56.974284138 +0200 +--- mistral-vibe-2.24.3.orig/tests/onboarding/test_ui_onboarding.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/onboarding/test_ui_onboarding.py 2026-08-22 13:42:27.459090628 +0200 @@ -10,6 +10,8 @@ import keyring from keyring.errors import KeyringError @@ -227,10 +242,10 @@ from textual.content import Content from textual.events import Resize from textual.geometry import Size -Index: mistral-vibe-2.24.1/tests/tools/test_ui_bash_execution.py +Index: mistral-vibe-2.24.3/tests/tools/test_ui_bash_execution.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/tools/test_ui_bash_execution.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/tools/test_ui_bash_execution.py 2026-08-11 17:43:56.974623768 +0200 +--- mistral-vibe-2.24.3.orig/tests/tools/test_ui_bash_execution.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/tools/test_ui_bash_execution.py 2026-08-22 13:42:27.459450236 +0200 @@ -5,6 +5,8 @@ from pydantic import JsonValue import pytest @@ -240,10 +255,10 @@ from tests.conftest import build_test_agent_loop, build_test_vibe_app from tests.mock.utils import mock_llm_chunk from tests.stubs.fake_backend import FakeBackend -Index: mistral-vibe-2.24.1/tests/vscode_extension_promo/test_ui_vscode_extension_promo.py +Index: mistral-vibe-2.24.3/tests/vscode_extension_promo/test_ui_vscode_extension_promo.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/vscode_extension_promo/test_ui_vscode_extension_promo.py 2026-08-11 17:43:49.459143434 +0200 -+++ mistral-vibe-2.24.1/tests/vscode_extension_promo/test_ui_vscode_extension_promo.py 2026-08-11 17:43:56.974873057 +0200 +--- mistral-vibe-2.24.3.orig/tests/vscode_extension_promo/test_ui_vscode_extension_promo.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/vscode_extension_promo/test_ui_vscode_extension_promo.py 2026-08-22 13:42:27.459731196 +0200 @@ -8,6 +8,8 @@ import pytest ++++++ warning_cleanup.patch ++++++ --- /var/tmp/diff_new_pack.6EmyFi/_old 2026-08-24 12:16:46.332004998 +0200 +++ /var/tmp/diff_new_pack.6EmyFi/_new 2026-08-24 12:16:46.343005390 +0200 @@ -6,10 +6,10 @@ vibe/core/config/event_bus.py | 7 +++---- 5 files changed, 10 insertions(+), 12 deletions(-) -Index: mistral-vibe-2.24.1/tests/cli/test_connector_auth_app.py +Index: mistral-vibe-2.24.3/tests/cli/test_connector_auth_app.py =================================================================== ---- mistral-vibe-2.24.1.orig/tests/cli/test_connector_auth_app.py 2026-08-11 17:43:49.315140926 +0200 -+++ mistral-vibe-2.24.1/tests/cli/test_connector_auth_app.py 2026-08-11 17:44:06.382867945 +0200 +--- mistral-vibe-2.24.3.orig/tests/cli/test_connector_auth_app.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/tests/cli/test_connector_auth_app.py 2026-08-22 13:40:31.881109298 +0200 @@ -259,7 +259,7 @@ assert app._status_message == "Refreshing connector..." @@ -19,10 +19,10 @@ assert kwargs["group"] == "connector_refresh" -Index: mistral-vibe-2.24.1/vibe/cli/textual_ui/widgets/connector_auth_app.py +Index: mistral-vibe-2.24.3/vibe/cli/textual_ui/widgets/connector_auth_app.py =================================================================== ---- mistral-vibe-2.24.1.orig/vibe/cli/textual_ui/widgets/connector_auth_app.py 2026-08-11 17:43:49.315140926 +0200 -+++ mistral-vibe-2.24.1/vibe/cli/textual_ui/widgets/connector_auth_app.py 2026-08-11 17:44:06.383453979 +0200 +--- mistral-vibe-2.24.3.orig/vibe/cli/textual_ui/widgets/connector_auth_app.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/vibe/cli/textual_ui/widgets/connector_auth_app.py 2026-08-22 13:40:31.881565168 +0200 @@ -98,7 +98,7 @@ self._status_message = "Refreshing connector..." self._set_help_text(_HELP) @@ -32,10 +32,10 @@ ) # ── workers ────────────────────────────────────────────────────── -Index: mistral-vibe-2.24.1/vibe/cli/textual_ui/widgets/mcp_app.py +Index: mistral-vibe-2.24.3/vibe/cli/textual_ui/widgets/mcp_app.py =================================================================== ---- mistral-vibe-2.24.1.orig/vibe/cli/textual_ui/widgets/mcp_app.py 2026-08-11 17:43:49.315140926 +0200 -+++ mistral-vibe-2.24.1/vibe/cli/textual_ui/widgets/mcp_app.py 2026-08-11 17:44:06.384162004 +0200 +--- mistral-vibe-2.24.3.orig/vibe/cli/textual_ui/widgets/mcp_app.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/vibe/cli/textual_ui/widgets/mcp_app.py 2026-08-22 13:40:31.882008323 +0200 @@ -160,7 +160,7 @@ if self._refresh_callback is None or self._refreshing: return @@ -45,10 +45,10 @@ async def _run_refresh(self) -> None: if self._refresh_callback is not None: -Index: mistral-vibe-2.24.1/vibe/cli/textual_ui/widgets/question_app.py +Index: mistral-vibe-2.24.3/vibe/cli/textual_ui/widgets/question_app.py =================================================================== ---- mistral-vibe-2.24.1.orig/vibe/cli/textual_ui/widgets/question_app.py 2026-08-11 17:43:49.315140926 +0200 -+++ mistral-vibe-2.24.1/vibe/cli/textual_ui/widgets/question_app.py 2026-08-11 17:44:06.384511422 +0200 +--- mistral-vibe-2.24.3.orig/vibe/cli/textual_ui/widgets/question_app.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/vibe/cli/textual_ui/widgets/question_app.py 2026-08-22 13:40:31.882239840 +0200 @@ -1,6 +1,5 @@ from __future__ import annotations @@ -71,10 +71,10 @@ if i not in self.answers ) self._switch_question(new_idx) -Index: mistral-vibe-2.24.1/vibe/core/config/event_bus.py +Index: mistral-vibe-2.24.3/vibe/core/config/event_bus.py =================================================================== ---- mistral-vibe-2.24.1.orig/vibe/core/config/event_bus.py 2026-08-11 17:43:49.315140926 +0200 -+++ mistral-vibe-2.24.1/vibe/core/config/event_bus.py 2026-08-11 17:44:06.384772414 +0200 +--- mistral-vibe-2.24.3.orig/vibe/core/config/event_bus.py 2026-08-20 19:38:11.000000000 +0200 ++++ mistral-vibe-2.24.3/vibe/core/config/event_bus.py 2026-08-22 13:40:31.882494340 +0200 @@ -2,8 +2,6 @@ from collections.abc import Callable
