From 6243793ec02acb3c1ee65610e45b62e1c58f5034 Mon Sep 17 00:00:00 2001 From: tjb-tech <1193992557@qq.com> Date: Sun, 17 May 2026 06:18:59 +0000 Subject: [PATCH] fix(tui): keep image paste CI stable --- src/openharness/ui/backend_host.py | 16 ++++++++-------- tests/test_ui/test_react_backend.py | 12 +++++++++--- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/openharness/ui/backend_host.py b/src/openharness/ui/backend_host.py index 6d33696..c8c20dc 100644 --- a/src/openharness/ui/backend_host.py +++ b/src/openharness/ui/backend_host.py @@ -368,14 +368,14 @@ class ReactBackendHost: async def _clear_output() -> None: await self._emit(BackendEvent(type="clear_transcript")) - should_continue = await handle_line( - self._bundle, - line, - print_system=_print_system, - render_event=_render_event, - clear_output=_clear_output, - user_message=user_message, - ) + handle_line_kwargs: dict[str, Any] = { + "print_system": _print_system, + "render_event": _render_event, + "clear_output": _clear_output, + } + if user_message is not None: + handle_line_kwargs["user_message"] = user_message + should_continue = await handle_line(self._bundle, line, **handle_line_kwargs) if is_coordinator_mode(): await drain_coordinator_async_agents( self._bundle, diff --git a/tests/test_ui/test_react_backend.py b/tests/test_ui/test_react_backend.py index 195bc5b..ff0f439 100644 --- a/tests/test_ui/test_react_backend.py +++ b/tests/test_ui/test_react_backend.py @@ -394,10 +394,16 @@ async def test_backend_host_processes_image_turn(tmp_path, monkeypatch): assert should_continue is True assert len(client.requests) == 1 - message = client.requests[0].messages[-2] + image_messages = [ + message + for message in client.requests[0].messages + if message.role == "user" and any(isinstance(block, ImageBlock) for block in message.content) + ] + assert len(image_messages) == 1 + message = image_messages[0] assert message.text == "Please analyze the attached image." - assert isinstance(message.content[1], ImageBlock) - assert message.content[1].data == "aGVsbG8=" + image = next(block for block in message.content if isinstance(block, ImageBlock)) + assert image.data == "aGVsbG8=" assert any( event.type == "transcript_item" and event.item