Skip to content

feat(web): refresh workspace layouts and tool activity - #6275

Merged
maria-rcks merged 16 commits into
pingdotgg:mainfrom
maria-rcks:agent/ui-workspace-refresh
Aug 15, 2026
Merged

feat(web): refresh workspace layouts and tool activity#6275
maria-rcks merged 16 commits into
pingdotgg:mainfrom
maria-rcks:agent/ui-workspace-refresh

Conversation

@maria-rcks

@maria-rcks maria-rcks commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Changes

Workspace, navigation, and Settings

  • Adds shared workspace header and page-container primitives for consistent spacing, safe-area padding, collapsed-sidebar offsets, Electron drag regions, and native window-control clearance.
  • Applies the shared header to chat, empty/onboarding states, Usage, Pull Requests, Settings, and project settings.
  • Aligns top-bar edge icons by their visible glyphs instead of their hover hit areas.
  • Standardizes readable, wide, and expanded content widths across full-page surfaces.
  • Restores the full-width Back row on Usage, Pull Requests, and Settings, using browser history with a workspace fallback.
  • Consolidates Settings, Pull Requests, and Usage into the same sidebar utility navigation while preserving the update indicator.
  • Keeps Settings connection/account controls and gives Keybindings and Diagnostics appropriately wider layouts.
  • Tightens the theme-card minimum width so the library can fit three columns again when space allows.
  • Makes New thread create directly in the currently scoped project; All projects still opens the picker, and Shift-click still creates directly.
  • Aligns sidebar pin, working/done/woke, snooze/wake, settle, and un-settle states into stable compact slots.
  • Reorganizes thread context menus with consistent icons and separators.
  • Groups path, branch, and thread ID under a single Copy submenu and separates destructive Delete.
  • Adds matching submenu chevrons, icons, and separators to both web fallback and native desktop context menus.
  • Aligns terminal/right-panel header controls and keeps disabled panel icons the same size, position, and visual weight as enabled ones.
  • Gives inline file, skill, and context chips an explicit shared height and block-SVG geometry so icons and labels remain vertically centered at every prompt font size.

Usage

  • Moves Cost/Tokens, time range, and refresh controls into the top bar.
  • Shows the active date range in the Usage breadcrumb.
  • Restores a narrower left summary with the main total and provider amounts right-aligned beside the chart.
  • Removes Raw token cost, progress bars, and the separate provider legend.
  • Labels cost as an API estimate and keeps the session count directly below the total.
  • Keeps Codex and Claude Code visible in a stable order, including zero-usage providers, with brand markers, right-aligned values, and concise shares.
  • Keeps the aggregate session total beneath the headline and adds distinct per-provider session counts beside each harness name without double-counting sessions across buckets.
  • Replaces bar charts with smooth provider area/line curves for hourly and daily views.
  • Keeps each provider independently zero-based and prevents curves or scales from overshooting spikes.
  • Adds pointer-following hover details that stay clamped within the chart.
  • Simplifies the totals section to processed tokens, cached input, uncached input, output, and cache savings.
  • Standardizes the Model/Hour/Day breakdown selector and softens table hover styling.
  • Rebuilds the Usage loading skeleton to match the final provider, chart, totals, and breakdown layout.

Pull Requests

  • Moves the Pull Requests list onto the shared workspace header/content geometry.
  • Aligns search, refresh, filters, and the right-panel toggle consistently in full and condensed headers.
  • Keeps refresh near search and shows its active state while reloading.
  • Uses the standard outlined filter control while preserving the active-filter indicator.
  • Disables the right-panel toggle until a PR is selected and explains that state in its tooltip.
  • Restores the spacious PR detail view at the top and uses the new compact view only as the sticky scrolled state.
  • Keeps the overflow menu fixed at the top right in both expanded and compact states.
  • Crossfades from repository + PR number to PR number + title when the header condenses.
  • Makes the repository label open the repository root while the PR number opens the PR.
  • Keeps Summary, Timeline, and Code in a persistent segmented tab bar.
  • Shows checks beside Summary and comments/commits plus ordering controls beside Timeline.
  • Consolidates author/update time, branches, changed-file count, and diff totals into aligned expanded and compact metadata rows.
  • Hides the author name in the compact byline while retaining the avatar and timestamp, without a separator dot.
  • Makes the head branch copyable with inline Copied feedback and gives branch names the available width with safe truncation.
  • Shrink-wraps the branch copy hover/focus target to the visible branch label instead of filling the metadata row.
  • Marks stacked PRs when the base branch is non-default and keeps base freshness/update actions beside the base branch.
  • Aligns Reviewers, Labels, and Comments using consistent rows, columns, and vertical padding.
  • Combines the conflict state and action into one filled Resolve conflicts pill with an in-place preparing state.
  • Prioritizes conflict resolution even when the viewer cannot merge, while keeping the PR's normal open-state color.
  • Keeps checkout as a split control with separate-worktree and current-repository choices.
  • Tightens action/title spacing and keeps the panel usable at narrow widths.
  • Rebuilds PR list, detail, people, timeline, and conversation skeletons to match the current layouts and use one consistent opacity.
  • Keeps the full detail skeleton until core PR data is ready, then uses tab-specific loading states.

