diff --git a/tests/e2e/planning-mode-visual-verification.spec.ts b/tests/e2e/planning-mode-visual-verification.spec.ts
index 398fe24f0d..47053beb38 100644
--- a/tests/e2e/planning-mode-visual-verification.spec.ts
+++ b/tests/e2e/planning-mode-visual-verification.spec.ts
@@ -135,7 +135,7 @@ test("captures planning mode UI for desktop and mobile", async ({ page }) => {
await page.goto(issuePath);
await page.getByTestId("task-chat-composer-mode").click();
- await page.getByRole("menuitem", { name: /Agent mode/ }).click();
+ await page.getByRole("menuitem", { name: /Auto mode/ }).click();
await expect(page.getByTestId("task-chat-composer-mode")).toHaveAttribute("data-pending-work-mode", "standard");
await page.screenshot({
path: `${screenshotDir}/desktop-standard-toggle-${timestamp}.png`,
diff --git a/ui/src/components/IssueChatThread.test.tsx b/ui/src/components/IssueChatThread.test.tsx
index 12a4f931c1..ac548ba055 100644
--- a/ui/src/components/IssueChatThread.test.tsx
+++ b/ui/src/components/IssueChatThread.test.tsx
@@ -649,13 +649,13 @@ describe("IssueChatThread", () => {
);
});
- // The mode chip is always present (mockup rev 5) — neutral "Agent mode" here.
+ // The mode chip is always present (mockup rev 5) — neutral "Auto mode" here.
const chip = container.querySelector(
'[data-testid="issue-chat-composer-work-mode-toggle"]',
) as HTMLButtonElement | null;
expect(chip).not.toBeNull();
expect(chip?.getAttribute("data-pending-work-mode")).toBe("standard");
- expect(chip?.textContent).toContain("Agent mode");
+ expect(chip?.textContent).toContain("Auto mode");
const composer = container.querySelector('[data-testid="issue-chat-composer"]');
expect(composer?.getAttribute("data-pending-work-mode")).toBe("standard");
@@ -743,7 +743,7 @@ describe("IssueChatThread", () => {
});
expect(composer?.getAttribute("data-pending-work-mode")).toBe("standard");
- expect(chip?.textContent).toContain("Agent mode");
+ expect(chip?.textContent).toContain("Auto mode");
act(() => {
root.unmount();
diff --git a/ui/src/components/NewIssueDialog.test.tsx b/ui/src/components/NewIssueDialog.test.tsx
index 11c4b6ba69..1d1474351e 100644
--- a/ui/src/components/NewIssueDialog.test.tsx
+++ b/ui/src/components/NewIssueDialog.test.tsx
@@ -959,6 +959,7 @@ describe("NewIssueDialog", () => {
const modeChip = () => container.querySelector("[data-issue-work-mode-chip]");
expect(modeChip()?.getAttribute("data-issue-work-mode-chip")).toBe("standard");
+ expect(modeChip()?.textContent).toContain("Auto mode");
await act(async () => {
modeChip()?.dispatchEvent(new KeyboardEvent("keydown", {
@@ -969,6 +970,7 @@ describe("NewIssueDialog", () => {
}));
});
expect(modeChip()?.getAttribute("data-issue-work-mode-chip")).toBe("planning");
+ expect(modeChip()?.textContent).toContain("Plan mode");
await act(async () => {
modeChip()?.dispatchEvent(new KeyboardEvent("keydown", {
@@ -979,6 +981,7 @@ describe("NewIssueDialog", () => {
}));
});
expect(modeChip()?.getAttribute("data-issue-work-mode-chip")).toBe("ask");
+ expect(modeChip()?.textContent).toContain("Ask mode");
await act(async () => {
modeChip()?.dispatchEvent(new KeyboardEvent("keydown", {
@@ -1417,13 +1420,13 @@ describe("NewIssueDialog", () => {
return button?.querySelector("svg")?.getAttribute("class") ?? "";
}
- it("uses agent-mode labels and brand status hues by default", async () => {
+ it("uses auto-mode labels and brand status hues by default", async () => {
const { root } = renderDialog(container);
await waitForAssertion(() => {
- expect(workModeOption("standard")?.textContent).toContain("Agent mode");
+ expect(workModeOption("standard")?.textContent).toContain("Auto mode");
});
- expect(workModeOption("standard")?.textContent).toContain("Agent mode");
+ expect(workModeOption("standard")?.textContent).toContain("Auto mode");
expect(workModeOption("ask")?.textContent).toContain("Ask mode");
expect(workModeOption("planning")?.textContent).toContain("Plan mode");
diff --git a/ui/src/components/NewIssueDialog.tsx b/ui/src/components/NewIssueDialog.tsx
index 82fcaefb7e..f5652ee784 100644
--- a/ui/src/components/NewIssueDialog.tsx
+++ b/ui/src/components/NewIssueDialog.tsx
@@ -2239,7 +2239,7 @@ export function NewIssueDialog() {
)}
>
- {currentWorkMode.shortLabel}
+ {currentWorkMode.label}
diff --git a/ui/src/components/task-chat/TaskChatComposer.test.tsx b/ui/src/components/task-chat/TaskChatComposer.test.tsx
index 8e3155c947..e904a8c45a 100644
--- a/ui/src/components/task-chat/TaskChatComposer.test.tsx
+++ b/ui/src/components/task-chat/TaskChatComposer.test.tsx
@@ -319,7 +319,7 @@ describe("TaskChatComposer", () => {
const chip = container.querySelector('[data-testid="task-chat-composer-mode"]')!;
expect(chip.getAttribute("data-pending-work-mode")).toBe("standard");
- expect(chip.textContent).toContain("Agent");
+ expect(chip.textContent).toContain("Auto");
pressKey("Tab", { shiftKey: true });
expect(chip.getAttribute("data-pending-work-mode")).toBe("planning");
diff --git a/ui/src/components/task-chat/task-chat-fixtures.ts b/ui/src/components/task-chat/task-chat-fixtures.ts
index 36c7b03f30..d50030a451 100644
--- a/ui/src/components/task-chat/task-chat-fixtures.ts
+++ b/ui/src/components/task-chat/task-chat-fixtures.ts
@@ -39,7 +39,7 @@ export function buildScenario(id: TaskChatStateId): TaskChatScenario {
return {
surface: "thread",
items: [
- { id: "mk-start", kind: "marker", variant: "session_start", label: "Session started", detail: "claude · Agent mode" },
+ { id: "mk-start", kind: "marker", variant: "session_start", label: "Session started", detail: "claude · Auto mode" },
...exchangePrefix(),
],
};
diff --git a/ui/src/lib/work-mode-meta.test.ts b/ui/src/lib/work-mode-meta.test.ts
index bec8a42320..6c3e671822 100644
--- a/ui/src/lib/work-mode-meta.test.ts
+++ b/ui/src/lib/work-mode-meta.test.ts
@@ -3,19 +3,19 @@ import { describe, expect, it } from "vitest";
import { nextWorkMode, titleForPendingWorkMode, workModeMetaList } from "./work-mode-meta";
describe("work mode metadata", () => {
- it("orders issue work modes as agent, planning, then ask", () => {
+ it("orders issue work modes as auto, planning, then ask", () => {
expect(workModeMetaList().map((mode) => mode.value)).toEqual(["standard", "planning", "ask"]);
- expect(workModeMetaList().map((mode) => mode.shortLabel)).toEqual(["Agent", "Plan", "Ask"]);
+ expect(workModeMetaList().map((mode) => mode.label)).toEqual(["Auto mode", "Plan mode", "Ask mode"]);
});
- it("cycles issue work modes as agent, planning, ask, then agent", () => {
+ it("cycles issue work modes as auto, planning, ask, then auto", () => {
expect(nextWorkMode("standard")).toBe("planning");
expect(nextWorkMode("planning")).toBe("ask");
expect(nextWorkMode("ask")).toBe("standard");
});
it("uses graduated tooltip copy", () => {
- expect(titleForPendingWorkMode("standard")).toBe("Agent mode for this submission. Click to change.");
+ expect(titleForPendingWorkMode("standard")).toBe("Auto mode for this submission. Click to change.");
expect(titleForPendingWorkMode("planning")).toBe("Plan mode is on for this submission. Click to change.");
});
});
diff --git a/ui/src/lib/work-mode-meta.ts b/ui/src/lib/work-mode-meta.ts
index 19a8404d39..3a40a07b58 100644
--- a/ui/src/lib/work-mode-meta.ts
+++ b/ui/src/lib/work-mode-meta.ts
@@ -6,7 +6,6 @@ export type WorkModeTone = "neutral" | "ask" | "planning";
export interface WorkModeMeta {
value: IssueWorkMode;
label: string;
- shortLabel: string;
icon: LucideIcon;
tone: WorkModeTone;
classes: {
@@ -46,8 +45,7 @@ export function workModeMetaList(): WorkModeMeta[] {
return [
{
value: "standard",
- label: "Agent mode",
- shortLabel: "Agent",
+ label: "Auto mode",
icon: Hammer,
tone: "neutral",
classes: STANDARD_CLASSES,
@@ -55,7 +53,6 @@ export function workModeMetaList(): WorkModeMeta[] {
{
value: "planning",
label: "Plan mode",
- shortLabel: "Plan",
icon: ClipboardList,
tone: "planning",
classes: PLANNING_CLASSES,
@@ -63,7 +60,6 @@ export function workModeMetaList(): WorkModeMeta[] {
{
value: "ask",
label: "Ask mode",
- shortLabel: "Ask",
icon: MessageCircleQuestion,
tone: "ask",
classes: ASK_CLASSES,
@@ -89,5 +85,5 @@ export function titleForPendingWorkMode(mode: IssueWorkMode): string {
if (mode === "planning") {
return "Plan mode is on for this submission. Click to change.";
}
- return "Agent mode for this submission. Click to change.";
+ return "Auto mode for this submission. Click to change.";
}