Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
264 changes: 0 additions & 264 deletions webviews/src/agent-session/acpmux/Localizable.xcstrings
Original file line number Diff line number Diff line change
Expand Up @@ -176106,270 +176106,6 @@
}
}
},
"steer.waiting": {
"comment": "Agent pane: under a prompt sent into a running turn, before the agent read it",
"extractionState": "manual",
"localizations": {
"ar": {
"stringUnit": {
"state": "translated",
"value": "توجيه"
}
},
"bs": {
"stringUnit": {
"state": "translated",
"value": "Usmjeravanje"
}
},
"da": {
"stringUnit": {
"state": "translated",
"value": "Styrer"
}
},
"de": {
"stringUnit": {
"state": "translated",
"value": "Lenkt um"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "Steering"
}
},
"es": {
"stringUnit": {
"state": "translated",
"value": "Redirigiendo"
}
},
"fr": {
"stringUnit": {
"state": "translated",
"value": "Réorientation"
}
},
"it": {
"stringUnit": {
"state": "translated",
"value": "Reindirizzamento"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "軌道修正中"
}
},
"km": {
"stringUnit": {
"state": "translated",
"value": "កំពុងតម្រង់ទិស"
}
},
"ko": {
"stringUnit": {
"state": "translated",
"value": "방향 전환 중"
}
},
"nb": {
"stringUnit": {
"state": "translated",
"value": "Styrer"
}
},
"pl": {
"stringUnit": {
"state": "translated",
"value": "Przekierowanie"
}
},
"pt-BR": {
"stringUnit": {
"state": "translated",
"value": "Redirecionando"
}
},
"ru": {
"stringUnit": {
"state": "translated",
"value": "Корректировка"
}
},
"th": {
"stringUnit": {
"state": "translated",
"value": "กำลังปรับทิศทาง"
}
},
"tr": {
"stringUnit": {
"state": "translated",
"value": "Yönlendiriliyor"
}
},
"uk": {
"stringUnit": {
"state": "translated",
"value": "Коригування"
}
},
"vi": {
"stringUnit": {
"state": "translated",
"value": "Đang điều hướng"
}
},
"zh-Hans": {
"stringUnit": {
"state": "translated",
"value": "正在引导"
}
},
"zh-Hant": {
"stringUnit": {
"state": "translated",
"value": "正在引導"
}
}
}
},
"steer.waitingDetail": {
"comment": "Agent pane: when the agent reads a prompt sent into its running turn",
"extractionState": "manual",
"localizations": {
"ar": {
"stringUnit": {
"state": "translated",
"value": "يقرؤها الوكيل عند انتهاء خطوته الحالية"
}
},
"bs": {
"stringUnit": {
"state": "translated",
"value": "Agent ga čita kad završi trenutni korak"
}
},
"da": {
"stringUnit": {
"state": "translated",
"value": "Agenten læser den, når det aktuelle trin slutter"
}
},
"de": {
"stringUnit": {
"state": "translated",
"value": "Der Agent liest das, wenn sein aktueller Schritt endet"
}
},
"en": {
"stringUnit": {
"state": "translated",
"value": "The agent reads it when its current step ends"
}
},
"es": {
"stringUnit": {
"state": "translated",
"value": "El agente lo lee cuando termina su paso actual"
}
},
"fr": {
"stringUnit": {
"state": "translated",
"value": "L’agent le lit à la fin de son étape en cours"
}
},
"it": {
"stringUnit": {
"state": "translated",
"value": "L’agente lo legge al termine del passaggio corrente"
}
},
"ja": {
"stringUnit": {
"state": "translated",
"value": "エージェントは現在のステップの終了時に読みます"
}
},
"km": {
"stringUnit": {
"state": "translated",
"value": "ភ្នាក់ងារអានវានៅពេលជំហានបច្ចុប្បន្នបញ្ចប់"
}
},
"ko": {
"stringUnit": {
"state": "translated",
"value": "에이전트가 현재 단계를 마치면 읽습니다"
}
},
"nb": {
"stringUnit": {
"state": "translated",
"value": "Agenten leser den når det gjeldende trinnet er ferdig"
}
},
"pl": {
"stringUnit": {
"state": "translated",
"value": "Agent przeczyta to po zakończeniu bieżącego kroku"
}
},
"pt-BR": {
"stringUnit": {
"state": "translated",
"value": "O agente lê quando a etapa atual terminar"
}
},
"ru": {
"stringUnit": {
"state": "translated",
"value": "Агент прочитает это, когда закончит текущий шаг"
}
},
"th": {
"stringUnit": {
"state": "translated",
"value": "เอเจนต์จะอ่านเมื่อขั้นตอนปัจจุบันจบ"
}
},
"tr": {
"stringUnit": {
"state": "translated",
"value": "Ajan bunu geçerli adımı bitince okur"
}
},
"uk": {
"stringUnit": {
"state": "translated",
"value": "Агент прочитає це, коли завершить поточний крок"
}
},
"vi": {
"stringUnit": {
"state": "translated",
"value": "Tác tử sẽ đọc khi bước hiện tại kết thúc"
}
},
"zh-Hans": {
"stringUnit": {
"state": "translated",
"value": "智能体会在当前步骤结束时读取"
}
},
"zh-Hant": {
"stringUnit": {
"state": "translated",
"value": "代理程式會在目前步驟結束時讀取"
}
}
}
},
"steer.landed": {
"comment": "Agent pane: under a prompt sent into a running turn, once the agent read it",
"extractionState": "manual",
Expand Down
11 changes: 3 additions & 8 deletions webviews/src/agent-session/acpmux/conversation/ActivityLine.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// The running turn's activity line under its todo list (Debug Settings `agent.sessionStatus`,
// cx-ncc.102; Claude Code desktop's `••• Edit ProductGrid.module.css 26s`): what turns.ts names
// (the running tool call, else the todo in progress) and the turn's time, ticking each second from
// the prompt like "Working for", whose place it takes.
// cx-ncc.102; Claude Code desktop's `Edit ProductGrid.module.css 26s`): what turns.ts names (the
// running tool call, else the todo in progress) and the turn's time, ticking each second from the
// prompt like "Working for", whose place it takes. No dots blink before it, as on that line.
import { useEffect, useState } from "react";
import { useT } from "../i18n";
import type { AcpmuxRow } from "../model";
Expand All @@ -18,11 +18,6 @@ export function ActivityLine({ row, now = Date.now }: { row: AcpmuxRow; now?: ()
}, [now]);
return (
<div className="cv-activity">
<span className="cv-activity__dots" aria-hidden="true">
<span />
<span />
<span />
</span>
{row.text ? (
<>
<span className="cv-activity__label">{row.text}</span>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export default agentPaneEntry({
]),
},
"activity-line": {
note: "Debug Settings agent.sessionStatus on: the list sits under the work, and the line under it names the running edit by its file name and ticks the turn's time, in Working for's place.",
note: "Debug Settings agent.sessionStatus on: the list sits under the work, and the line under it names the running edit by its file name and ticks the turn's time, in Working for's place, with no blinking dots before it.",
sessionStatus: true,
snapshot: chat(
[
Expand Down
6 changes: 2 additions & 4 deletions webviews/src/agent-session/acpmux/conversation/Thinking.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
// "Thinking": a running turn before its first output, after the working mark (WorkingMark.tsx).
// The label stays still; the mark is the only motion. Before the turn, while the prompt waits
// "Thinking": a running turn before its first output. The line holds still: no mark blinks before
// it (Leo, 2026-10-20: "wtf have we removed this yet"). Before the turn, while the prompt waits
// for its agent to start, the same line reads the start status ("Starting Claude Code…") with
// Cancel, so the line keeps one place from send to the first output (cx-ncc.58). Only the
// status is the live region.
import { useT } from "../i18n";
import { WorkingMark } from "./WorkingMark";

export function Thinking({ status, onCancel }: { status?: string; onCancel?: () => void } = {}) {
const t = useT();
return (
<div className="cv-worked" data-find-skip>
<WorkingMark />
<output className="cv-thinking">{status ?? t("thinking")}</output>
{status && onCancel && (
<button type="button" className="cv-thinking__cancel" onClick={onCancel}>
Expand Down
8 changes: 3 additions & 5 deletions webviews/src/agent-session/acpmux/conversation/WorkingFor.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// The line over a running turn's work: "Working for 42s", ticking each second from the prompt,
// or held at `durationMs` while text streams. While a call runs (`row.doing`, turns.ts) it names
// that call beside the time instead, as Claude desktop's line does, after the same small animated
// mark as "Thinking". After that it counts the work still going in the background, as Claude's
// phone app does ("Working… · 5 running tasks"): "· 2 agents · 1 command", only subagents still
// that call beside the time instead, as Claude desktop's line does. No mark blinks before it; the
// ticking time says the turn is alive. After that it counts the work still going in the
// background, as Claude's phone app does ("Working… · 5 running tasks"): "· 2 agents · 1 command", only subagents still
// running and background shells that have not ended. Each count opens what it counts. The counts
// follow on the same fixed-height line, so one that comes or goes moves neither the label nor the
// rows below. Before them, as Claude desktop's line does, it says the turn's tokens so far
Expand All @@ -12,7 +12,6 @@ import { createContext, useContext, useEffect, useState } from "react";
import { type PaneLanguage, type Translate, usePaneLanguage, useT } from "../i18n";
import type { AcpmuxRow } from "../model";
import { formatDuration } from "./turns";
import { WorkingMark } from "./WorkingMark";

export const workingLabel = (t: Translate, at: number, now: number) =>
t("turn.working", { time: formatDuration(Math.max(0, now - at)) });
Expand Down Expand Up @@ -68,7 +67,6 @@ export function WorkingFor({ row, now = Date.now }: { row: AcpmuxRow; now?: () =
// line is not painted either: the call it names is matched on its own tool row.
return (
<div className="cv-worked has-divider" data-find-skip>
<WorkingMark />
{row.doing ? (
<>
<span className="cv-worked__label cv-worked__doing">{row.doing}</span>
Expand Down
12 changes: 0 additions & 12 deletions webviews/src/agent-session/acpmux/conversation/WorkingMark.tsx

This file was deleted.

Loading