Terminal

  • Restores the bottom terminal drawer behavior so opening one terminal does not open a right sidebar.
  • Shows the terminal sidebar only when multiple terminal sessions exist.
  • Restores compact top controls for split right, split down, new terminal, close terminal, and hide bottom drawer.
  • Centers and left-aligns the toolbar/sidebar icons consistently.
  • Makes the multi-terminal sidebar resizable and persists its width.
  • Visually groups split terminals and labels their orientation as Split right or Split down.
  • Clarifies split panes with direction-aware dividers and focus-on-click behavior.
  • Supports up to four terminals in a split group while keeping separate new terminals in their own groups.
  • Adds persistent custom terminal names through inline double-click rename.
  • Saves terminal names on Enter/blur, cancels on Escape, and removes overrides when reset or closed.
  • Shows the generated terminal name and working directory in tooltips.
  • Turns each terminal icon into a close control on hover/focus and keeps custom names available anywhere terminal labels are shown.
  • Preserves terminal layout/name state per environment and thread while cleaning stale or closed terminal state.

Timeline, tool calls, and changed files

  • Keeps one shared live Working header and timer for the active turn.
  • Shows Thinking only until the active turn produces visible content.
  • Keeps normal turn folding/timing semantics while preventing active turns from folding or reordering.
  • Keeps Worked for… attached directly to the final response after a mid-turn steer, expands history above it, and matches assistant typography with balanced divider spacing.
  • Settles completed tool activity without creating extra transient work rows.
  • Shows the latest live tool action in place with concise labels such as Running git.
  • Sources live command labels from structured tool-start payloads so the first command appears immediately and start/update/completion remain one row instead of falling back to labels such as Running Bash:.
  • Makes the full live tool row clickable so in-progress batches can be expanded as calls arrive, preserves disclosure across lifecycle updates, and adds no extra chevron or hover fill.
  • Collapses completed tool batches into expandable, action-aware summaries such as files read/changed, commands run, searches, or tools used.
  • Uses matching summary icons, colors failures clearly, and removes redundant right-side success/status icons.
  • Keeps expanded command/tool details compact while preserving raw commands and structured results.
  • Collapses concurrent subagents into one agent CTA with count, status, token total, and responsive Open/View agents copy.
  • Prevents child-agent tool activity, plan-boundary events, status-only events, and persisted Codex terminal interactions from leaking into the parent timeline.
  • Removes duplicate Worked for…, Used tool, and synthetic child-turn rows caused by terminal interaction activity.
  • Replaces the pulse/dot treatment with a stationary text-and-icon focus sweep for Thinking and live tool calls.
  • Uses continuous transform-only animation with faded edges, a clean left-side restart, themed icon highlighting, and reduced-motion fallback.
  • Compacts changed-files cards and keeps their header sticky when expanded.
  • Keeps diff totals beside the changed-file count instead of pushing them to the far edge.
  • Replaces Show files / +N more with inline representative file previews and per-file diff stats.
  • Improves long file/folder truncation, keeps stats close to names, and retains a responsive Open diff action.

Validation

  • 155 focused web regression tests passed on the final review wave
  • Latest 137-test server/web command-lifecycle suite passed
  • 7 focused desktop tests passed
  • 10 focused shared tests passed
  • Web, desktop, contracts, and shared typechecks passed
  • Production web build passed
  • All changed files pass formatting
  • Lint has no errors; one pre-existing warning remains outside the changed lines

Built with GPT-5.6 Sol via Codex in T3 Code.


Note

Medium Risk
Changes span server activity projection/ingestion and client timeline folding logic, which can affect how tool rows merge and display; terminal UI state persistence may migrate stored label data.

Overview
This PR threads tool lifecycle identity through ingestion and projection: runtime tool events now stamp top-level toolCallId from itemId, activity slimming normalizes command text from Claude/OpenCode-shaped payloads, and lifecycle collapse keys prefer payload toolCallId over legacy nested ids.

On the chat timeline, active turns get a single Working header (with optional Thinking until content appears), in-progress tool batches render as expandable live rows with concise labels (e.g. Running psql), and completed batches collapse into action-aware summaries (files read/changed, commands, etc.) with failure styling. Worked for… folds anchor before the terminal assistant message after steers, and changed-files cards use tighter inline previews instead of scope chips and “show all” affordances.

