优化: ai-chat 对话流布局与轨迹信息密度改造
- 分组行去统计化,调用统计归并轨迹卡头部 - 相对时间改时间分隔线,跨日显绝对时间 - 思考过程单行 pill 化,答案卡加 accent 边 - 工具卡短路径展示与耗时提示统一 - 高风险工具名单启动时同步后端注册表 - 自动重试改琥珀细条,红卡与手动重试仅终态 - 轨迹卡头并时间线行,显轮次号与绝对时间 - 运行中摘要补当前工具名与失败计数 - 执行中工具卡加实时计时,耗时统一人话口径 - 重试残留清理改标记匹配,替代中文子串硬编码
This commit is contained in:
+4
-3
@@ -22,9 +22,9 @@ export default {
|
||||
errorAuth: 'Request failed: the API key is invalid or lacks permission.',
|
||||
errorTimeout: 'The response timed out. Please try again.',
|
||||
errorNetwork: 'Network connection failed. Please check your network.',
|
||||
// CR-30-2 / F-260616-07(d) / decision a1: stream pre-failure retry bubble copy
|
||||
// clarify this is an AI response (network/rate-limit) retry, not a tool failure (shown in card)
|
||||
aiStreamRetry: '⚠ AI response failed, retrying ({attempt}/{max})…',
|
||||
// CR-30-2 / F-260616-07(d) / decision a1: copy for the auto-retry transition line
|
||||
// (neutral wording: a retry is transient, not a terminal failure; exhausted retries still surface the AiError card)
|
||||
aiStreamRetry: 'Connection interrupted, auto-retrying ({attempt}/{max})…',
|
||||
// Fatal errors (4xx/auth) are not retryable — prompt user to check settings instead
|
||||
notRetryable: 'This error cannot be resolved by retrying. Please check the configuration.',
|
||||
streamInterruptedAfterTool: '⚠ The tool finished, but the following reply was interrupted (no data stream for a long time). You can click Continue to retry.',
|
||||
@@ -67,6 +67,7 @@ export default {
|
||||
duration: 'total {time}',
|
||||
expand: 'Expand trace',
|
||||
collapse: 'Collapse trace',
|
||||
roundN: 'Round {n}',
|
||||
processOnly: 'Process log',
|
||||
stepDone: '✓ {n} calls done',
|
||||
stepRunning: 'running {name}',
|
||||
|
||||
@@ -15,14 +15,18 @@ export default {
|
||||
// tool execution failure marker (AR-6 keeps status=completed, red to distinguish from success)
|
||||
executionFailed: 'Failed',
|
||||
executionFailedHint: 'Tool execution failed, see details below',
|
||||
// Singular expand/collapse (ToolCard single-card content, command output toggle; expandAll/collapseAll are for ToolCardList global multi-group)
|
||||
// Singular expand/collapse (ToolCard single-card content, command output toggle)
|
||||
expand: 'Expand',
|
||||
collapse: 'Collapse',
|
||||
expandAll: 'Expand all',
|
||||
collapseAll: 'Collapse all',
|
||||
written: 'written',
|
||||
items: 'items',
|
||||
lines: 'lines',
|
||||
// Status dot tooltips (ToolCard green/red/blue dot hover, zh-en paired)
|
||||
statusOk: 'Success',
|
||||
statusFailed: 'Failed',
|
||||
statusRunning: 'Running',
|
||||
statusPending: 'Pending approval',
|
||||
statusRejected: 'Rejected',
|
||||
// UX-260618-08/11: truncation hints (read_file paged truncation / list_directory 1000-entry cap)
|
||||
linesTruncated: '{shown}/{total} lines, truncated',
|
||||
dirTruncated: 'Truncated, first {n} items only',
|
||||
@@ -74,7 +78,7 @@ export default {
|
||||
advancedTask: 'Task「{title}」 advanced to {status}',
|
||||
// advance_task return-round accumulation (shown only when >0); {title} = task name (TaskRecord), fallback id
|
||||
advancedTaskWithRounds: 'Task「{title}」 advanced to {status} (returned {n} times)',
|
||||
commandOk: 'Command succeeded ({ms} ms)',
|
||||
commandOk: 'Command succeeded ({time})',
|
||||
commandFailed: 'Command failed (exit code {code})',
|
||||
commandOutputLines: '{n} lines of output',
|
||||
patchedFile: 'Patched {path} ({diff} bytes)',
|
||||
@@ -90,7 +94,7 @@ export default {
|
||||
writeOverwrite: 'overwrote {old} → {neww}',
|
||||
encodingLabel: 'encoding: {enc}',
|
||||
// http_request result summary (method + status + elapsed; body in expanded view)
|
||||
httpOk: '{method} {status} OK ({ms} ms)',
|
||||
httpOk: '{method} {status} OK ({time})',
|
||||
httpFailed: '{method} {status} failed',
|
||||
httpTruncated: 'Response truncated ({bytes}), see details',
|
||||
httpRequestFallback: 'HTTP Request',
|
||||
|
||||
Reference in New Issue
Block a user