diff --git a/frontend/app/lab/session-ui-showcase.test.tsx b/frontend/app/lab/session-ui-showcase.test.tsx index f6ef5fea..6c8db825 100644 --- a/frontend/app/lab/session-ui-showcase.test.tsx +++ b/frontend/app/lab/session-ui-showcase.test.tsx @@ -46,7 +46,7 @@ test("renders every ported session-ui piece from mock canonical nodes", () => { // Queued pill: honest FIFO copy, Send now only on the head message. expect(html).toContain('data-session-ui="queued-message-pill"'); - expect(html).toContain("Queued - sends after the current run"); + expect(html).toContain("Queued - sends after the current reply"); expect(html).toContain("Send now"); expect(html).toContain("Queued #2 - 1 reply ahead"); diff --git a/frontend/components/chat/child-labels.test.ts b/frontend/components/chat/child-labels.test.ts index c558a796..0efb283d 100644 --- a/frontend/components/chat/child-labels.test.ts +++ b/frontend/components/chat/child-labels.test.ts @@ -7,7 +7,7 @@ describe("childKindLabel", () => { expect(childKindLabel("bot_thread")).toBe("bot thread"); expect(childKindLabel("subagent")).toBe("subagent"); expect(childKindLabel("child_thread")).toBe("child thread"); - expect(childKindLabel("spawned_session")).toBe("spawned session"); + expect(childKindLabel("spawned_session")).toBe("helper agent"); }); }); @@ -16,7 +16,7 @@ describe("childGroupLabel", () => { expect(childGroupLabel({ subagent: 2, bot_thread: 1 })).toBe("2 subagents, 1 bot thread"); expect(childGroupLabel({ subagent: 1 })).toBe("1 subagent"); expect(childGroupLabel({ bot_thread: 2, spawned_session: 1, child_thread: 0 })).toBe( - "2 bot threads, 1 spawned session", + "2 bot threads, 1 helper agent", ); expect(childGroupLabel({})).toBe(""); }); diff --git a/frontend/components/chat/child-labels.ts b/frontend/components/chat/child-labels.ts index fe12b044..729fdd00 100644 --- a/frontend/components/chat/child-labels.ts +++ b/frontend/components/chat/child-labels.ts @@ -10,7 +10,7 @@ const SINGULAR: Record = { subagent: "subagent", bot_thread: "bot thread", child_thread: "child thread", - spawned_session: "spawned session", + spawned_session: "helper agent", }; const ORDER: readonly ChildKind[] = ["subagent", "bot_thread", "child_thread", "spawned_session"]; diff --git a/frontend/components/chat/conversation-grammar.test.tsx b/frontend/components/chat/conversation-grammar.test.tsx index 1c74939d..af1aaf87 100644 --- a/frontend/components/chat/conversation-grammar.test.tsx +++ b/frontend/components/chat/conversation-grammar.test.tsx @@ -217,7 +217,7 @@ test("a gateway child-session turn folds under its parent, never a second turn b // Its truth lives in the parent's subagent fold: honest serial Queued state // plus the open-as-own-session affordance. expect(html).toContain('data-testid="subagents-fold"'); - expect(html).toContain("1 spawned session"); + expect(html).toContain("1 helper agent"); expect(html).toContain("Delegated: audit the docs"); expect(html).toContain("Queued"); expect(html).toContain('href="/session/run-child"'); diff --git a/frontend/components/chat/session-details-rail.test.tsx b/frontend/components/chat/session-details-rail.test.tsx index 7addf7e3..e888f38d 100644 --- a/frontend/components/chat/session-details-rail.test.tsx +++ b/frontend/components/chat/session-details-rail.test.tsx @@ -106,7 +106,7 @@ describe("SessionDetailsRail", () => { expect(html).not.toContain("not reported"); }); - test("the runtime line presents the model as the one requested, not as the one that answered", () => { + test("the model line presents the model as the one requested, not as the one that answered", () => { // runs.model is what the plane asked the runtime for; no runtime reports // the model that answered, so the rail must not read as a fact. const html = renderToStaticMarkup( @@ -115,7 +115,10 @@ describe("SessionDetailsRail", () => { expect(html).toContain("Codex"); expect(html).toContain('data-testid="runtime-model-requested"'); expect(html).toContain(">requested<"); - expect(html).toContain("does not report which model answered"); + expect(html).toContain("We are not told which model actually answered"); + // Plain words for people (#339): no run, turn, session or runtime in the row or its tooltip. + expect(html).toContain("
Model
"); + expect(html).not.toContain("Runtime"); }); test("a thread with unloaded outline turns says its plan and totals are partial", () => { diff --git a/frontend/components/chat/session-details-rail.tsx b/frontend/components/chat/session-details-rail.tsx index a3c268be..7c534049 100644 --- a/frontend/components/chat/session-details-rail.tsx +++ b/frontend/components/chat/session-details-rail.tsx @@ -88,14 +88,14 @@ export function SessionDetailsRail({
{project || "No repository"} - + {/* The model is the one the plane asked the runtime for (the run row); no runtime reports back which model answered, so the rail says so instead of presenting the request as a fact. */} {engineDisplayLabel(newest.engine)} · {modelLabel(newest.model, newest.engine)}{" "} diff --git a/frontend/components/chat/subagent-pane-body.test.tsx b/frontend/components/chat/subagent-pane-body.test.tsx index f755f32b..3f912437 100644 --- a/frontend/components/chat/subagent-pane-body.test.tsx +++ b/frontend/components/chat/subagent-pane-body.test.tsx @@ -65,7 +65,7 @@ describe("run peek body", () => { test("loading and error shells are neutral unless the caller knows it is a child", () => { expect(renderToStaticMarkup(Loading)).toContain(">Thread<"); - expect(renderToStaticMarkup(Loading)).toContain(">Run<"); + expect(renderToStaticMarkup(Loading)).toContain(">Task<"); expect(renderToStaticMarkup(Loading)).toContain( ">Subagent<", ); diff --git a/frontend/components/chat/subagent-pane-body.tsx b/frontend/components/chat/subagent-pane-body.tsx index 6ace0ead..686b0abe 100644 --- a/frontend/components/chat/subagent-pane-body.tsx +++ b/frontend/components/chat/subagent-pane-body.tsx @@ -65,7 +65,7 @@ export default function SubagentPaneBody({ return (

- Couldn't load this run. + Couldn't load this task.

); @@ -73,7 +73,7 @@ export default function SubagentPaneBody({ if (!run) { return ( - + ); } diff --git a/frontend/components/chat/subagent-pane.tsx b/frontend/components/chat/subagent-pane.tsx index bbe22b62..3ce0aa78 100644 --- a/frontend/components/chat/subagent-pane.tsx +++ b/frontend/components/chat/subagent-pane.tsx @@ -101,7 +101,7 @@ export function PaneStub({ }: { children: React.ReactNode; childSession?: boolean; - label?: "Run"; + label?: "Task"; }) { return ( <> @@ -122,8 +122,8 @@ export function PaneStub({ const SubagentPaneBody = dynamic(() => import("@/components/chat/subagent-pane-body"), { ssr: false, loading: () => ( - - + + ), }); @@ -245,7 +245,7 @@ export function SubagentPeekButton({ return (