From c84224ad081e4239339e3426c4ec81d2a9ec015d Mon Sep 17 00:00:00 2001 From: scotttong Date: Wed, 29 Jul 2026 16:24:18 -0700 Subject: [PATCH] =?UTF-8?q?feat(ui):=20task-chat=20phase=202d=20=E2=80=94?= =?UTF-8?q?=20drop=20agent-bubble=20caret,=20dedupe=20Properties=20header,?= =?UTF-8?q?=20scrollbar=20hugs=20properties=20pane?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Flag-gated under enableTaskChatRedesign; flag-off byte-identical. - TaskChatBubble: remove the tc-cursor caret from streaming message bubbles (thinking-block caret and the blink token stay). - PropertiesPanel (redesign variant): drop the "Properties" header title that duplicated the tab label; header is now a right-aligned maximize/close control row. Legacy flag-off header untouched. - IssueDetail: flag-ON shell wrapper goes full-width and each non-thread section re-centers itself at the 60rem cap, so the thread's scroll viewport (which already centers its column) reaches the properties pane; the chat tab extends under main's horizontal padding so the scrollbar sits flush against the pane border (gap 99-103px -> 0px light / 8px dark gutter, measured). Co-Authored-By: Claude Fable 5 --- ui/src/components/PropertiesPanel.tsx | 5 ++- .../components/task-chat/TaskChatBubble.tsx | 3 -- ui/src/pages/IssueDetail.tsx | 37 ++++++++++++------- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/ui/src/components/PropertiesPanel.tsx b/ui/src/components/PropertiesPanel.tsx index bccfa40691a..41cf5a5f83e 100644 --- a/ui/src/components/PropertiesPanel.tsx +++ b/ui/src/components/PropertiesPanel.tsx @@ -340,8 +340,9 @@ function ResizablePropertiesPanel({ className={cn("flex-1 flex flex-col min-h-0", isFixed && "w-full")} style={isFixed ? undefined : { width, minWidth: width }} > -
- Properties + {/* No pane title: the tab strip below (Properties/…) already names the + surface — this row is just the window controls. */} +
{item.optimistic ? ( diff --git a/ui/src/pages/IssueDetail.tsx b/ui/src/pages/IssueDetail.tsx index 4f019ef7bb7..132acb9e6ed 100644 --- a/ui/src/pages/IssueDetail.tsx +++ b/ui/src/pages/IssueDetail.tsx @@ -1543,6 +1543,12 @@ export function IssueDetail() { // (plan lives in the properties-pane Plan tab). Flag OFF renders the legacy // page byte-identically. const { enabled: taskChatShellEnabled } = useTaskChatRedesignEnabled(); + // Flag ON the page wrapper spans the full center pane so the thread's scroll + // viewport (and its scrollbar) reaches the properties-pane border; every + // non-thread section re-centers itself at the 60rem shell cap instead. + const shellSectionClass = taskChatShellEnabled + ? "mx-auto w-full max-w-(--tc-shell-max-w)" + : undefined; const { openNewIssue } = useDialogActions(); const { openPanel, closePanel, panelVisible, setPanelVisible } = usePanel(); const { setBreadcrumbs, setMobileToolbar } = useBreadcrumbs(); @@ -4083,13 +4089,13 @@ export function IssueDetail() {
{/* Parent chain breadcrumb */} {ancestors.length > 0 && ( -