diff --git a/packages/client/ui-agent-team/README.i18n.yaml b/packages/client/ui-agent-team/README.i18n.yaml
index aa649f4b46..b10c2374df 100644
--- a/packages/client/ui-agent-team/README.i18n.yaml
+++ b/packages/client/ui-agent-team/README.i18n.yaml
@@ -18,8 +18,8 @@
en: 3063e6d608c19bdd
zh: 9441bf874e06027a
/deepseek-ai-dsh-client-ui-agent-team/use-this-package/inspect-the-task-board:
- en: d565ccd7b37d24c5
- zh: c9e780a9972c9373
+ en: 64d668f79e98ab72
+ zh: 323eb6892f4f8a02
/deepseek-ai-dsh-client-ui-agent-team/understand-the-implementation:
en: 2b0cf0e4dc3f081f
zh: 0cd87ca048c001ef
diff --git a/packages/client/ui-agent-team/README.md b/packages/client/ui-agent-team/README.md
index 6737642287..1ba03ba313 100644
--- a/packages/client/ui-agent-team/README.md
+++ b/packages/client/ui-agent-team/README.md
@@ -33,7 +33,7 @@ The [Web bundle](../../bundle/web-app/README.md) loads this package by default.
Ready pending tasks use idle, blocked pending tasks use warning, in-progress tasks use ongoing, and completed tasks use done.
-The read-only board shows task identity, owner label, blockers, readiness, advisory write scopes, and overlap warnings. The root owner is labeled Lead; other owners use the subagent catalog label, then the Session title, then the Session id. Long descriptions can expand. The heading shows the task count and an empty board has a short explanation. Agents mutate tasks through tools; the panel provides no mutation controls. A projection failure appears above the last valid tasks.
+The read-only board shows task identity, owner label, blockers, readiness, and advisory write scopes. The root owner is labeled Lead; other owners use the subagent catalog label, then the Session title, then the Session id. Long descriptions can expand. The heading shows the task count and an empty board has a short explanation. Agents mutate tasks through tools; the panel provides no mutation controls. A projection failure appears above the last valid tasks.
-----
diff --git a/packages/client/ui-agent-team/README.zh.md b/packages/client/ui-agent-team/README.zh.md
index f3d51b5d4a..f04df6f04e 100644
--- a/packages/client/ui-agent-team/README.zh.md
+++ b/packages/client/ui-agent-team/README.zh.md
@@ -33,7 +33,7 @@ kind: "package-reference"
可开始的 pending 任务使用 idle 灰点,被依赖阻塞的 pending 任务使用 warning 橙点,in-progress 任务使用 ongoing loading,completed 任务使用 done 绿点。
-只读任务板显示任务身份、所有者标签、阻塞项、就绪状态、建议写入范围和重叠警告。根负责人显示为“主代理”;其他负责人优先使用 subagent 目录标签,其次为 Session 标题,最后为 Session id。长描述可展开。标题显示任务数量,空任务板提供简短说明。Agent 通过工具修改任务;面板不提供修改控件。投影失败显示在最后有效任务上方。
+只读任务板显示任务身份、所有者标签、阻塞项、就绪状态和建议写入范围。根负责人显示为“主代理”;其他负责人优先使用 subagent 目录标签,其次为 Session 标题,最后为 Session id。长描述可展开。标题显示任务数量,空任务板提供简短说明。Agent 通过工具修改任务;面板不提供修改控件。投影失败显示在最后有效任务上方。
-----
diff --git a/packages/client/ui-agent-team/src/client/TeamBoard.module.css b/packages/client/ui-agent-team/src/client/TeamBoard.module.css
index 9149272f92..89a4d7f03e 100644
--- a/packages/client/ui-agent-team/src/client/TeamBoard.module.css
+++ b/packages/client/ui-agent-team/src/client/TeamBoard.module.css
@@ -39,8 +39,7 @@
font-size: 11px;
}
-.error,
-.warning {
+.error {
color: var(--dsw-alias-state-error-primary);
}
diff --git a/packages/client/ui-agent-team/src/client/TeamBoard.tsx b/packages/client/ui-agent-team/src/client/TeamBoard.tsx
index 848c164a81..ce3c32a4f2 100644
--- a/packages/client/ui-agent-team/src/client/TeamBoard.tsx
+++ b/packages/client/ui-agent-team/src/client/TeamBoard.tsx
@@ -97,7 +97,6 @@ function TaskCard({ task, rootId, useSessions, t }: {
{task.status === 'pending' && {task.ready ? t('ready') : t('blocked')}}
{task.blockedBy.length > 0 && {t('blockedBy')}: {task.blockedBy.join(', ')}}
{task.writeScopes.length > 0 && {t('writeScopes')}: {task.writeScopes.join(', ')}}
- {task.writeScopeWarnings.map(warning => {warning})}
)
diff --git a/packages/client/ui-agent-team/tests/team-board.client.spec.tsx b/packages/client/ui-agent-team/tests/team-board.client.spec.tsx
index f86fdf016a..89ba360a0c 100644
--- a/packages/client/ui-agent-team/tests/team-board.client.spec.tsx
+++ b/packages/client/ui-agent-team/tests/team-board.client.spec.tsx
@@ -171,7 +171,7 @@ describe('TeamBoard', () => {
it('applies later projection frames without a refresh action', () => {
const b = bench()
render()
- expect(screen.getByText('write scopes overlap with task-2')).toBeTruthy()
+ expect(screen.queryByText('write scopes overlap with task-2')).toBeNull()
expect(screen.queryByRole('button', { name: /刷新|Refresh/u })).toBeNull()
setProjection(b.sessions, SESSION, {
...team,
diff --git a/packages/client/ui-conversation/src/client/locales.ts b/packages/client/ui-conversation/src/client/locales.ts
index d3803e2966..f8c4bade29 100644
--- a/packages/client/ui-conversation/src/client/locales.ts
+++ b/packages/client/ui-conversation/src/client/locales.ts
@@ -232,7 +232,6 @@ export const zh = {
'detail.field.agents': '启动智能体数',
'detail.field.result': '结果',
'detail.field.parent': '父级',
- 'detail.field.depth': '层级',
'detail.field.exitCode': '退出码',
'detail.field.signal': '信号',
'detail.field.previousStatus': '中断前状态',
@@ -611,7 +610,6 @@ export const en = {
'detail.field.agents': 'Agents started',
'detail.field.result': 'Result',
'detail.field.parent': 'Parent',
- 'detail.field.depth': 'Depth',
'detail.field.exitCode': 'Exit code',
'detail.field.signal': 'Signal',
'detail.field.previousStatus': 'Previous status',
diff --git a/packages/client/ui-tool/README.i18n.yaml b/packages/client/ui-tool/README.i18n.yaml
index 5ab295eb9b..8f15858ba4 100644
--- a/packages/client/ui-tool/README.i18n.yaml
+++ b/packages/client/ui-tool/README.i18n.yaml
@@ -15,8 +15,8 @@
en: d152484eb41ac6b4
zh: 09388d293f9be9cb
/deepseek-ai-dsh-client-ui-tool/use-this-package:
- en: 34321c376896ba9c
- zh: 320ca43c1024a7c4
+ en: a86d7d0bb43848f0
+ zh: 69d9324b3eed59d4
/deepseek-ai-dsh-client-ui-tool/use-this-package/registering-a-business-tool-view:
en: 2e3c306b13d3bc25
zh: 77127f01763b3976
diff --git a/packages/client/ui-tool/README.md b/packages/client/ui-tool/README.md
index 20e7a8ac3a..e0d3a6510d 100644
--- a/packages/client/ui-tool/README.md
+++ b/packages/client/ui-tool/README.md
@@ -25,7 +25,7 @@ English | [中文](README.zh.md)
## Use this package
-Tool calls appear in the conversation as cards: a root call tree with its nested subcalls, each atomic call rendered by its owning view. Every lifecycle state retains the tool's ordinary business glyph; failure and interruption remain explicit through the frozen call/result state, accessible status text, and failure summary. Users can open files or inspect calls through the Host callbacks. A collapsed `web_fetch` row links its http(s) URL, which opens in a new browser tab. Control receipts display agent `name` arguments; historical `agent_id` recordings remain readable.
+Tool calls appear in the conversation as cards: a root call tree with its nested subcalls, each atomic call rendered by its owning view. Every lifecycle state retains the tool's ordinary business glyph; failure and interruption remain explicit through the frozen call/result state, accessible status text, and failure summary. Users can open files or inspect calls through the Host callbacks. A collapsed `web_fetch` row links its http(s) URL, which opens in a new browser tab. Control receipts display agent `name` arguments; historical `agent_id` recordings remain readable. Text agent lists show each agent’s title, path, and status.
Settled foreground commands with a nonzero exit code, a terminating signal, or an explicit missing exit code keep their description in the ordinary gray text and show a neutral capsule with a red dot immediately after it. The capsule displays only the recorded code, signal, or localized missing-code status and stays on the same line; the description truncates with an ellipsis to reserve its space. Running, successful, and background calls omit it. Generic execution errors and stopped summaries retain their error and warning colors, including on hover.
diff --git a/packages/client/ui-tool/README.zh.md b/packages/client/ui-tool/README.zh.md
index ee0e73dd85..e911b5da83 100644
--- a/packages/client/ui-tool/README.zh.md
+++ b/packages/client/ui-tool/README.zh.md
@@ -25,7 +25,7 @@ kind: "package-reference"
## 使用本包
-工具调用在对话中显示为卡片:一个根调用树带其嵌套子调用,每个原子调用由所属视图渲染。所有生命周期状态都保留工具的普通业务图标;失败与中断仍通过冻结调用/结果状态、无障碍状态文本和失败摘要明确表达。用户可通过宿主回调打开文件或检查调用。折叠的 `web_fetch` 行把其 http(s) URL 显示为链接,在新浏览器标签页中打开。控制工具回执显示 agent 的 `name` 参数;历史 `agent_id` 记录仍可读取。
+工具调用在对话中显示为卡片:一个根调用树带其嵌套子调用,每个原子调用由所属视图渲染。所有生命周期状态都保留工具的普通业务图标;失败与中断仍通过冻结调用/结果状态、无障碍状态文本和失败摘要明确表达。用户可通过宿主回调打开文件或检查调用。折叠的 `web_fetch` 行把其 http(s) URL 显示为链接,在新浏览器标签页中打开。控制工具回执显示 agent 的 `name` 参数;历史 `agent_id` 记录仍可读取。文本形式的智能体列表展示各智能体的标题、路径和状态。
已结束的前台命令若返回非零退出码、终止信号,或明确记录为无退出码,描述保持普通灰色,后面紧接带红点的中性胶囊。胶囊仅显示记录的退出码、信号或本地化的“未正常退出”状态,并保持在同一行;描述超出可用宽度时显示省略号,为胶囊预留空间。运行中、成功和后台调用不显示胶囊。通用执行错误与停止摘要仍保留错误色和警告色,悬停时也不改变。
diff --git a/packages/client/ui-tool/src/client/tool/models/control-details-model.ts b/packages/client/ui-tool/src/client/tool/models/control-details-model.ts
index b8074b1885..971aca973c 100644
--- a/packages/client/ui-tool/src/client/tool/models/control-details-model.ts
+++ b/packages/client/ui-tool/src/client/tool/models/control-details-model.ts
@@ -24,17 +24,14 @@ function agentList(text: string, json: unknown, t: DetailTranslate): ToolDetails
if (text === '(no subagents)') return detailList([], t('detail.agents.count', { count: 0 }), t)
const items: DetailItem[] = []
for (const line of text.split('\n')) {
- const match = /^(\S+) \[([^\]]+)\](?: parent=(\S+) depth=(\d+))?(?: — (.*))?$/u.exec(line)
+ const match = /^(\S+) \[([^\]]+)\](?: parent=\S+ depth=\d+)?(?: — (.*))?$/u.exec(line)
if (match === null) return null
- const [, id, state, parent, depth, title] = match
+ const [, id, state, title] = match
if (id === undefined || state === undefined) return null
items.push({
title: title ?? id, ...(title === undefined ? {} : { subtitle: id }),
badge: detailBadge(state, t),
- fields: parent === undefined ? [] : [
- { label: t('detail.field.parent'), value: parent },
- { label: t('detail.field.depth'), value: depth ?? '' },
- ],
+ fields: [],
})
}
return detailList(items, t('detail.agents.count', { count: items.length }), t)
diff --git a/packages/client/ui-tool/tests/details-models.client.spec.ts b/packages/client/ui-tool/tests/details-models.client.spec.ts
index 46e5865121..ec5015d21e 100644
--- a/packages/client/ui-tool/tests/details-models.client.spec.ts
+++ b/packages/client/ui-tool/tests/details-models.client.spec.ts
@@ -67,6 +67,10 @@ describe('control detail adapters', () => {
it('uses producer wording for agent, job, terminal, and LSP lists', () => {
const agents = details('list_agents', 'a1 [running] — Build\na2 [ready] parent=a1 depth=1 — Review', { scope: 'descendants' })
expect(agents?.summary).toBe('2 agents')
+ expect(agents?.items).toEqual([
+ { title: 'Build', subtitle: 'a1', badge: { label: 'Running', tone: 'info' }, fields: [] },
+ { title: 'Review', subtitle: 'a2', badge: { label: 'Ready', tone: 'neutral' }, fields: [] },
+ ])
expect(details('list_agents', '(no subagents)')?.empty).toBe('No results')
expect(details('job_list', 'j1 [bash] running — Build')?.items[0]?.fields).toContainEqual({ label: 'Type', value: 'bash' })
expect(details('job_list', '(no background jobs)')?.empty).toBe('No results')
diff --git a/snapshots/web/tool-details/ui.expected.md b/snapshots/web/tool-details/ui.expected.md
index c3b34bd9f9..c9ae613597 100644
--- a/snapshots/web/tool-details/ui.expected.md
+++ b/snapshots/web/tool-details/ui.expected.md
@@ -405,24 +405,9 @@
- button "List subagents 3 agents" [expanded]
- text: Recorded result
- list:
- - listitem:
- - text: 检查工具卡片布局 Running agent-demo-review
- - term: Parent
- - definition: todo-diff-demo
- - term: Depth
- - definition: "1"
- - listitem:
- - text: 整理工具展示清单 Idle agent-demo-docs
- - term: Parent
- - definition: todo-diff-demo
- - term: Depth
- - definition: "1"
- - listitem:
- - text: 检查状态图标 Ready agent-demo-icons
- - term: Parent
- - definition: agent-demo-review
- - term: Depth
- - definition: "2"
+ - listitem: 检查工具卡片布局 Running agent-demo-review
+ - listitem: 整理工具展示清单 Idle agent-demo-docs
+ - listitem: 检查状态图标 Ready agent-demo-icons
- button "Inspect"
- button "Send message agent-demo-review" [expanded]
- text: Recorded result