diff --git a/app/src/main/java/com/m57/hermescontrol/ui/chat/tool/render/TaskRenderers.kt b/app/src/main/java/com/m57/hermescontrol/ui/chat/tool/render/TaskRenderers.kt index b56eab28..0d137c92 100644 --- a/app/src/main/java/com/m57/hermescontrol/ui/chat/tool/render/TaskRenderers.kt +++ b/app/src/main/java/com/m57/hermescontrol/ui/chat/tool/render/TaskRenderers.kt @@ -253,7 +253,7 @@ internal object ProcessRenderer : ToolRenderer { }.joinToString("\n\n") } - val output = ToolJson.firstString(result, listOf("output")) + val output = ToolJson.firstString(result, listOf("output", "output_preview")) if (output.isNotEmpty()) { val status = ToolJson.firstString(result, listOf("status")) return "${status.takeIf { it.isNotEmpty() }?.let { "Status: $it\n" } ?: ""}$output" diff --git a/app/src/test/java/com/m57/hermescontrol/ui/chat/tool/ToolViewBuilderTest.kt b/app/src/test/java/com/m57/hermescontrol/ui/chat/tool/ToolViewBuilderTest.kt index 58274d0b..425b3464 100644 --- a/app/src/test/java/com/m57/hermescontrol/ui/chat/tool/ToolViewBuilderTest.kt +++ b/app/src/test/java/com/m57/hermescontrol/ui/chat/tool/ToolViewBuilderTest.kt @@ -296,6 +296,20 @@ class ToolViewBuilderTest { assertFalse(view.detail.contains("done")) } + @Test + fun `process_manage poll renders output_preview`() { + val view = + build( + "process_manage", + """{"action":"poll","session_id":"proc-1"}""", + """{"status":"running","output_preview":"listening on port 8080"}""", + ) + + assertEquals("poll: proc-1", view.subtitle) + assertTrue(view.detail.contains("Status: running")) + assertTrue(view.detail.contains("listening on port 8080")) + } + @Test fun `todo_list alias activates TodoRenderer`() { val view =