tui3: trailing task and done events in turn demote settled assistant answer to raw plain workingProse
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
Read deriveWorkfolds and workEntry in internal/tui3/workfold.go, then trace assistantRows in internal/tui3/render.go, focusing on entryDone and entryTask near turn boundaries. Confirm the fix preserves intermediate rolling summaries while ensuring the terminal assistant entry reaches settledMarkdown and retains markdown rendering when asynchronous events follow it.
由索引模型根据 Issue 内容生成。
描述
Problem
In the TUI chat surface (internal/tui3), settled final assistant answers frequently fail to convert into rendered markdown answers, staying trapped as unformatted plain text with raw markdown syntax (###, **bold**, backticks) indented as step narration under previous disclosure nodes instead of standing as clean rolling answers.
This is especially prominent in manager and team turns, but also occurs in standard chats whenever background tasks, worker notifications, or tool events land near the turn boundary.
Root Cause Analysis in Code
-
workEntryininternal/tui3/workfold.go(lines 525–533):
When classifying whether an assistant entryeis working narration (demoted = true) or a settled answer,workEntryfalls through to a forward scan:for at := i + 1; at < len(es) && es[at].turn == e.turn; at++ { if groupBreaks(&es[at]) { return false } ... if es[at].kind != entryDivider && es[at].kind != entryNote && !entryWithdrawn(&es[at]) { return true } }When background task completions (
entryDone, e.g.✖ ◆ manager permissions · incomplete · 34s) or task status entries (entryTask) append to the current turn after the assistant finishes speaking,workEntrytreats them as subsequent non-divider/non-note work and setses[i].demoted = true. -
assistantRowsininternal/tui3/render.go(lines 1372–1385):if e.demoted { e.feet = nil text := e.text if e.capHead && e.capCut > 0 && e.capCut <= len(text) { text = text[e.capCut:] } return append(tags, a.workingProse(text, width)...) } if e.settled { return append(tags, a.settledMarkdown(at, e, width)...) }Because
e.demotedwas set totrue, the assistant block never enterssettledMarkdown. It routes toworkingProse, which performs raw plain-text line-wrapping with zero markdown formatting. -
Missing workfold certification in
deriveWorkfolds(workfold.go:264–316):
In manager turns or turns whereblockedtriggers (such asteam_send,entrySeam, orasks), no workfold is constructed for the turn (foldsmap has no entry for the turn). Without a certifyingf.answer == iin a workfold, the forward loop inworkEntryruns and is tripped byentryDone/entryTask.
Expected Behavior
- When nothing is clicked in the transcript, intermediate steps collapse into clean rolling summary lines (
▸ headline ... duration), and the assistant's terminal answer renders below them throughsettledMarkdownwith full markdown formatting. - Asynchronous task completion cards (
entryDone), notifications, and background events appended to the turn must not demote the assistant's final response into intermediate working prose.
Drafted with CodeAF
- 主要语言
- Go
- 星标
- 115
- 派生
- 14
- 平均合并
- 9 小时 37 分钟
- 30 天内合并 PR
- 755
环境准备
我们还没有检查这个项目的环境配置文件。先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
Agent-Field/CodeAF 的其他 Issue
-
area:chat bug sev:papercut
难度 2/5 1-3 小时 新手友好度 86/100
Agent-Field/CodeAF#1592 ·
维护者通常 1 天内回复
-
area:headless bug sev:critical
难度 2/5 1-3 小时 新手友好度 88/100
Agent-Field/CodeAF#1566 · 已指派 1 人 ·
维护者通常 1 天内回复
-
area:chat feature
难度 2/5 1-3 小时 新手友好度 88/100
Agent-Field/CodeAF#1510 ·
维护者通常 1 天内回复
-
area:tests bug
难度 2/5 1-3 小时 新手友好度 82/100
Agent-Field/CodeAF#1489 ·
维护者通常 1 天内回复
-
area:chat bug good first issue sev:papercut
难度 2/5 1-3 小时 新手友好度 78/100
Agent-Field/CodeAF#1470 ·
维护者通常 1 天内回复
查看 Agent-Field/CodeAF 的全部 Issue
相似的 Issue
-
priority: low 🌱 type: enhancement 💅🏼
难度 2/5 半天 新手友好度 84/100
nebari-dev/llm-serving-pack#199 ·
维护者通常 3 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 78/100
-
area/helm kind/bug priority/backlog triage/accepted
难度 2/5 1-3 小时 新手友好度 84/100
lexfrei/cloudflare-tunnel-gateway-controller#889 ·
维护者通常 1 天内回复
-
bug difficulty: beginner documentation good first issue help wanted localization
难度 1/5 1 小时以内 新手友好度 90/100
wavefnd/wave-platform#140 ·
-
compiler/runtime
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复