From d0fdcb032e4507fb8ef9cb155973b3fb13250337 Mon Sep 17 00:00:00 2001 From: Rohit C Prasad Date: Sun, 16 Aug 2026 16:39:18 -0700 Subject: [PATCH] =?UTF-8?q?Chat=20replaces=20the=20session=20view=20in=20p?= =?UTF-8?q?lace=20=E2=80=94=20not=20a=20modal;=20sidebar=20stays=20live?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- surfaces/gui/src/App.tsx | 6 ++++- surfaces/gui/src/components/TeamChatView.tsx | 26 +++++++++++--------- surfaces/gui/src/styles.css | 5 ++++ 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/surfaces/gui/src/App.tsx b/surfaces/gui/src/App.tsx index b7793f3d..a9a31608 100644 --- a/surfaces/gui/src/App.tsx +++ b/surfaces/gui/src/App.tsx @@ -1772,6 +1772,11 @@ export function App() { )} + {/* # team chat replaces the session view in place (owner ask 2026-08-16 — + not a modal): the sidebar stays live, Esc/back returns to the session. */} + {chatTeam && surface === "session" && ( + setChatTeam(null)} /> + )}
{/* Automation-run context (owner ask 2026-07-04): a __run__ session looked like any @@ -2010,7 +2015,6 @@ export function App() { {boardOpen && board && board.space && ( setBoardOpen(false)} onTransition={moveBoardItem} /> )} - {chatTeam && setChatTeam(null)} />}
)} diff --git a/surfaces/gui/src/components/TeamChatView.tsx b/surfaces/gui/src/components/TeamChatView.tsx index 02bfc736..8bcd0281 100644 --- a/surfaces/gui/src/components/TeamChatView.tsx +++ b/surfaces/gui/src/components/TeamChatView.tsx @@ -68,18 +68,20 @@ export function TeamChatView({ teamId, onClose }: { teamId: string; onClose: () const messages = chat?.messages || []; return ( -
-
e.stopPropagation()}> -
-
- # - team chat - questions & consensus — status lives on the board -
- + // Replaces the session view IN PLACE (absolute inside .main, not a modal): + // the sidebar stays interactive; back or Esc returns to the session. +
+
+ +
+ # + team chat + questions & consensus — status lives on the board
+
+
{messages.length === 0 && (
@@ -127,3 +129,5 @@ export function TeamChatView({ teamId, onClose }: { teamId: string; onClose: ()
); } +// Note: artifact links in chat (agents referencing reports, click → artifact +// viewer) are planned — see the Linear follow-up on chat evolution. diff --git a/surfaces/gui/src/styles.css b/surfaces/gui/src/styles.css index befc9c22..92ae77ac 100644 --- a/surfaces/gui/src/styles.css +++ b/surfaces/gui/src/styles.css @@ -1776,3 +1776,8 @@ html[data-platform="linux"] ::-webkit-scrollbar-thumb:hover { background-color: /* Sidebar chat row */ .team-hash { color: var(--faint); font-weight: 700; font-size: 12px; width: 10px; text-align: center; } .team-chat-badge { margin-left: auto; background: var(--accent); color: #fff; font-size: 10px; font-weight: 700; border-radius: 8px; padding: 0 6px; } + +/* # team chat as an in-place view (not a modal): fills .main, sidebar stays live. */ +.chat-view { position: absolute; inset: 0; z-index: 40; background: var(--paper); display: flex; flex-direction: column; } +.chat-view-head { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--line); background: var(--panel); } +.chat-view-body { flex: 1; display: flex; flex-direction: column; min-height: 0; max-width: 860px; width: 100%; margin: 0 auto; }