diff --git a/apps/web/src/pages/onboarding-page.tsx b/apps/web/src/pages/onboarding-page.tsx
index 56e9b9dca..5f5fdc658 100644
--- a/apps/web/src/pages/onboarding-page.tsx
+++ b/apps/web/src/pages/onboarding-page.tsx
@@ -55,11 +55,18 @@ import type { SessionUser } from "../session";
* derives one from the account so `/api/onboarding/provision` never gets
* called bare. Prefers the account's display name; an account with no
* usable name falls back to the email's local part. Editable later from
- * Settings, same as any other display name. */
-function defaultWorkbenchName(user: SessionUser): string {
+ * Settings, same as any other display name.
+ *
+ * This names the account's one root tenant — the container real
+ * workbenches (each its own child tenant, CL-6089) live under, never a
+ * workbench itself (CL-6368). "…'s workbench" mislabeled it as one;
+ * every fresh account now mints under its own name instead ("team space"
+ * / "workspace" stay off the table too — check:ui-vocabulary bans both as
+ * synonyms the CL-6089 product collapse deliberately retired). */
+function defaultTeamName(user: SessionUser): string {
const source =
user.name.trim().length > 0 ? user.name.trim() : user.email.split("@")[0];
- return `${source || "Your"}'s workbench`;
+ return `${source || "Your"}'s team`;
}
type WizardState =
@@ -281,7 +288,7 @@ export function OnboardingPage({ user }: { readonly user: SessionUser }) {
// or a stale connect error from a duplicate callback this page never
// saw resolved — provisions with a default name derived from the
// account: there is no naming step to gate this on, so it must always
- // send a name (see `defaultWorkbenchName`). A returning member's
+ // send a name (see `defaultTeamName`). A returning member's
// already-provisioned workbench is unaffected — the hub route only
// creates one the first time an account has none.
useEffect(() => {
@@ -306,7 +313,7 @@ export function OnboardingPage({ user }: { readonly user: SessionUser }) {
});
return;
}
- runProvisioning(defaultWorkbenchName(user));
+ runProvisioning(defaultTeamName(user));
// Mount-only: this reads `state.phase` exactly once, at the value
// `initialWizardState` produced, to decide which of the two checks
// above applies to this landing.
@@ -408,7 +415,7 @@ export function OnboardingPage({ user }: { readonly user: SessionUser }) {
action={
diff --git a/apps/web/src/pages/skills-page.tsx b/apps/web/src/pages/skills-page.tsx
index 3e6271335..420c46afa 100644
--- a/apps/web/src/pages/skills-page.tsx
+++ b/apps/web/src/pages/skills-page.tsx
@@ -19,10 +19,9 @@ import {
Badge,
Button,
EmptyState,
- Input,
+ LibrarySearchInput,
RichEmptyState,
Section,
- SidebarItemRow,
Table,
TableBody,
TableCell,
@@ -31,7 +30,7 @@ import {
TableRow,
formatRelativeTime,
} from "@corbits/react-ui";
-import { Plus, Search, Sparkles } from "lucide-react";
+import { Plus, Sparkles } from "lucide-react";
import { useCallback, useEffect, useState } from "react";
import { consumePendingNewSkill } from "../command-palette-actions";
@@ -410,16 +409,12 @@ export function SkillsPage({
return (