diff options
| author | t <t@tjp.lol> | 2026-08-31 10:17:11 -0600 |
|---|---|---|
| committer | t <t@tjp.lol> | 2026-09-02 08:26:44 -0600 |
| commit | 7a31ae2163f4ce1c6807da1737203d1063839c14 (patch) | |
| tree | 3096854e9ec93b2bf1b4d91b051be70908695218 /spec | |
| parent | ed872974d799312c7114a63474c6bc7bc2179e2c (diff) | |
Show executed Lua in subagent progress boards
Render subagents.lua source in both collapsed and expanded progress views so
inspection-only calls remain understandable and survive session replay.
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/test_progress.lua | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/spec/test_progress.lua b/spec/test_progress.lua index c8bf684..3c1ea33 100644 --- a/spec/test_progress.lua +++ b/spec/test_progress.lua @@ -295,6 +295,39 @@ return { progress.reset() end }, + { "subagents.lua boards always show the executed source with real newlines", function() + if not pcall(require, "dkjson") then return "skip", "dkjson is not installed" end + progress.reset() + local source = "local w = subagents.workflows[\"workflow-1\"]\n\tif w then\n\t\treturn w.status\n\tend\nreturn \"gone\"" + local component + progress.claim({ + id = "call-source", + tool_name = "subagents.lua", + collapsed = true, + input = require("dkjson").encode({ source = source }), + set_component = function(_, value) + component = value + return { invalidate = function() end, alive = function() return true end } + end, + }) + progress.bind({ tool_call_id = "call-source" }) + + -- An inspection call starts no children, so the source is the only + -- thing this entry can show. + local collapsed = component:render(100) + assert(collapsed[2]:find("subagents.lua", 1, true), plain(collapsed)) + assert(collapsed[3] == " local w = subagents.workflows[\"workflow-1\"]", collapsed[3]) + assert(collapsed[4] == " if w then", collapsed[4]) + assert(collapsed[#collapsed] == " \226\128\166", "collapsed source is capped") + assert(#collapsed == 2 + 4 + 1, plain(collapsed)) + + progress.collapse({ collapsed = false }) + local expanded = plain(component:render(100)) + assert(expanded:find("return \"gone\"", 1, true), expanded) + assert(not expanded:find("\\n", 1, true), "newlines must render as newlines") + progress.reset() + end }, + { "expanded history includes streamed assistant text and available tool call fields", function() progress.reset() local component = board("call-tools", false) |
