diff --git a/tests/e2e/conference-room-typing-intro.spec.ts b/tests/e2e/conference-room-typing-intro.spec.ts
index 0a3bd134ab..e1a7096ed6 100644
--- a/tests/e2e/conference-room-typing-intro.spec.ts
+++ b/tests/e2e/conference-room-typing-intro.spec.ts
@@ -60,10 +60,10 @@ test.describe("Dashboard launch after onboarding wizard", () => {
if (await startBtn.count()) await startBtn.first().click();
// Step 0: front door (skipped when the wizard opens on the create path).
- const frontDoor = page.getByText("Build a new team");
+ const frontDoor = page.getByText("Build a new company");
if (await frontDoor.count()) await frontDoor.first().click();
- // Step 1: team name.
+ // Step 1: company name.
await page.getByPlaceholder("Acme Corp").fill(COMPANY_NAME);
await page.getByRole("button", { name: /^Next/ }).click();
diff --git a/tests/e2e/nux-phase4-screenshots.spec.ts b/tests/e2e/nux-phase4-screenshots.spec.ts
index 3a4b559a7d..4c3a3481be 100644
--- a/tests/e2e/nux-phase4-screenshots.spec.ts
+++ b/tests/e2e/nux-phase4-screenshots.spec.ts
@@ -10,7 +10,7 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
*
* Boots a throwaway local_trusted instance (see playwright.config.ts webServer)
* and captures screenshots of every surface integrated by NUX Phases 1–3:
- * - "Build a new team" step 1 (team name) + step 2 (mission)
+ * - "Build a new company" step 1 (company name) + step 2 (mission)
* - Team-lead hire step (capsule wizard, PAP-125)
* - Onboarding front door (path picker)
* - "Add agents to your org" growth intake
@@ -57,16 +57,16 @@ test.describe("NUX Phase 4 visual QA", () => {
const baseUrl =
"http://127.0.0.1:" + (process.env.PAPERCLIP_E2E_PORT ?? "3199");
- // ── Section A: create-team path (name → mission → hire) ───────────────
+ // ── Section A: create-company path (name → mission → hire) ────────────
await openWizard(page);
// Front door shows when the wizard doesn't open directly on the create
// path (e.g. another spec already created a company on this instance).
- const createCard = page.getByRole("button", { name: /Build a new team/ });
+ const createCard = page.getByRole("button", { name: /Build a new company/ });
if (await createCard.count()) {
await createCard.first().click();
}
await expect(
- page.getByRole("heading", { name: "Name your team" }),
+ page.getByRole("heading", { name: "Name your company" }),
).toBeVisible({ timeout: 15_000 });
await page.getByPlaceholder("Acme Corp").fill("QA Robotics");
await page.screenshot({ path: shot("02-create-name.png") });
@@ -110,7 +110,7 @@ test.describe("NUX Phase 4 visual QA", () => {
page.getByRole("heading", { name: "Welcome to Paperclip" }),
).toBeVisible({ timeout: 10_000 });
await expect(
- page.getByRole("heading", { name: "Build a new team" }),
+ page.getByRole("heading", { name: "Build a new company" }),
).toBeVisible();
await expect(
page.getByRole("heading", { name: "Add agents to your org" }),
@@ -118,9 +118,9 @@ test.describe("NUX Phase 4 visual QA", () => {
await page.screenshot({ path: shot("01-front-door.png") });
await page.getByRole("button", { name: /Add agents to your org/ }).click();
- // The grow path shares step 1 (team name) before its step-2 intake.
+ // The grow path shares step 1 (company name) before its step-2 intake.
await expect(
- page.getByRole("heading", { name: "Name your team" }),
+ page.getByRole("heading", { name: "Name your company" }),
).toBeVisible({ timeout: 10_000 });
await page.getByPlaceholder("Acme Corp").fill("QA Robotics Grow");
await page.getByRole("button", { name: /^Next/ }).click();
diff --git a/tests/e2e/onboarding.spec.ts b/tests/e2e/onboarding.spec.ts
index 2532b24260..eb46e76e50 100644
--- a/tests/e2e/onboarding.spec.ts
+++ b/tests/e2e/onboarding.spec.ts
@@ -48,14 +48,14 @@ test.describe("Onboarding wizard", () => {
if (await startBtn.count()) {
await startBtn.first().click();
}
- const createCard = page.getByRole("button", { name: /Build a new team/ });
+ const createCard = page.getByRole("button", { name: /Build a new company/ });
if (await createCard.count()) {
await createCard.first().click();
}
- // Step 1 — Name your team.
+ // Step 1 — Name your company.
await expect(
- page.getByRole("heading", { name: "Name your team" }),
+ page.getByRole("heading", { name: "Name your company" }),
).toBeVisible({ timeout: 15_000 });
await page.getByPlaceholder("Acme Corp").fill(COMPANY_NAME);
await page.getByRole("button", { name: /^Next/ }).click();
diff --git a/tests/e2e/planning-mode-visual-verification.spec.ts b/tests/e2e/planning-mode-visual-verification.spec.ts
index 84026eb9f2..65be76312d 100644
--- a/tests/e2e/planning-mode-visual-verification.spec.ts
+++ b/tests/e2e/planning-mode-visual-verification.spec.ts
@@ -44,10 +44,10 @@ test("captures planning mode UI for desktop and mobile", async ({ page }) => {
const startBtn = page.getByRole("button", { name: /Start Onboarding|New Company|Add Agent/ });
if (await startBtn.count()) await startBtn.first().click();
- const createCard = page.getByRole("button", { name: /Build a new team/ });
+ const createCard = page.getByRole("button", { name: /Build a new company/ });
if (await createCard.count()) await createCard.first().click();
- await expect(page.getByRole("heading", { name: "Name your team" })).toBeVisible({ timeout: 15_000 });
+ await expect(page.getByRole("heading", { name: "Name your company" })).toBeVisible({ timeout: 15_000 });
await page.locator('input[placeholder="Acme Corp"]').fill(companyName);
await page.getByRole("button", { name: /^Next/ }).click();
diff --git a/ui/src/components/FrontDoor.tsx b/ui/src/components/FrontDoor.tsx
index 51ca886f8d..9aa8984528 100644
--- a/ui/src/components/FrontDoor.tsx
+++ b/ui/src/components/FrontDoor.tsx
@@ -30,7 +30,7 @@ export function FrontDoor({ onChoose }: FrontDoorProps) {
-
Build a new team
+
Build a new company
Begin with a mission, bring on a lead agent, and grow a team of agents to do the work.
diff --git a/ui/src/components/OnboardingWizard.tsx b/ui/src/components/OnboardingWizard.tsx
index 80691ce891..f7c6eaac08 100644
--- a/ui/src/components/OnboardingWizard.tsx
+++ b/ui/src/components/OnboardingWizard.tsx
@@ -964,7 +964,7 @@ export function OnboardingWizard() {
)}
- {/* Step 1: Name your team (both paths) */}
+ {/* Step 1: Name your company (both paths) */}
{step === 1 && (
@@ -972,9 +972,9 @@ export function OnboardingWizard() {
-
Name your team
+
Name your company
- What should we call your team?
+ What should we call your company?
@@ -987,7 +987,7 @@ export function OnboardingWizard() {
: "text-muted-foreground group-focus-within:text-foreground"
)}
>
- Team name
+ Company name
setStep(1)}
>
- ← Change team name
+ ← Change company name
)}
@@ -1589,7 +1589,7 @@ export function OnboardingWizard() {
{/* Review checklist — everything that's now set up */}
{[
- { label: "Team name", done: Boolean(companyName.trim()) },
+ { label: "Company name", done: Boolean(companyName.trim()) },
{ label: "Mission", done: Boolean(companyGoal.trim()) },
{ label: "Agent created", done: Boolean(createdAgentId) },
{ label: "Model connected", done: Boolean(createdAgentId) },
diff --git a/ui/src/components/Sidebar.test.tsx b/ui/src/components/Sidebar.test.tsx
index 96a57d3841..6aa15be867 100644
--- a/ui/src/components/Sidebar.test.tsx
+++ b/ui/src/components/Sidebar.test.tsx
@@ -410,7 +410,7 @@ describe("Sidebar", () => {
expect(container.querySelector('button[aria-label="Expand sidebar"]')).toBeNull();
expect(container.querySelector('a[aria-label="Open search"]')).toBeNull();
- // The company menu (workspace switcher / logo) is still present in the rail.
+ // The company menu (company switcher / logo) is still present in the rail.
expect(container.textContent).toContain("Company menu");
flushSync(() => {
diff --git a/ui/src/components/SidebarCompanyMenu.test.tsx b/ui/src/components/SidebarCompanyMenu.test.tsx
index 3b4341b1ef..7b35daf002 100644
--- a/ui/src/components/SidebarCompanyMenu.test.tsx
+++ b/ui/src/components/SidebarCompanyMenu.test.tsx
@@ -140,7 +140,7 @@ describe("SidebarCompanyMenu", () => {
vi.clearAllMocks();
});
- it("uses team-centric create copy without the chat flag", async () => {
+ it("uses company-centric create copy without the chat flag", async () => {
const root = createRoot(container);
const queryClient = new QueryClient({
defaultOptions: { queries: { retry: false } },
@@ -156,7 +156,7 @@ describe("SidebarCompanyMenu", () => {
await flushReact();
await flushReact();
- const trigger = container.querySelector('button[aria-label="Open Acme Labs workspace switcher"]');
+ const trigger = container.querySelector('button[aria-label="Open Acme Labs company switcher"]');
expect(trigger).not.toBeNull();
act(() => {
trigger?.dispatchEvent(new PointerEvent("pointerdown", { bubbles: true, button: 0 }));
@@ -164,7 +164,7 @@ describe("SidebarCompanyMenu", () => {
});
await flushReact();
- expect(document.body.textContent).toContain("Create new team...");
+ expect(document.body.textContent).toContain("Create new company...");
expect(document.body.textContent).not.toContain("Add company...");
act(() => {
@@ -190,7 +190,7 @@ describe("SidebarCompanyMenu", () => {
expect(container.textContent).toContain("Acme Labs");
- const trigger = container.querySelector('button[aria-label="Open Acme Labs workspace switcher"]');
+ const trigger = container.querySelector('button[aria-label="Open Acme Labs company switcher"]');
expect(trigger).not.toBeNull();
act(() => {
@@ -199,11 +199,11 @@ describe("SidebarCompanyMenu", () => {
});
await flushReact();
- expect(document.body.textContent).toContain("Switch workspace");
+ expect(document.body.textContent).toContain("Switch company");
expect(document.body.textContent).toContain("Edit");
expect(document.body.textContent).toContain("Strata");
expect(document.body.textContent).toContain("ANA");
- expect(document.body.textContent).toContain("Create new team...");
+ expect(document.body.textContent).toContain("Create new company...");
expect(document.body.textContent).toContain("Invite people to Acme Labs");
expect(document.body.textContent).toContain("Company settings");
expect(document.body.textContent).toContain("Sign out");
@@ -224,7 +224,7 @@ describe("SidebarCompanyMenu", () => {
});
});
- it("toggles company order editing without selecting a workspace", async () => {
+ it("toggles company order editing without selecting a company", async () => {
const root = createRoot(container);
const queryClient = new QueryClient({
defaultOptions: { queries: { retry: false } },
@@ -240,7 +240,7 @@ describe("SidebarCompanyMenu", () => {
await flushReact();
await flushReact();
- const trigger = container.querySelector('button[aria-label="Open Acme Labs workspace switcher"]');
+ const trigger = container.querySelector('button[aria-label="Open Acme Labs company switcher"]');
expect(trigger).not.toBeNull();
act(() => {
@@ -280,7 +280,7 @@ describe("SidebarCompanyMenu", () => {
});
});
- it("navigates to the selected workspace dashboard from company-prefixed routes", async () => {
+ it("navigates to the selected company dashboard from company-prefixed routes", async () => {
mockLocation.pathname = "/PAP/issues";
const root = createRoot(container);
const queryClient = new QueryClient({
@@ -297,7 +297,7 @@ describe("SidebarCompanyMenu", () => {
await flushReact();
await flushReact();
- const trigger = container.querySelector('button[aria-label="Open Acme Labs workspace switcher"]');
+ const trigger = container.querySelector('button[aria-label="Open Acme Labs company switcher"]');
expect(trigger).not.toBeNull();
act(() => {
diff --git a/ui/src/components/SidebarCompanyMenu.tsx b/ui/src/components/SidebarCompanyMenu.tsx
index 87c8367c8b..3177c62356 100644
--- a/ui/src/components/SidebarCompanyMenu.tsx
+++ b/ui/src/components/SidebarCompanyMenu.tsx
@@ -231,12 +231,12 @@ export function SidebarCompanyMenu({ open: controlledOpen, onOpenChange }: Sideb
// svg present (expanded) it was already 12px but without it (rail) it fell
// back to 8px — a 4px horizontal jump on collapse (PAP-10676).
className="h-9 flex-1 justify-start gap-2 px-3 text-left"
- aria-label={selectedCompany ? `Open ${selectedCompany.name} workspace switcher` : "Open workspace switcher"}
+ aria-label={selectedCompany ? `Open ${selectedCompany.name} company switcher` : "Open company switcher"}
>
{selectedCompany ? : null}
- {selectedCompany?.name ?? "Select workspace"}
+ {selectedCompany?.name ?? "Select company"}
{!rail && }
@@ -245,7 +245,7 @@ export function SidebarCompanyMenu({ open: controlledOpen, onOpenChange }: Sideb
- Switch workspace
+ Switch company
@@ -291,7 +291,7 @@ export function SidebarCompanyMenu({ open: controlledOpen, onOpenChange }: Sideb
disabled={isEditingOrder}
>
- Create new team...
+ Create new company...
diff --git a/ui/src/pages/BoardChat.tsx b/ui/src/pages/BoardChat.tsx
index 423fbd8cf5..3cd7f98b30 100644
--- a/ui/src/pages/BoardChat.tsx
+++ b/ui/src/pages/BoardChat.tsx
@@ -381,7 +381,7 @@ export function BoardChat() {
}, [selectedCompanyId]);
// The onboarding wizard renders as an overlay above an already-mounted
- // Conference Room (sidebar "Create new team..." path). Holding the reveal
+ // Conference Room (sidebar "Create new company..." path). Holding the reveal
// timer while it's open guarantees the dots window can't burn off behind
// the wizard before the user ever sees the chat (PAP-134).
const { onboardingOpen } = useDialogState();