fix(client): align subagent coordination and wait labels

This commit is contained in:
imccyu committed 2026-09-23 16:11:44 +08:00
1 parent 536764c8b4
commit 19675fd061
6 files changed
+25 -14

No files matched your search

@@ -3,4 +3,4 @@
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write packages/client/ui-chat/src/client/conversation-nodes/README.md
README.md: 3b6b82685c763837e706c60d8ea69b896f582ae2
README.zh.md: d599bcc3fe63ff2e5b7e35fc371af51d066ea25b
README.zh.md: ae43726417becea973b22e2f2a16871cec116584
@@ -138,7 +138,7 @@ description: "Chat 过程分组与活动摘要的明细业务规则。"
| `code` | 正在运行代码 | 运行了代码 |
| `webSearch` | 正在搜索网页 | 已搜索网页 |
| `webFetch` | 正在访问网页 | 已访问网页 |
| `subagents` | 正在协调子任务 | 已协调子任务 |
| `subagents` | 正在协调子代理 | 已协调子代理 |
| `plan` | 正在更新计划 | 更新了计划 |
| `questions` | 等待你的操作 | 向用户提出了问题 |
| `tools` | 正在调用工具 | 已调用工具 |
+3 -3
View File
@@ -15,7 +15,7 @@ export const zh = {
'message.stepProcess.code': '正在运行代码',
'message.stepProcess.webSearch': '正在搜索网页',
'message.stepProcess.webFetch': '正在访问网页',
'message.stepProcess.subagents': '正在协调子任务',
'message.stepProcess.subagents': '正在协调子代理',
'message.stepProcess.plan': '正在更新计划',
'message.stepProcess.questions': '等待你的操作',
'message.stepProcess.tools': '正在调用工具',
@@ -28,7 +28,7 @@ export const zh = {
'message.stepProcess.prepare.code': '准备运行代码',
'message.stepProcess.prepare.webSearch': '准备搜索网页',
'message.stepProcess.prepare.webFetch': '准备访问网页',
'message.stepProcess.prepare.subagents': '准备协调子任务',
'message.stepProcess.prepare.subagents': '准备协调子代理',
'message.stepProcess.prepare.plan': '准备更新计划',
'message.stepProcess.prepare.questions': '准备提问',
'message.stepProcess.prepare.tools': '准备调用工具',
@@ -42,7 +42,7 @@ export const zh = {
'message.stepProcess.done.code': '运行了代码',
'message.stepProcess.done.webSearch': '已搜索网页',
'message.stepProcess.done.webFetch': '已访问网页',
'message.stepProcess.done.subagents': '已协调子任务',
'message.stepProcess.done.subagents': '已协调子代理',
'message.stepProcess.done.plan': '更新了计划',
'message.stepProcess.done.questions': '向用户提出了问题',
'message.stepProcess.done.tools': '已调用工具',
@@ -159,7 +159,7 @@ export const zh = {
'tool.title.getTeamTask': '读取团队任务',
'tool.title.updateTeamTask': '更新团队任务',
'tool.title.listTeamTasks': '查看团队任务',
'tool.title.waitAgent': '等待代理',
'tool.title.waitAgent': '等待子代理',
'detail.recordedResult': '调用结果',
'detail.empty': '暂无结果',
'detail.none': '无',
@@ -243,8 +243,8 @@ export const zh = {
'detail.receipt.signal': '信号已发送',
'detail.receipt.closed': '已关闭',
'detail.receipt.closing': '关闭中',
'detail.wait.noProgress': '没有正在运行的队友',
'detail.wait.title': '队友状态',
'detail.wait.noProgress': '没有正在运行的子代理',
'detail.wait.title': '子代理状态',
'detail.wait.timeout': '等待超时',
'detail.wait.changed': '检测到变化',
'detail.agent.reply': '代理回复',
@@ -596,8 +596,8 @@ export const en = {
'detail.receipt.signal': 'Signal delivered',
'detail.receipt.closed': 'Closed',
'detail.receipt.closing': 'Closing',
'detail.wait.noProgress': 'No active teammates',
'detail.wait.title': 'Teammate activity',
'detail.wait.noProgress': 'No active subagents',
'detail.wait.title': 'Subagent activity',
'detail.wait.timeout': 'Wait timed out',
'detail.wait.changed': 'Change detected',
'detail.agent.reply': 'Agent response',
@@ -3,8 +3,9 @@
import { describe, expect, it } from 'vitest'
import type { ToolResultNode } from '@deepseek-ai/dsh-client-ui-chat/client'
import { makeTranslate } from '@deepseek-ai/dsh-client-test-runtime'
import { en } from '@deepseek-ai/dsh-client-ui-conversation/src/client/locales.ts'
import { en, zh } from '@deepseek-ai/dsh-client-ui-conversation/src/client/locales.ts'
import { en as commonEn } from '@deepseek-ai/dsh-client-locale/src/locales/en.ts'
import { zh as commonZh } from '@deepseek-ai/dsh-client-locale/src/locales/zh.ts'
import { statusLine } from '@deepseek-ai/dsh-tool-jobs/src/render.ts'
import { presentation } from '@deepseek-ai/dsh-tool-session-query/src/presentation.ts'
import { renderList, renderRead, renderSpawn } from '@deepseek-ai/dsh-tool-terminal/src/render.ts'
@@ -51,6 +52,16 @@ describe('shared detail values', () => {
})
describe('control detail adapters', () => {
it.each([
[{ timedOut: false }, '子代理状态 · 检测到变化'],
[{ timedOut: true }, '子代理状态 · 等待超时'],
[{ timedOut: false, noProgress: { message: 'No pending work' } }, '没有正在运行的子代理'],
] as const)('names subagents in Chinese wait results (%j)', (value, summary) => {
const translate = makeTranslate(zh, commonZh)
expect(translate('tool.title.waitAgent')).toBe('等待子代理')
expect(detailsCardModel(output('wait_agent', JSON.stringify(value)), translate, 'zh-CN')?.summary).toBe(summary)
})
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')
@@ -78,7 +89,7 @@ describe('control detail adapters', () => {
expect(details('send_message', '{"status":"queued"}', { agent_id: 'a1', message: 'hello' })?.items[0]?.badge?.label).toBe('Queued')
expect(details('send_message', 'message delivered to agent a1', { agent_id: 'a1', message: 'hello' })?.summary).toBe('a1 · Message delivered')
expect(details('interrupt_agent', '{"previousStatus":"running"}', { agent_id: 'a1' })?.items[0]?.fields).toContainEqual({ label: 'Previous status', value: 'Running' })
expect(details('wait_agent', '{"timedOut":true}')?.summary).toBe('Teammate activity · Wait timed out')
expect(details('wait_agent', '{"timedOut":true}')?.summary).toBe('Subagent activity · Wait timed out')
expect(details('wait_agent', '{"timedOut":false,"noProgress":{"message":"No peer"}}')?.items[0]?.description).toBe('No peer')
expect(details('subagent', 'started background subagent job job-1', { prompt: 'Do work' })?.items[0]?.fields).toContainEqual({ label: 'Job ID', value: 'job-1' })
expect(details('subagent', 'A useful reply', { prompt: 'Do work' })?.items[0]?.markdown).toBe('A useful reply')
+2 -2
View File
@@ -703,10 +703,10 @@
- listitem:
- paragraph: task-demo-1
- button "Inspect"
- button "Wait for subagent Teammate activity" [expanded]
- button "Wait for subagent Subagent activity" [expanded]
- text: Recorded result
- list:
- listitem: Teammate activity Change detected
- listitem: Subagent activity Change detected
- button "Inspect"
- button "Interrupt agent ui-review" [expanded]
- text: Recorded result