Workspace UI consolidates top-bar geometry via WorkspacePageHeader / WorkspacePageContainer, aligns panel toggles and composer chip metrics, and makes New thread create directly in a scoped project. The terminal drawer gains hide, a resizable multi-session sidebar, split-group labeling, and per-thread custom names (double-click rename, persisted in terminal UI state). Sidebar lifecycle controls use consistent compact icon slots; Electron context menus honor separatorBefore alongside destructive separators.

Reviewed by Cursor Bugbot for commit 9969027. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Refresh workspace layouts, tool activity timeline, and terminal drawer UI

  • Introduces shared WorkspacePageHeader, WorkspacePageContainer, and WorkspacePageHeaderEdgeControl components in WorkspacePageContainer.tsx, replacing bespoke header markup across Settings, ChatView, Usage, Pull Requests, and onboarding routes.
  • Adds live tool activity rows (work-live kind) to the messages timeline: in-progress tool batches are collapsed into a single interactive row with a derived label (e.g. "Running psql"), and tool-only groups show a summarized toggle with failure indicators.
  • Reworks the terminal drawer in ThreadTerminalDrawer.tsx with a resizable sidebar (shown when >1 terminal exists), a compact floating toolbar, and per-terminal custom labels with inline rename (double-click, persisted via terminalUiStateStore).
  • Adds tool.started activity handling in session-logic.ts so running commands appear immediately; tool lifecycle entries with the same toolCallId now collapse across non-adjacent rows.
  • Extends context menu support with separatorBefore on items (honored in both Electron and web fallback), a nested 'Copy' submenu, and icons for many thread actions.
  • Adds per-provider session counts to usage data in usageMerge.ts and surfaces them in a refreshed Usage page with segmented tabs and a shared header.
  • Risk: terminalUiStateStore persistence bumps from version 4 to 5; existing stored state is migrated and normalized on first load.

Macroscope summarized 9969027.

@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: deae6586-770a-4d09-b7e2-b9fabb18f5c8

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). labels Aug 12, 2026
Comment thread apps/web/src/components/usage/UsagePage.tsx Outdated
Comment thread apps/web/src/terminalUiStateStore.ts
Comment thread apps/web/src/components/usage/UsagePage.tsx Outdated
Comment thread apps/web/src/components/ThreadTerminalDrawer.tsx
Comment thread apps/web/src/components/ui/segmented-tabs.tsx Outdated
@maria-rcks
maria-rcks marked this pull request as ready for review August 12, 2026 04:44
Comment thread apps/web/src/lib/openPullRequestLink.ts
Comment thread apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx
@macroscopeapp

macroscopeapp Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

Diff is too large for automated approval analysis. A human reviewer should evaluate this PR.

You can customize Macroscope's approvability policy. Learn more.

@maria-rcks maria-rcks changed the title feat(web): refresh workspace navigation and tools ui work and stuff like that Aug 12, 2026
@maria-rcks maria-rcks changed the title ui work and stuff like that DO NOT MERGE: ui work and stuff like that Aug 12, 2026
Comment thread apps/web/src/components/chat/MessagesTimeline.logic.ts Outdated
Comment thread apps/web/src/components/chat/MessagesTimeline.logic.ts Outdated
Comment thread apps/web/src/components/chat/MessagesTimeline.logic.ts Outdated
Comment thread apps/web/src/components/chat/MessagesTimeline.logic.ts
Comment thread apps/web/src/components/chat/MessagesTimeline.logic.ts
Comment thread apps/web/src/components/chat/MessagesTimeline.tsx Outdated
Comment thread apps/web/src/components/chat/MessagesTimeline.logic.ts
Comment thread apps/web/src/components/chat/MessagesTimeline.tsx
@maria-rcks
maria-rcks force-pushed the agent/ui-workspace-refresh branch from 5a1d64b to 11b64b9 Compare August 13, 2026 22:28
Comment thread apps/web/src/components/usage/UsageProviderChart.tsx Outdated
Comment thread apps/web/src/components/ThreadTerminalDrawer.tsx
Comment thread apps/web/src/components/ThreadTerminalDrawer.tsx
Comment thread apps/web/src/components/Sidebar.tsx

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

UI consistency review found three regressions in changed code: a reverted container-query fix in the changed-files card, a terminal sidebar whose minimum width is narrower than the toolbar it now hosts, and an expandable tool row that lost its hover affordance. Details inline.

Posted via Macroscope — UI Consistency

Comment thread apps/web/src/components/ThreadTerminalDrawer.tsx Outdated
Comment thread apps/web/src/components/chat/ChangedFilesTree.tsx Outdated
Comment thread apps/web/src/components/chat/MessagesTimeline.tsx
@maria-rcks
maria-rcks force-pushed the agent/ui-workspace-refresh branch from d1ddd16 to 2a7d0e7 Compare August 14, 2026 22:24
Comment thread apps/web/src/components/chat/MessagesTimeline.tsx Outdated
Comment thread apps/web/src/routes/_chat.pull-requests.tsx

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

