From 5bbb0356c79d89df2cd15e42d0d167a19fc8b45d Mon Sep 17 00:00:00 2001 From: 7Sageer <7sageer@djwcb.cn> Date: Sat, 9 May 2026 20:07:09 +0800 Subject: [PATCH 1/2] fix(shell): init _current_step_retry in modal fixture MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #2177 added a new `_current_step_retry` attribute to `_LiveView.__init__` and reads it from `compose_agent_output()`. The manual fixture in `test_render_agent_status_excludes_panels_in_interactive` uses `object.__new__(_PromptLiveView)` to bypass `__init__`, so the new attribute was missing — `render_agent_status()` raised AttributeError on push to main (CI run #2459 / Python 3.12 / 3.13 / 3.14). Initialize the attribute in the fixture alongside the other `compose_agent_output` dependencies. --- tests/ui_and_conv/test_modal_lifecycle.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/ui_and_conv/test_modal_lifecycle.py b/tests/ui_and_conv/test_modal_lifecycle.py index 9e5b7be2d8..75e42f893d 100644 --- a/tests/ui_and_conv/test_modal_lifecycle.py +++ b/tests/ui_and_conv/test_modal_lifecycle.py @@ -858,6 +858,7 @@ async def test_render_agent_status_excludes_panels_in_interactive() -> None: view._compacting_spinner = None view._current_content_block = None view._tool_call_blocks = {} + view._current_step_retry = None view._live_notification_blocks = cast( Any, type("deque", (), {"__iter__": lambda self: iter([])})() ) From 64d4fe33ff9de39b24460df63541cbbc20668c6d Mon Sep 17 00:00:00 2001 From: 7Sageer <7sageer@djwcb.cn> Date: Sat, 9 May 2026 20:26:46 +0800 Subject: [PATCH 2/2] fix(tests): bump wire protocol e2e expectation to 1.10 PR #2177 bumped `WIRE_PROTOCOL_VERSION` from 1.9 to 1.10 in `src/kimi_cli/wire/protocol.py` but didn't update the e2e tests, so `tests_e2e/test_wire_protocol.py::{test_initialize_handshake, test_initialize_external_tool_conflict}` started failing on push to main. Update the three `"1.9"` literals in the e2e snapshot to `"1.10"` to match the new server response. --- tests_e2e/test_wire_protocol.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests_e2e/test_wire_protocol.py b/tests_e2e/test_wire_protocol.py index c84c4d1a70..f9dee1084d 100644 --- a/tests_e2e/test_wire_protocol.py +++ b/tests_e2e/test_wire_protocol.py @@ -36,12 +36,12 @@ def test_initialize_handshake(tmp_path) -> None: try: resp = send_initialize(wire) result = _as_dict(resp.get("result")) - assert result.get("protocol_version") == "1.9" + assert result.get("protocol_version") == "1.10" assert "slash_commands" in result assert normalize_response(resp) == snapshot( { "result": { - "protocol_version": "1.9", + "protocol_version": "1.10", "server": {"name": "Kimi Code CLI", "version": ""}, "slash_commands": [ { @@ -151,7 +151,7 @@ def test_initialize_external_tool_conflict(tmp_path) -> None: assert normalize_response(resp) == snapshot( { "result": { - "protocol_version": "1.9", + "protocol_version": "1.10", "server": {"name": "Kimi Code CLI", "version": ""}, "slash_commands": [ {