Repository navigation
【缺陷】紧凑模式下,一轮中间面向用户的正文被并入「过程」折叠,只剩最后一段可见 #6254
Replies: 3 comments
|
开发了一个插件 https://github.com/zhengmz/dsh-auto-fold 补齐自动折叠能力,供参考 实现如果设置了 Compact 后,在切换对话时,会自动折叠回合。 |
|
补充一个版本/现象:我这边的项目版本是 我对照了后续 |
|
补充:在 实际事件顺序(省略私人项目内容)
展开过程后,完整正文立即恢复。会话日志中两条 定位与局部修复候选
针对本次“连续的末尾答复 + tool-free 收尾”场景,我们在本地安装产物验证了以下候选:向前扫描末尾连续、已完成、有可见答复且不含 tool-call 的 Assistant steps,以这段答复序列的第一步作为折叠上界。这样前面的正文和后续收尾都保留在可见区;遇到工具步骤、空答复或未完成步骤则停止,避免把更早的进度说明一起提到正文区。 function latestAnswer(turn: TurnLocation): Readonly<FinalAssistantChatData> | null {
let answer: Readonly<FinalAssistantChatData> | null = null
for (let index = turn.steps.length - 1; index >= 0; index -= 1) {
const data: Readonly<AssistantChatData> | undefined =
turn.steps[index].data.get('assistant-step')
if (!isFinalAssistant(data)
|| !hasAssistantReplyContent(data.blocks)
|| data.blocks.some(block => block.kind === 'tool-call')) break
answer = data
}
return answer
}验证范围与限制
建议至少增加“完整正文之后,后台子智能体通知触发无工具的收尾步骤”的回归用例。遵循当前 CONTRIBUTING 中的反馈渠道,在此补充证据和修复候选,未提交外部 PR。 |
Uh oh!
There was an error while loading. Please reload this page.
环境
@deepseek-ai/dsh0.1.5-rc.2(npm 全局安装,dsh web,Windows 11,Node v24.19.0)ui-chat.transcriptView未显式配置 → 走默认compact(紧凑)现象
紧凑模式下,一轮结束后的折叠不只收走推理行与工具行,还会把同样面向用户的助手正文段落一并收进「过程」折叠行,只留本轮最后一段答复可见。
实际碰到的一轮结构(本贴的由来):
轮次结束后,界面上只剩正文B;正文A——也就是这一轮里信息量最大的一段——被折进「过程」,需要手动展开折叠行或切到「轨迹」才能找回。
三个可感知的不一致:
turnClosed一置位,正文A 立刻被折走,没有任何提示。最小复现
ui-chat.transcriptView为默认值(compact)。ask_user_question最稳定;审批弹窗同理)。turnClosed为假,尚未折叠)。定位(0.1.5-rc.2 打包产物行号)
文件
@deepseek-ai/dsh-client-ui-chat/lib/client.js:answerAnchorSeq取的是最后一个"不含 tool-call 的 final assistant step" 的位置,因此它之前的所有节点——推理、工具调用,以及同样是面向用户正文的 step——都会被判为processMember折进「过程」。把上界收在"最后一段"而不是"最后一段面向用户的正文起点",就是本贴的成因。与 #6200 / #6250 的区别
!historyIncomplete全局开关answerAnchorSeq = latestAnswer().finalNode.seq期望行为(按侵入性递增,任选其一)
processMember排除"面向用户的正文"节点——即只折推理行 / 工具行 / 其它过程行,任何 assistant 文本(hasAssistantReplyContent的 text block)都留在可见区。这正是 Feature request: fold pre-result thinking/tool rows into a "work" group in the chat view #4863 的 "closing answer never folded" 原则的推广:不是"最后一个答案不折",而是"答案都不折"。ask_user_question/ approval 之后的全部正文都保持可见。补充
historyIncomplete对折叠的全局否决(【缺陷】会话历史分页未加载完时,已完成轮次的「过程折叠」被静默禁用 #6200 / Bug:compact 模式下刷新页面后会话折叠不生效,跳转到历史轮次后才恢复 #6250)一并处理,避免同一功能在两处各有一个"看起来像坏了"的入口。All reactions