Repository navigation
主对话完成后,仍在运行的后台子代理在 UI 上没有可见指示(0.2.0-rc.2) #8319
wanrenhuifu
started this conversation in
Ideas
Replies: 1 comment 1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment

Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
在默认的
continuable后台模式下,subagent工具会立即返回{ kind: "continuable", subagentId },而子代理继续运行——母轮可以在子代理结束之前就答完。在这段窗口里,页面上没有任何地方表示"还有东西在跑";唯一与子代理相关的控件是一个计数,所有子代理空闲和一个子代理正在运行时看起来一模一样。复现
期望
后台子代理仍在运行时,有持续的、可见的指示(会话头部控件呈现运行态,或对话流里一行"子代理仍在运行"),并且能点到那个正在运行的子会话。
实际
三处缺口叠在一起,单看每一处都不明显:
1. 对话流里完全没有子代理的位置。
@deepseek-ai/dsh-client-ui-conversation不含任何子代理/后台相关渲染(它里面的running文案只属于 bash、terminal 这类工具卡)。子代理跑在自己的 session 里,父对话的 transcript 没有它的渲染位。2. 会话头部控件的可见性判定没把"运行中"算进去。
@deepseek-ai/dsh-client-ui-subagent/lib/client.js:runningCount只用于aria-label和展开后的目录内容:所以有子代理时用户看到的只是一个静态计数;"正在运行"必须 hover 或点开目录、看那一列 14px 状态点才知道——而
activity.running、count.running.one/other这些文案本来就是现成的。3. 还有一段"连计数都没有"的窗口。 同一个条件要求
presentedCatalog !== undefined;目录投影尚未到达时该控件直接渲染null。如果母轮正好在这段窗口里结束,页面对一个正在运行的子代理是完全沉默的。附带一点: 正在运行的子代理还可能不可达。普通侧栏按设计不列子代理会话(入口就是这个头部目录),而那个入口只在
listChildren已返回条目时才存在——目录投影未到或读失败时,一个正在运行的子代理既没有指示,也没有导航路径。证据(均来自 0.2.0-rc.2 的实际产物,不是推测)
@deepseek-ai/dsh-tool-subagent/lib/index.js—— continuable 分支的工具描述原文:"It runs in the background by default and returns a subagent id you can continue withsend_message; you are notified when the run settles.";结果 schema 分支{ kind: "continuable", subagentId }。@deepseek-ai/dsh-client-ui-subagent/lib/client.js—— 上面引用的visible判定与runningCount用法;该包 README 也写明 running "uses the shared ongoing loader" 是在目录行内,且 absent / empty-loading / loaded-empty 的目录都会隐藏计数触发器。@deepseek-ai/dsh-subagent/lib/types/list-children.js—— 运行态本来就是现成可得的:activity: sessions.get(entry.id) === undefined ? 'inactive' : 'running'。所以这是展示缺口,不是事实缺失。@deepseek-ai/dsh-client-ui-conversation/lib/client.js—— 无子代理/后台相关文案。建议方向(任一条都能消掉这个缺口)
runningCount > 0纳入头部控件的可见性判定,并让控件本身呈现运行态(而不是只在展开的目录里)。改动最小。kind: "continuable"时就先渲染一个占位/指示,不必等目录投影——顺带消掉上面第 3 条窗口。可复用文案已经存在:
activity.running、count.running.one/other。在 0.2.0-rc.2(DSH 桌面端,web 组合)上观察。上面三处代码位置是读实际产物核实的;"页面上什么都没有"这一半仍值得一次带截图的复现来坐实——复现时请把子代理给足时间(几分钟),因为可观察窗口就等于子代理自己的运行时长。
All reactions