diff --git a/components/app/bops-app.tsx b/components/app/bops-app.tsx
index e99b90bc..786089d1 100644
--- a/components/app/bops-app.tsx
+++ b/components/app/bops-app.tsx
@@ -2176,7 +2176,7 @@ export function Settings({
else if (pane === "bots")
body = (
<>
-
+
>
);
diff --git a/components/app/computer.tsx b/components/app/computer.tsx
index 981309c5..1b18cfb4 100644
--- a/components/app/computer.tsx
+++ b/components/app/computer.tsx
@@ -1219,12 +1219,12 @@ function NoComputer({ state, bot: b, host }: { state: AppState; bot: Bot; /** Th
);
// A workspace shared with the user: the computer (or the Mac) is the owner's, with nothing here to set up or watch.
+ // A plain line saying where its work shows, not an empty card the size of a screen.
if (readOnly(state))
return (
-
-
- {`${b.name} works on ${b.runsOn === "mac" ? yourMac(state) : "the owner's computer"}.`}
-
+
+ {`${b.name} works on ${b.runsOn === "mac" ? yourMac(state) : "the owner's computer"}. Its screens show only in the owner's Bops; its work shows in the chat.`}
+
);
return (
diff --git a/components/app/panel-tabs.tsx b/components/app/panel-tabs.tsx
index ff99e303..17c48ac8 100644
--- a/components/app/panel-tabs.tsx
+++ b/components/app/panel-tabs.tsx
@@ -198,7 +198,12 @@ function Tab({ state, tab: t, on, closable, onPick, onClose }: { state: AppState
const host = b ? computerOf(state, b) : undefined;
const label =
t.kind === "computer"
- ? host && host.id !== b?.id
+ ? // A shared workspace's computers are its owner's, whichever bot's name the owner's Bops gives them.
+ state.shared
+ ? b?.runsOn === "mac"
+ ? "Owner's Mac"
+ : "Owner's computer"
+ : host && host.id !== b?.id
? `${host.name}'s computer`
: `${b?.name ?? "Bot"}'s computer`
: t.kind === "bot"
diff --git a/scripts/test-shared.mjs b/scripts/test-shared.mjs
index f008c88e..310e2655 100644
--- a/scripts/test-shared.mjs
+++ b/scripts/test-shared.mjs
@@ -1342,6 +1342,7 @@ await check("the viewer's own Mac is never a shared workspace's: no Your Mac tab
// The tab, were it shown: no Working dot for the owner's work.
const bar = renderToStaticMarkup(h(TabBar, { state: st, tabs: [mac], active: "chat", chatBotId: "boppy", onPick: noop, onClose: noop, onNew: noop }));
assert.ok(!/title="Working"/.test(bar), bar);
+ assert.match(bar, />Owner's computer, "the chat's computer tab is the owner's, not named for another bot");
// The user's own: as always.
const mine = { ...own(), host: "mac", sessions: [{ ...c.state.sessions[0], botId: "boppy" }] };
assert.equal(tabsShown([mac], mine, opts(mine)).length, 1);