UI consistency review of the latest head (2a7d0e7). One new finding from the refactor(web): trim workspace refresh scope commit; the three findings from the previous run are still open and unchanged, so they are not re-posted here.

Posted via Macroscope — UI Consistency

Comment thread apps/web/src/components/WorkspacePageContainer.tsx
Comment thread apps/web/src/components/chat/MessagesTimeline.logic.ts

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One accessibility finding on the new live tool-call row. Earlier findings from previous runs on this PR (changed-files container query, terminal sidebar minimum width, plain tool row hover affordance, deleted primitive tests) still stand and are not repeated here.

Posted via Macroscope — UI Consistency

Comment thread apps/web/src/components/chat/MessagesTimeline.tsx Outdated
Comment thread apps/web/src/components/chat/MessagesTimeline.logic.ts Outdated
Comment thread apps/web/src/components/chat/MessagesTimeline.tsx
Comment thread apps/web/src/session-logic.ts
Comment thread apps/web/src/session-logic.ts
Comment thread apps/web/src/session-logic.ts

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the changed web UI for shared-primitive, Tailwind-ownership, and theming consistency. Four new findings below (earlier findings on this PR are still open and not repeated).

Posted via Macroscope — UI Consistency

Comment thread apps/web/src/components/usage/UsagePage.tsx Outdated
Comment thread apps/web/src/components/usage/usageProviders.ts
Comment thread apps/web/src/components/Sidebar.tsx
Comment thread apps/web/src/components/chat/PanelLayoutControls.tsx
@maria-rcks maria-rcks changed the title DO NOT MERGE: ui work and stuff like that DO MERGE: ui work and stuff like that Aug 15, 2026
@maria-rcks maria-rcks changed the title DO MERGE: ui work and stuff like that feat(web): refresh workspace layouts and tool activity Aug 15, 2026
Comment thread apps/web/src/session-logic.ts

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit dbe6252. Configure here.

Comment thread apps/web/src/components/chat/MessagesTimeline.tsx

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two consistency findings in the workspace-shell refactor. Details inline.

Posted via Macroscope — UI Consistency

Comment thread apps/web/src/routes/_chat.pull-requests.tsx Outdated
Comment thread apps/web/src/components/settings/settingsLayout.tsx Outdated

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two issues found in the changed web UI. Everything else in this revision (shared WorkspacePageHeader/WorkspacePageContainer adoption, SegmentedTab*, sidebar Button migrations, terminal sidebar, ghost/loading shapes) looks consistent with the primitive contracts.

Posted via Macroscope — UI Consistency

Comment thread apps/web/src/components/chat/MessagesTimeline.tsx
Comment thread apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx Outdated

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One finding this round: the redesigned subagent CTA loses its accessible name on narrow widths. Everything flagged in earlier runs (settings scroll-fade band, compact refresh glyph size, provider total color, snooze tooltip/title, panel-right glyph size, live-row aria-label, changed-files container query, terminal sidebar minimum width) is resolved at this head.

Posted via Macroscope — UI Consistency

Comment thread apps/web/src/components/chat/MessagesTimeline.tsx Outdated

@macroscopeapp macroscopeapp Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Three findings, all in apps/web. The shared-primitive migrations (WorkspacePageHeader, SegmentedTab, Button/Badge adoption in the sidebar, terminal toolbar and PR chrome) otherwise look consistent with the component system, and the earlier notes on the snooze tooltip, PanelRightIcon sizing, the live-work row's accessible name, the changed-files container query and the terminal sidebar minimum width are addressed at this head.

Posted via Macroscope — UI Consistency

Comment thread apps/web/src/components/ThreadTerminalDrawer.tsx Outdated
Comment thread apps/web/src/components/chat/MessagesTimeline.tsx
Comment thread apps/web/src/components/pullRequest/PullRequestDetailPanel.tsx Outdated
@maria-rcks
maria-rcks merged commit d7abd7f into pingdotgg:main Aug 15, 2026
19 of 20 checks passed
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Aug 15, 2026
## What's Changed
* feat(web): open remote environments in your local editor over SSH by @t3dotgg in pingdotgg/t3code#6572
* feat(web): refresh workspace layouts and tool activity by @maria-rcks in pingdotgg/t3code#6275
* revert: refresh workspace layouts and tool activity by @maria-rcks in pingdotgg/t3code#6657
* feat(web): older chat timestamps show the date, not just the time by @t3dotgg in pingdotgg/t3code#6654
* fix(web): align pull request action menu rows by @Bil0000 in pingdotgg/t3code#6534


**Full Changelog**: pingdotgg/t3code@v0.0.34-nightly.20260815.1097...v0.0.34-nightly.20260815.1098

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.34-nightly.20260815.1098
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 1,000+ changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant