feat(web): unify workspace navigation - #7153

Merged
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh
Aug 19, 2026
Merged

feat(web): unify workspace navigation#7153
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Adds one shared workspace header for chat, empty states, Settings, project settings, and onboarding.
  • Moves Settings, Usage, and Pull Requests navigation into the sidebar footer, with one consistent Back action on those pages.
  • Centralizes Settings content widths and scroll padding.

Screenshots

Direct parent on the left; this PR on the right. Same viewport and copied application state.

Settings layout

BeforeAfter
Settings layout beforeSettings layout after

Why

Workspace navigation and page headers were duplicated across several routes. This PR keeps only that shared layout work. Usage, Pull Requests, terminal, composer, tool lifecycle, and tool activity stay in separate reviews.

The independent thread action menu redesign remains in #7476.

Validation

  • Focused workspace header and Settings layout tests
  • Web typecheck
  • Browser verification of the Settings header, wide content layout, and shared Back footer

Stack order

  1. feat(web): unify workspace navigation #7153 workspace navigation, this PR
  2. feat(web): redesign usage insights #7147 Usage
  3. feat(web): refresh pull request details #7148 Pull Requests
  4. feat(web): improve terminal workspace controls #7149 terminal
  5. feat(web): attach composer state drawers #7150 composer
  6. fix(server): preserve tool lifecycle identity #7151 tool lifecycle projection
  7. feat(web): collapse tool activity into one line #7152 tool activity UI

Built with GPT-5.6-sol in the Codex harness.


Note

Low Risk
Mostly presentational refactors and shared navigation wiring; no auth, data, or API behavior changes in the diff.

Overview
Unifies workspace top-bar chrome by adding WorkspacePageHeader and swapping duplicated <header> / Electron title-bar markup in chat (ChatView), empty thread state, settings layout, project settings, and hosted onboarding for that shared wrapper (electron, reserveNativeControls, collapsed-sidebar inset, safe-area padding).

Consolidates sidebar footer navigation by extracting SidebarUtilityMenu from SidebarChromeFooter (Settings / Usage / Pull Requests icon shortcuts, Back when on settings, usage, or pull-requests routes, with history.back when possible). Settings sidebar footer now reuses the same menu instead of its own Back handler.

Tweaks settings content layout via SettingsPageContainerwidth presets (readable / wide / expanded) and updated scroll-area padding; Keybindings and Diagnostics opt into wider max widths. Titlebar geometry expectations move to WorkspacePageHeader in the chat index titlebar test.

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

Note

Unify workspace navigation headers into a shared WorkspacePageHeader component

  • Introduces WorkspacePageHeader.tsx, a reusable header that centralizes top-bar geometry, drag-region behavior, and native-control inset padding for Electron.
  • Replaces duplicated inline <header> markup and COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS logic across chat, onboarding, settings, and project settings views.
  • Centralizes sidebar footer utilities into a new SidebarUtilityMenu component in SidebarChrome.tsx; the Back button now prefers history.back() over navigating to /.
  • Standardizes SettingsPageContainer with a width prop ('readable' | 'wide' | 'expanded') and consistent padding, replacing per-page max-w-* classNames.

Macroscope summarized f756913.

@coderabbitai

ghost commented Aug 16, 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: 7d6074b3-0eb4-4b5e-a908-0906b9374f98

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-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 16, 2026
@maria-rcksmaria-rcks mentioned this pull request Aug 16, 2026
@github-actionsgithub-actionsBot added the size:XL 500-999 changed lines (additions + deletions). label Aug 16, 2026
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@github-actions

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire12.6 KiB12.6 KiB+11 B (+0.1%)15.1 KiB
CodexThread snapshot wire6.3 KiB6.3 KiB+4 B (+0.1%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB+7 B (+0.1%)7.8 KiB
CodexLive turn WebSocket decoded51.8 KiB51.8 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages16160 (0.0%)21
ClaudeTotal thread wire12.6 KiB12.6 KiB−15 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.3 KiB6.3 KiB−4 B (−0.1%)7.3 KiB
ClaudeLive turn WebSocket wire6.3 KiB6.3 KiB−11 B (−0.2%)7.8 KiB
ClaudeLive turn WebSocket decoded52.7 KiB52.7 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages16160 (0.0%)21

Baseline: 36f4314 · PR result: f756913 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 99.9 KiB
  • Claude decoded thread snapshot: 100.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

ghost 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

Reviewed the changed web UI surfaces (shared WorkspacePageHeader/WorkspacePageContainer extraction, sidebar row/footer rework, settings layout widths, toggle/segmented variants, context-menu fallback icons, composer chip metrics, themed toolbar variable swap).

Verified as safe:

  • WorkspacePageHeader reproduces the previous per-surface geometry: --workspace-topbar-height resolves to 52px and to env(titlebar-area-height) under .wco, drag-region is still gated on Electron, COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS is retained, data-chat-header still forwards (so the themed toolbar rules keep applying), and className is merged last so call sites keep ownership. Passing reserveNativeControls in the browser is inert because wco: only matches Electron's .wco root.
  • --toolbar-control-foreground is defined in both the default token block and the html[data-theme-id] bridge, so the index.css swap does not drop a variable.
  • SettingsPageContainer keeps the fade/padding pairing: [--topbar-scroll-fade-height:1.5rem] sm:[...] is required to neutralise the utility's @variant sm bump, and pt-6 matches the 1.5rem band, same as the pull-requests page.
  • separatorBefore is honoured by both renderers of ContextMenuItem (Electron template + showContextMenuFallback), and the new copy submenu parent id is never dispatched.

Three consistency findings below; no visual or behavioural regression was identified.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
Comment threadapps/web/src/components/ui/segmented-tabs.tsx Outdated
@macroscopeapp

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at f756913

Macroscope's review found this PR approvable — Mechanical refactor extracting duplicated header and sidebar menu styling into shared components (WorkspacePageHeader, SidebarUtilityMenu). No behavioral changes - same CSS classes applied from a centralized location. Tests updated accordingly.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from 93043b7 to f181757CompareAugust 16, 2026 01:36

ghost 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 f181757. Configure here.

Comment threadapps/desktop/src/electron/ElectronMenu.ts Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 16, 2026

ghost 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 surfaces for shared-primitive, Tailwind-ownership and layout-preservation consistency. The header/container consolidation (WorkspacePageHeader/WorkspacePageContainer) preserves topbar height, WCO inset, drag region, safe-area padding and the collapsed-sidebar transition, the new micro button size correctly extends the primitive contract instead of hand-rolling the sidebar row actions, and the themed toolbar-control rule change is consistent with the existing [data-chat-header] control rule. Two smaller items below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/settings/SettingsSidebarNav.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from f181757 to 27bb7f4CompareAugust 16, 2026 01:51
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 16, 2026 01:52

Dismissing prior approval to re-evaluate 27bb7f4

ghost 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 items in the changed web UI scope. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from e20c680 to bc08174CompareAugust 16, 2026 23:06

ghost 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 on the changed lines. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/composerInlineChip.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from bc08174 to 8f1ea22CompareAugust 17, 2026 16:14

ghost 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 UI changes for shared-component and Tailwind-ownership consistency. Two findings, both about the new shared contracts introduced here; the WorkspacePageHeader extraction, the Button size="micro"/icon-micro migration of the sidebar row actions, and the themed --toolbar-control-foreground alignment otherwise look correct and preserve focus-visible, coarse hit targets, drag regions and titlebar insets.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/contextMenuFallback.ts Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 8f1ea22 to d8a25c9CompareAugust 17, 2026 19:18

ghost 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 icon-consistency findings in the changed context-menu code. Everything else in this revision looks consistent: the new WorkspacePageHeader reproduces the Electron/WCO geometry it replaces (--workspace-topbar-height resolves to env(titlebar-area-height, 52px) under .wco, and wco: selectors outrank the new sm: padding on specificity), micro now shares icon-micro's radius/icon contract, the sidebar hover actions all run through Button variant="ghost-muted", the fallback divider matches MenuSeparator, and every SettingsPageContainer caller now uses the width prop instead of a call-site max-w-*.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
Comment threadapps/web/src/contextMenuFallback.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from d8a25c9 to 904f059CompareAugust 17, 2026 19:35
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from ba1df53 to 883bf98CompareAugust 17, 2026 20:02

ghost 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: one finding — a shared component's API is widened with a prop that has no consumer in this PR. Everything else in the changed web UI looks consistent with the shared component system (the fallback menu divider now matches MenuSeparator, the fallback icon sizes match MenuItem's responsive contract, the sidebar lifecycle actions are on Button size="icon-micro"|"micro" variant="ghost-muted", micro shares icon-micro's radius, and WorkspacePageHeader/WorkspacePageContainer preserve the WCO inset, safe-area padding, drag region and collapsed-sidebar inset of the headers they replace).

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspaceBreadcrumb.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 883bf98 to a323f96CompareAugust 17, 2026 20:14

ghost 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: the new shared page frame lands with a single consumer while a near-identical literal frame remains in the pull-requests route.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated

ghost 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: the new Copy submenu makes three previously top-level actions unreachable without a pointer in the browser context-menu fallback. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 86a90de to 5a6ab07CompareAugust 19, 2026 04:37
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 19, 2026
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 5a6ab07 to 528d2c9CompareAugust 19, 2026 05:16

ghost 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 shared-header extraction, the settings container/width contract, the sidebar row control migration, and the toolbar theming change. The WorkspacePageHeader migration preserves the previous geometry (--workspace-topbar-height already resolves env(titlebar-area-height) under .wco, and wco: outranks sm: on specificity, so the native-controls inset still wins), and the new micro size now matches icon-micro's radius. Two findings below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/routes/-chatIndexTitlebar.test.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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: two findings in the sidebar row control migration and the scoped new-thread button. Everything else in the header/settings-layout consolidation looks consistent with the shared primitives.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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 on the new micro button size: it sets text-xs (and a size-3 icon rule) without overriding the base's sm: step, so the contract flips at ≥640px. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from a22960d to f756913CompareAugust 19, 2026 06:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@maria-rcks
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

feat(web): unify workspace navigation - #7153

Merged
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh
Aug 19, 2026
Merged

feat(web): unify workspace navigation#7153
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Adds one shared workspace header for chat, empty states, Settings, project settings, and onboarding.
  • Moves Settings, Usage, and Pull Requests navigation into the sidebar footer, with one consistent Back action on those pages.
  • Centralizes Settings content widths and scroll padding.

Screenshots

Direct parent on the left; this PR on the right. Same viewport and copied application state.

Settings layout

BeforeAfter
Settings layout beforeSettings layout after

Why

Workspace navigation and page headers were duplicated across several routes. This PR keeps only that shared layout work. Usage, Pull Requests, terminal, composer, tool lifecycle, and tool activity stay in separate reviews.

The independent thread action menu redesign remains in #7476.

Validation

  • Focused workspace header and Settings layout tests
  • Web typecheck
  • Browser verification of the Settings header, wide content layout, and shared Back footer

Stack order

  1. feat(web): unify workspace navigation #7153 workspace navigation, this PR
  2. feat(web): redesign usage insights #7147 Usage
  3. feat(web): refresh pull request details #7148 Pull Requests
  4. feat(web): improve terminal workspace controls #7149 terminal
  5. feat(web): attach composer state drawers #7150 composer
  6. fix(server): preserve tool lifecycle identity #7151 tool lifecycle projection
  7. feat(web): collapse tool activity into one line #7152 tool activity UI

Built with GPT-5.6-sol in the Codex harness.


Note

Low Risk
Mostly presentational refactors and shared navigation wiring; no auth, data, or API behavior changes in the diff.

Overview
Unifies workspace top-bar chrome by adding WorkspacePageHeader and swapping duplicated <header> / Electron title-bar markup in chat (ChatView), empty thread state, settings layout, project settings, and hosted onboarding for that shared wrapper (electron, reserveNativeControls, collapsed-sidebar inset, safe-area padding).

Consolidates sidebar footer navigation by extracting SidebarUtilityMenu from SidebarChromeFooter (Settings / Usage / Pull Requests icon shortcuts, Back when on settings, usage, or pull-requests routes, with history.back when possible). Settings sidebar footer now reuses the same menu instead of its own Back handler.

Tweaks settings content layout via SettingsPageContainerwidth presets (readable / wide / expanded) and updated scroll-area padding; Keybindings and Diagnostics opt into wider max widths. Titlebar geometry expectations move to WorkspacePageHeader in the chat index titlebar test.

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

Note

Unify workspace navigation headers into a shared WorkspacePageHeader component

  • Introduces WorkspacePageHeader.tsx, a reusable header that centralizes top-bar geometry, drag-region behavior, and native-control inset padding for Electron.
  • Replaces duplicated inline <header> markup and COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS logic across chat, onboarding, settings, and project settings views.
  • Centralizes sidebar footer utilities into a new SidebarUtilityMenu component in SidebarChrome.tsx; the Back button now prefers history.back() over navigating to /.
  • Standardizes SettingsPageContainer with a width prop ('readable' | 'wide' | 'expanded') and consistent padding, replacing per-page max-w-* classNames.

Macroscope summarized f756913.

@coderabbitai

ghost commented Aug 16, 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: 7d6074b3-0eb4-4b5e-a908-0906b9374f98

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-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 16, 2026
@maria-rcksmaria-rcks mentioned this pull request Aug 16, 2026
@github-actionsgithub-actionsBot added the size:XL 500-999 changed lines (additions + deletions). label Aug 16, 2026
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@github-actions

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire12.6 KiB12.6 KiB+11 B (+0.1%)15.1 KiB
CodexThread snapshot wire6.3 KiB6.3 KiB+4 B (+0.1%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB+7 B (+0.1%)7.8 KiB
CodexLive turn WebSocket decoded51.8 KiB51.8 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages16160 (0.0%)21
ClaudeTotal thread wire12.6 KiB12.6 KiB−15 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.3 KiB6.3 KiB−4 B (−0.1%)7.3 KiB
ClaudeLive turn WebSocket wire6.3 KiB6.3 KiB−11 B (−0.2%)7.8 KiB
ClaudeLive turn WebSocket decoded52.7 KiB52.7 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages16160 (0.0%)21

Baseline: 36f4314 · PR result: f756913 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 99.9 KiB
  • Claude decoded thread snapshot: 100.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

ghost 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

Reviewed the changed web UI surfaces (shared WorkspacePageHeader/WorkspacePageContainer extraction, sidebar row/footer rework, settings layout widths, toggle/segmented variants, context-menu fallback icons, composer chip metrics, themed toolbar variable swap).

Verified as safe:

  • WorkspacePageHeader reproduces the previous per-surface geometry: --workspace-topbar-height resolves to 52px and to env(titlebar-area-height) under .wco, drag-region is still gated on Electron, COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS is retained, data-chat-header still forwards (so the themed toolbar rules keep applying), and className is merged last so call sites keep ownership. Passing reserveNativeControls in the browser is inert because wco: only matches Electron's .wco root.
  • --toolbar-control-foreground is defined in both the default token block and the html[data-theme-id] bridge, so the index.css swap does not drop a variable.
  • SettingsPageContainer keeps the fade/padding pairing: [--topbar-scroll-fade-height:1.5rem] sm:[...] is required to neutralise the utility's @variant sm bump, and pt-6 matches the 1.5rem band, same as the pull-requests page.
  • separatorBefore is honoured by both renderers of ContextMenuItem (Electron template + showContextMenuFallback), and the new copy submenu parent id is never dispatched.

Three consistency findings below; no visual or behavioural regression was identified.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
Comment threadapps/web/src/components/ui/segmented-tabs.tsx Outdated
@macroscopeapp

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at f756913

Macroscope's review found this PR approvable — Mechanical refactor extracting duplicated header and sidebar menu styling into shared components (WorkspacePageHeader, SidebarUtilityMenu). No behavioral changes - same CSS classes applied from a centralized location. Tests updated accordingly.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from 93043b7 to f181757CompareAugust 16, 2026 01:36

ghost 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 f181757. Configure here.

Comment threadapps/desktop/src/electron/ElectronMenu.ts Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 16, 2026

ghost 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 surfaces for shared-primitive, Tailwind-ownership and layout-preservation consistency. The header/container consolidation (WorkspacePageHeader/WorkspacePageContainer) preserves topbar height, WCO inset, drag region, safe-area padding and the collapsed-sidebar transition, the new micro button size correctly extends the primitive contract instead of hand-rolling the sidebar row actions, and the themed toolbar-control rule change is consistent with the existing [data-chat-header] control rule. Two smaller items below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/settings/SettingsSidebarNav.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from f181757 to 27bb7f4CompareAugust 16, 2026 01:51
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 16, 2026 01:52

Dismissing prior approval to re-evaluate 27bb7f4

ghost 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 items in the changed web UI scope. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from e20c680 to bc08174CompareAugust 16, 2026 23:06

ghost 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 on the changed lines. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/composerInlineChip.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from bc08174 to 8f1ea22CompareAugust 17, 2026 16:14

ghost 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 UI changes for shared-component and Tailwind-ownership consistency. Two findings, both about the new shared contracts introduced here; the WorkspacePageHeader extraction, the Button size="micro"/icon-micro migration of the sidebar row actions, and the themed --toolbar-control-foreground alignment otherwise look correct and preserve focus-visible, coarse hit targets, drag regions and titlebar insets.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/contextMenuFallback.ts Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 8f1ea22 to d8a25c9CompareAugust 17, 2026 19:18

ghost 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 icon-consistency findings in the changed context-menu code. Everything else in this revision looks consistent: the new WorkspacePageHeader reproduces the Electron/WCO geometry it replaces (--workspace-topbar-height resolves to env(titlebar-area-height, 52px) under .wco, and wco: selectors outrank the new sm: padding on specificity), micro now shares icon-micro's radius/icon contract, the sidebar hover actions all run through Button variant="ghost-muted", the fallback divider matches MenuSeparator, and every SettingsPageContainer caller now uses the width prop instead of a call-site max-w-*.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
Comment threadapps/web/src/contextMenuFallback.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from d8a25c9 to 904f059CompareAugust 17, 2026 19:35
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from ba1df53 to 883bf98CompareAugust 17, 2026 20:02

ghost 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: one finding — a shared component's API is widened with a prop that has no consumer in this PR. Everything else in the changed web UI looks consistent with the shared component system (the fallback menu divider now matches MenuSeparator, the fallback icon sizes match MenuItem's responsive contract, the sidebar lifecycle actions are on Button size="icon-micro"|"micro" variant="ghost-muted", micro shares icon-micro's radius, and WorkspacePageHeader/WorkspacePageContainer preserve the WCO inset, safe-area padding, drag region and collapsed-sidebar inset of the headers they replace).

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspaceBreadcrumb.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 883bf98 to a323f96CompareAugust 17, 2026 20:14

ghost 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: the new shared page frame lands with a single consumer while a near-identical literal frame remains in the pull-requests route.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated

ghost 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: the new Copy submenu makes three previously top-level actions unreachable without a pointer in the browser context-menu fallback. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 86a90de to 5a6ab07CompareAugust 19, 2026 04:37
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 19, 2026
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 5a6ab07 to 528d2c9CompareAugust 19, 2026 05:16

ghost 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 shared-header extraction, the settings container/width contract, the sidebar row control migration, and the toolbar theming change. The WorkspacePageHeader migration preserves the previous geometry (--workspace-topbar-height already resolves env(titlebar-area-height) under .wco, and wco: outranks sm: on specificity, so the native-controls inset still wins), and the new micro size now matches icon-micro's radius. Two findings below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/routes/-chatIndexTitlebar.test.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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: two findings in the sidebar row control migration and the scoped new-thread button. Everything else in the header/settings-layout consolidation looks consistent with the shared primitives.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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 on the new micro button size: it sets text-xs (and a size-3 icon rule) without overriding the base's sm: step, so the contract flips at ≥640px. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from a22960d to f756913CompareAugust 19, 2026 06:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@maria-rcks
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(web): unify workspace navigation - #7153

Merged
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh
Aug 19, 2026
Merged

feat(web): unify workspace navigation#7153
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Adds one shared workspace header for chat, empty states, Settings, project settings, and onboarding.
  • Moves Settings, Usage, and Pull Requests navigation into the sidebar footer, with one consistent Back action on those pages.
  • Centralizes Settings content widths and scroll padding.

Screenshots

Direct parent on the left; this PR on the right. Same viewport and copied application state.

Settings layout

BeforeAfter
Settings layout beforeSettings layout after

Why

Workspace navigation and page headers were duplicated across several routes. This PR keeps only that shared layout work. Usage, Pull Requests, terminal, composer, tool lifecycle, and tool activity stay in separate reviews.

The independent thread action menu redesign remains in #7476.

Validation

  • Focused workspace header and Settings layout tests
  • Web typecheck
  • Browser verification of the Settings header, wide content layout, and shared Back footer

Stack order

  1. feat(web): unify workspace navigation #7153 workspace navigation, this PR
  2. feat(web): redesign usage insights #7147 Usage
  3. feat(web): refresh pull request details #7148 Pull Requests
  4. feat(web): improve terminal workspace controls #7149 terminal
  5. feat(web): attach composer state drawers #7150 composer
  6. fix(server): preserve tool lifecycle identity #7151 tool lifecycle projection
  7. feat(web): collapse tool activity into one line #7152 tool activity UI

Built with GPT-5.6-sol in the Codex harness.


Note

Low Risk
Mostly presentational refactors and shared navigation wiring; no auth, data, or API behavior changes in the diff.

Overview
Unifies workspace top-bar chrome by adding WorkspacePageHeader and swapping duplicated <header> / Electron title-bar markup in chat (ChatView), empty thread state, settings layout, project settings, and hosted onboarding for that shared wrapper (electron, reserveNativeControls, collapsed-sidebar inset, safe-area padding).

Consolidates sidebar footer navigation by extracting SidebarUtilityMenu from SidebarChromeFooter (Settings / Usage / Pull Requests icon shortcuts, Back when on settings, usage, or pull-requests routes, with history.back when possible). Settings sidebar footer now reuses the same menu instead of its own Back handler.

Tweaks settings content layout via SettingsPageContainerwidth presets (readable / wide / expanded) and updated scroll-area padding; Keybindings and Diagnostics opt into wider max widths. Titlebar geometry expectations move to WorkspacePageHeader in the chat index titlebar test.

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

Note

Unify workspace navigation headers into a shared WorkspacePageHeader component

  • Introduces WorkspacePageHeader.tsx, a reusable header that centralizes top-bar geometry, drag-region behavior, and native-control inset padding for Electron.
  • Replaces duplicated inline <header> markup and COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS logic across chat, onboarding, settings, and project settings views.
  • Centralizes sidebar footer utilities into a new SidebarUtilityMenu component in SidebarChrome.tsx; the Back button now prefers history.back() over navigating to /.
  • Standardizes SettingsPageContainer with a width prop ('readable' | 'wide' | 'expanded') and consistent padding, replacing per-page max-w-* classNames.

Macroscope summarized f756913.

@coderabbitai

ghost commented Aug 16, 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: 7d6074b3-0eb4-4b5e-a908-0906b9374f98

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-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 16, 2026
@maria-rcksmaria-rcks mentioned this pull request Aug 16, 2026
@github-actionsgithub-actionsBot added the size:XL 500-999 changed lines (additions + deletions). label Aug 16, 2026
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@github-actions

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire12.6 KiB12.6 KiB+11 B (+0.1%)15.1 KiB
CodexThread snapshot wire6.3 KiB6.3 KiB+4 B (+0.1%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB+7 B (+0.1%)7.8 KiB
CodexLive turn WebSocket decoded51.8 KiB51.8 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages16160 (0.0%)21
ClaudeTotal thread wire12.6 KiB12.6 KiB−15 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.3 KiB6.3 KiB−4 B (−0.1%)7.3 KiB
ClaudeLive turn WebSocket wire6.3 KiB6.3 KiB−11 B (−0.2%)7.8 KiB
ClaudeLive turn WebSocket decoded52.7 KiB52.7 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages16160 (0.0%)21

Baseline: 36f4314 · PR result: f756913 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 99.9 KiB
  • Claude decoded thread snapshot: 100.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

ghost 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

Reviewed the changed web UI surfaces (shared WorkspacePageHeader/WorkspacePageContainer extraction, sidebar row/footer rework, settings layout widths, toggle/segmented variants, context-menu fallback icons, composer chip metrics, themed toolbar variable swap).

Verified as safe:

  • WorkspacePageHeader reproduces the previous per-surface geometry: --workspace-topbar-height resolves to 52px and to env(titlebar-area-height) under .wco, drag-region is still gated on Electron, COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS is retained, data-chat-header still forwards (so the themed toolbar rules keep applying), and className is merged last so call sites keep ownership. Passing reserveNativeControls in the browser is inert because wco: only matches Electron's .wco root.
  • --toolbar-control-foreground is defined in both the default token block and the html[data-theme-id] bridge, so the index.css swap does not drop a variable.
  • SettingsPageContainer keeps the fade/padding pairing: [--topbar-scroll-fade-height:1.5rem] sm:[...] is required to neutralise the utility's @variant sm bump, and pt-6 matches the 1.5rem band, same as the pull-requests page.
  • separatorBefore is honoured by both renderers of ContextMenuItem (Electron template + showContextMenuFallback), and the new copy submenu parent id is never dispatched.

Three consistency findings below; no visual or behavioural regression was identified.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
Comment threadapps/web/src/components/ui/segmented-tabs.tsx Outdated
@macroscopeapp

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at f756913

Macroscope's review found this PR approvable — Mechanical refactor extracting duplicated header and sidebar menu styling into shared components (WorkspacePageHeader, SidebarUtilityMenu). No behavioral changes - same CSS classes applied from a centralized location. Tests updated accordingly.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from 93043b7 to f181757CompareAugust 16, 2026 01:36

ghost 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 f181757. Configure here.

Comment threadapps/desktop/src/electron/ElectronMenu.ts Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 16, 2026

ghost 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 surfaces for shared-primitive, Tailwind-ownership and layout-preservation consistency. The header/container consolidation (WorkspacePageHeader/WorkspacePageContainer) preserves topbar height, WCO inset, drag region, safe-area padding and the collapsed-sidebar transition, the new micro button size correctly extends the primitive contract instead of hand-rolling the sidebar row actions, and the themed toolbar-control rule change is consistent with the existing [data-chat-header] control rule. Two smaller items below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/settings/SettingsSidebarNav.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from f181757 to 27bb7f4CompareAugust 16, 2026 01:51
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 16, 2026 01:52

Dismissing prior approval to re-evaluate 27bb7f4

ghost 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 items in the changed web UI scope. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from e20c680 to bc08174CompareAugust 16, 2026 23:06

ghost 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 on the changed lines. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/composerInlineChip.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from bc08174 to 8f1ea22CompareAugust 17, 2026 16:14

ghost 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 UI changes for shared-component and Tailwind-ownership consistency. Two findings, both about the new shared contracts introduced here; the WorkspacePageHeader extraction, the Button size="micro"/icon-micro migration of the sidebar row actions, and the themed --toolbar-control-foreground alignment otherwise look correct and preserve focus-visible, coarse hit targets, drag regions and titlebar insets.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/contextMenuFallback.ts Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 8f1ea22 to d8a25c9CompareAugust 17, 2026 19:18

ghost 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 icon-consistency findings in the changed context-menu code. Everything else in this revision looks consistent: the new WorkspacePageHeader reproduces the Electron/WCO geometry it replaces (--workspace-topbar-height resolves to env(titlebar-area-height, 52px) under .wco, and wco: selectors outrank the new sm: padding on specificity), micro now shares icon-micro's radius/icon contract, the sidebar hover actions all run through Button variant="ghost-muted", the fallback divider matches MenuSeparator, and every SettingsPageContainer caller now uses the width prop instead of a call-site max-w-*.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
Comment threadapps/web/src/contextMenuFallback.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from d8a25c9 to 904f059CompareAugust 17, 2026 19:35
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from ba1df53 to 883bf98CompareAugust 17, 2026 20:02

ghost 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: one finding — a shared component's API is widened with a prop that has no consumer in this PR. Everything else in the changed web UI looks consistent with the shared component system (the fallback menu divider now matches MenuSeparator, the fallback icon sizes match MenuItem's responsive contract, the sidebar lifecycle actions are on Button size="icon-micro"|"micro" variant="ghost-muted", micro shares icon-micro's radius, and WorkspacePageHeader/WorkspacePageContainer preserve the WCO inset, safe-area padding, drag region and collapsed-sidebar inset of the headers they replace).

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspaceBreadcrumb.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 883bf98 to a323f96CompareAugust 17, 2026 20:14

ghost 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: the new shared page frame lands with a single consumer while a near-identical literal frame remains in the pull-requests route.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated

ghost 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: the new Copy submenu makes three previously top-level actions unreachable without a pointer in the browser context-menu fallback. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 86a90de to 5a6ab07CompareAugust 19, 2026 04:37
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 19, 2026
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 5a6ab07 to 528d2c9CompareAugust 19, 2026 05:16

ghost 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 shared-header extraction, the settings container/width contract, the sidebar row control migration, and the toolbar theming change. The WorkspacePageHeader migration preserves the previous geometry (--workspace-topbar-height already resolves env(titlebar-area-height) under .wco, and wco: outranks sm: on specificity, so the native-controls inset still wins), and the new micro size now matches icon-micro's radius. Two findings below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/routes/-chatIndexTitlebar.test.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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: two findings in the sidebar row control migration and the scoped new-thread button. Everything else in the header/settings-layout consolidation looks consistent with the shared primitives.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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 on the new micro button size: it sets text-xs (and a size-3 icon rule) without overriding the base's sm: step, so the contract flips at ≥640px. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from a22960d to f756913CompareAugust 19, 2026 06:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@maria-rcks
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(web): unify workspace navigation - #7153

Merged
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh
Aug 19, 2026
Merged

feat(web): unify workspace navigation#7153
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Adds one shared workspace header for chat, empty states, Settings, project settings, and onboarding.
  • Moves Settings, Usage, and Pull Requests navigation into the sidebar footer, with one consistent Back action on those pages.
  • Centralizes Settings content widths and scroll padding.

Screenshots

Direct parent on the left; this PR on the right. Same viewport and copied application state.

Settings layout

BeforeAfter
Settings layout beforeSettings layout after

Why

Workspace navigation and page headers were duplicated across several routes. This PR keeps only that shared layout work. Usage, Pull Requests, terminal, composer, tool lifecycle, and tool activity stay in separate reviews.

The independent thread action menu redesign remains in #7476.

Validation

  • Focused workspace header and Settings layout tests
  • Web typecheck
  • Browser verification of the Settings header, wide content layout, and shared Back footer

Stack order

  1. feat(web): unify workspace navigation #7153 workspace navigation, this PR
  2. feat(web): redesign usage insights #7147 Usage
  3. feat(web): refresh pull request details #7148 Pull Requests
  4. feat(web): improve terminal workspace controls #7149 terminal
  5. feat(web): attach composer state drawers #7150 composer
  6. fix(server): preserve tool lifecycle identity #7151 tool lifecycle projection
  7. feat(web): collapse tool activity into one line #7152 tool activity UI

Built with GPT-5.6-sol in the Codex harness.


Note

Low Risk
Mostly presentational refactors and shared navigation wiring; no auth, data, or API behavior changes in the diff.

Overview
Unifies workspace top-bar chrome by adding WorkspacePageHeader and swapping duplicated <header> / Electron title-bar markup in chat (ChatView), empty thread state, settings layout, project settings, and hosted onboarding for that shared wrapper (electron, reserveNativeControls, collapsed-sidebar inset, safe-area padding).

Consolidates sidebar footer navigation by extracting SidebarUtilityMenu from SidebarChromeFooter (Settings / Usage / Pull Requests icon shortcuts, Back when on settings, usage, or pull-requests routes, with history.back when possible). Settings sidebar footer now reuses the same menu instead of its own Back handler.

Tweaks settings content layout via SettingsPageContainerwidth presets (readable / wide / expanded) and updated scroll-area padding; Keybindings and Diagnostics opt into wider max widths. Titlebar geometry expectations move to WorkspacePageHeader in the chat index titlebar test.

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

Note

Unify workspace navigation headers into a shared WorkspacePageHeader component

  • Introduces WorkspacePageHeader.tsx, a reusable header that centralizes top-bar geometry, drag-region behavior, and native-control inset padding for Electron.
  • Replaces duplicated inline <header> markup and COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS logic across chat, onboarding, settings, and project settings views.
  • Centralizes sidebar footer utilities into a new SidebarUtilityMenu component in SidebarChrome.tsx; the Back button now prefers history.back() over navigating to /.
  • Standardizes SettingsPageContainer with a width prop ('readable' | 'wide' | 'expanded') and consistent padding, replacing per-page max-w-* classNames.

Macroscope summarized f756913.

@coderabbitai

ghost commented Aug 16, 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: 7d6074b3-0eb4-4b5e-a908-0906b9374f98

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-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 16, 2026
@maria-rcksmaria-rcks mentioned this pull request Aug 16, 2026
@github-actionsgithub-actionsBot added the size:XL 500-999 changed lines (additions + deletions). label Aug 16, 2026
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@github-actions

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire12.6 KiB12.6 KiB+11 B (+0.1%)15.1 KiB
CodexThread snapshot wire6.3 KiB6.3 KiB+4 B (+0.1%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB+7 B (+0.1%)7.8 KiB
CodexLive turn WebSocket decoded51.8 KiB51.8 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages16160 (0.0%)21
ClaudeTotal thread wire12.6 KiB12.6 KiB−15 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.3 KiB6.3 KiB−4 B (−0.1%)7.3 KiB
ClaudeLive turn WebSocket wire6.3 KiB6.3 KiB−11 B (−0.2%)7.8 KiB
ClaudeLive turn WebSocket decoded52.7 KiB52.7 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages16160 (0.0%)21

Baseline: 36f4314 · PR result: f756913 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 99.9 KiB
  • Claude decoded thread snapshot: 100.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

ghost 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

Reviewed the changed web UI surfaces (shared WorkspacePageHeader/WorkspacePageContainer extraction, sidebar row/footer rework, settings layout widths, toggle/segmented variants, context-menu fallback icons, composer chip metrics, themed toolbar variable swap).

Verified as safe:

  • WorkspacePageHeader reproduces the previous per-surface geometry: --workspace-topbar-height resolves to 52px and to env(titlebar-area-height) under .wco, drag-region is still gated on Electron, COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS is retained, data-chat-header still forwards (so the themed toolbar rules keep applying), and className is merged last so call sites keep ownership. Passing reserveNativeControls in the browser is inert because wco: only matches Electron's .wco root.
  • --toolbar-control-foreground is defined in both the default token block and the html[data-theme-id] bridge, so the index.css swap does not drop a variable.
  • SettingsPageContainer keeps the fade/padding pairing: [--topbar-scroll-fade-height:1.5rem] sm:[...] is required to neutralise the utility's @variant sm bump, and pt-6 matches the 1.5rem band, same as the pull-requests page.
  • separatorBefore is honoured by both renderers of ContextMenuItem (Electron template + showContextMenuFallback), and the new copy submenu parent id is never dispatched.

Three consistency findings below; no visual or behavioural regression was identified.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
Comment threadapps/web/src/components/ui/segmented-tabs.tsx Outdated
@macroscopeapp

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at f756913

Macroscope's review found this PR approvable — Mechanical refactor extracting duplicated header and sidebar menu styling into shared components (WorkspacePageHeader, SidebarUtilityMenu). No behavioral changes - same CSS classes applied from a centralized location. Tests updated accordingly.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from 93043b7 to f181757CompareAugust 16, 2026 01:36

ghost 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 f181757. Configure here.

Comment threadapps/desktop/src/electron/ElectronMenu.ts Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 16, 2026

ghost 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 surfaces for shared-primitive, Tailwind-ownership and layout-preservation consistency. The header/container consolidation (WorkspacePageHeader/WorkspacePageContainer) preserves topbar height, WCO inset, drag region, safe-area padding and the collapsed-sidebar transition, the new micro button size correctly extends the primitive contract instead of hand-rolling the sidebar row actions, and the themed toolbar-control rule change is consistent with the existing [data-chat-header] control rule. Two smaller items below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/settings/SettingsSidebarNav.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from f181757 to 27bb7f4CompareAugust 16, 2026 01:51
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 16, 2026 01:52

Dismissing prior approval to re-evaluate 27bb7f4

ghost 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 items in the changed web UI scope. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from e20c680 to bc08174CompareAugust 16, 2026 23:06

ghost 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 on the changed lines. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/composerInlineChip.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from bc08174 to 8f1ea22CompareAugust 17, 2026 16:14

ghost 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 UI changes for shared-component and Tailwind-ownership consistency. Two findings, both about the new shared contracts introduced here; the WorkspacePageHeader extraction, the Button size="micro"/icon-micro migration of the sidebar row actions, and the themed --toolbar-control-foreground alignment otherwise look correct and preserve focus-visible, coarse hit targets, drag regions and titlebar insets.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/contextMenuFallback.ts Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 8f1ea22 to d8a25c9CompareAugust 17, 2026 19:18

ghost 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 icon-consistency findings in the changed context-menu code. Everything else in this revision looks consistent: the new WorkspacePageHeader reproduces the Electron/WCO geometry it replaces (--workspace-topbar-height resolves to env(titlebar-area-height, 52px) under .wco, and wco: selectors outrank the new sm: padding on specificity), micro now shares icon-micro's radius/icon contract, the sidebar hover actions all run through Button variant="ghost-muted", the fallback divider matches MenuSeparator, and every SettingsPageContainer caller now uses the width prop instead of a call-site max-w-*.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
Comment threadapps/web/src/contextMenuFallback.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from d8a25c9 to 904f059CompareAugust 17, 2026 19:35
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from ba1df53 to 883bf98CompareAugust 17, 2026 20:02

ghost 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: one finding — a shared component's API is widened with a prop that has no consumer in this PR. Everything else in the changed web UI looks consistent with the shared component system (the fallback menu divider now matches MenuSeparator, the fallback icon sizes match MenuItem's responsive contract, the sidebar lifecycle actions are on Button size="icon-micro"|"micro" variant="ghost-muted", micro shares icon-micro's radius, and WorkspacePageHeader/WorkspacePageContainer preserve the WCO inset, safe-area padding, drag region and collapsed-sidebar inset of the headers they replace).

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspaceBreadcrumb.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 883bf98 to a323f96CompareAugust 17, 2026 20:14

ghost 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: the new shared page frame lands with a single consumer while a near-identical literal frame remains in the pull-requests route.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated

ghost 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: the new Copy submenu makes three previously top-level actions unreachable without a pointer in the browser context-menu fallback. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 86a90de to 5a6ab07CompareAugust 19, 2026 04:37
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 19, 2026
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 5a6ab07 to 528d2c9CompareAugust 19, 2026 05:16

ghost 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 shared-header extraction, the settings container/width contract, the sidebar row control migration, and the toolbar theming change. The WorkspacePageHeader migration preserves the previous geometry (--workspace-topbar-height already resolves env(titlebar-area-height) under .wco, and wco: outranks sm: on specificity, so the native-controls inset still wins), and the new micro size now matches icon-micro's radius. Two findings below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/routes/-chatIndexTitlebar.test.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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: two findings in the sidebar row control migration and the scoped new-thread button. Everything else in the header/settings-layout consolidation looks consistent with the shared primitives.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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 on the new micro button size: it sets text-xs (and a size-3 icon rule) without overriding the base's sm: step, so the contract flips at ≥640px. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from a22960d to f756913CompareAugust 19, 2026 06:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@maria-rcks
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

feat(web): unify workspace navigation - #7153

Merged
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh
Aug 19, 2026
Merged

feat(web): unify workspace navigation#7153
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Adds one shared workspace header for chat, empty states, Settings, project settings, and onboarding.
  • Moves Settings, Usage, and Pull Requests navigation into the sidebar footer, with one consistent Back action on those pages.
  • Centralizes Settings content widths and scroll padding.

Screenshots

Direct parent on the left; this PR on the right. Same viewport and copied application state.

Settings layout

BeforeAfter
Settings layout beforeSettings layout after

Why

Workspace navigation and page headers were duplicated across several routes. This PR keeps only that shared layout work. Usage, Pull Requests, terminal, composer, tool lifecycle, and tool activity stay in separate reviews.

The independent thread action menu redesign remains in #7476.

Validation

  • Focused workspace header and Settings layout tests
  • Web typecheck
  • Browser verification of the Settings header, wide content layout, and shared Back footer

Stack order

  1. feat(web): unify workspace navigation #7153 workspace navigation, this PR
  2. feat(web): redesign usage insights #7147 Usage
  3. feat(web): refresh pull request details #7148 Pull Requests
  4. feat(web): improve terminal workspace controls #7149 terminal
  5. feat(web): attach composer state drawers #7150 composer
  6. fix(server): preserve tool lifecycle identity #7151 tool lifecycle projection
  7. feat(web): collapse tool activity into one line #7152 tool activity UI

Built with GPT-5.6-sol in the Codex harness.


Note

Low Risk
Mostly presentational refactors and shared navigation wiring; no auth, data, or API behavior changes in the diff.

Overview
Unifies workspace top-bar chrome by adding WorkspacePageHeader and swapping duplicated <header> / Electron title-bar markup in chat (ChatView), empty thread state, settings layout, project settings, and hosted onboarding for that shared wrapper (electron, reserveNativeControls, collapsed-sidebar inset, safe-area padding).

Consolidates sidebar footer navigation by extracting SidebarUtilityMenu from SidebarChromeFooter (Settings / Usage / Pull Requests icon shortcuts, Back when on settings, usage, or pull-requests routes, with history.back when possible). Settings sidebar footer now reuses the same menu instead of its own Back handler.

Tweaks settings content layout via SettingsPageContainerwidth presets (readable / wide / expanded) and updated scroll-area padding; Keybindings and Diagnostics opt into wider max widths. Titlebar geometry expectations move to WorkspacePageHeader in the chat index titlebar test.

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

Note

Unify workspace navigation headers into a shared WorkspacePageHeader component

  • Introduces WorkspacePageHeader.tsx, a reusable header that centralizes top-bar geometry, drag-region behavior, and native-control inset padding for Electron.
  • Replaces duplicated inline <header> markup and COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS logic across chat, onboarding, settings, and project settings views.
  • Centralizes sidebar footer utilities into a new SidebarUtilityMenu component in SidebarChrome.tsx; the Back button now prefers history.back() over navigating to /.
  • Standardizes SettingsPageContainer with a width prop ('readable' | 'wide' | 'expanded') and consistent padding, replacing per-page max-w-* classNames.

Macroscope summarized f756913.

@coderabbitai

ghost commented Aug 16, 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: 7d6074b3-0eb4-4b5e-a908-0906b9374f98

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-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 16, 2026
@maria-rcksmaria-rcks mentioned this pull request Aug 16, 2026
@github-actionsgithub-actionsBot added the size:XL 500-999 changed lines (additions + deletions). label Aug 16, 2026
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@github-actions

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire12.6 KiB12.6 KiB+11 B (+0.1%)15.1 KiB
CodexThread snapshot wire6.3 KiB6.3 KiB+4 B (+0.1%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB+7 B (+0.1%)7.8 KiB
CodexLive turn WebSocket decoded51.8 KiB51.8 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages16160 (0.0%)21
ClaudeTotal thread wire12.6 KiB12.6 KiB−15 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.3 KiB6.3 KiB−4 B (−0.1%)7.3 KiB
ClaudeLive turn WebSocket wire6.3 KiB6.3 KiB−11 B (−0.2%)7.8 KiB
ClaudeLive turn WebSocket decoded52.7 KiB52.7 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages16160 (0.0%)21

Baseline: 36f4314 · PR result: f756913 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 99.9 KiB
  • Claude decoded thread snapshot: 100.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

ghost 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

Reviewed the changed web UI surfaces (shared WorkspacePageHeader/WorkspacePageContainer extraction, sidebar row/footer rework, settings layout widths, toggle/segmented variants, context-menu fallback icons, composer chip metrics, themed toolbar variable swap).

Verified as safe:

  • WorkspacePageHeader reproduces the previous per-surface geometry: --workspace-topbar-height resolves to 52px and to env(titlebar-area-height) under .wco, drag-region is still gated on Electron, COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS is retained, data-chat-header still forwards (so the themed toolbar rules keep applying), and className is merged last so call sites keep ownership. Passing reserveNativeControls in the browser is inert because wco: only matches Electron's .wco root.
  • --toolbar-control-foreground is defined in both the default token block and the html[data-theme-id] bridge, so the index.css swap does not drop a variable.
  • SettingsPageContainer keeps the fade/padding pairing: [--topbar-scroll-fade-height:1.5rem] sm:[...] is required to neutralise the utility's @variant sm bump, and pt-6 matches the 1.5rem band, same as the pull-requests page.
  • separatorBefore is honoured by both renderers of ContextMenuItem (Electron template + showContextMenuFallback), and the new copy submenu parent id is never dispatched.

Three consistency findings below; no visual or behavioural regression was identified.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
Comment threadapps/web/src/components/ui/segmented-tabs.tsx Outdated
@macroscopeapp

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at f756913

Macroscope's review found this PR approvable — Mechanical refactor extracting duplicated header and sidebar menu styling into shared components (WorkspacePageHeader, SidebarUtilityMenu). No behavioral changes - same CSS classes applied from a centralized location. Tests updated accordingly.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from 93043b7 to f181757CompareAugust 16, 2026 01:36

ghost 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 f181757. Configure here.

Comment threadapps/desktop/src/electron/ElectronMenu.ts Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 16, 2026

ghost 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 surfaces for shared-primitive, Tailwind-ownership and layout-preservation consistency. The header/container consolidation (WorkspacePageHeader/WorkspacePageContainer) preserves topbar height, WCO inset, drag region, safe-area padding and the collapsed-sidebar transition, the new micro button size correctly extends the primitive contract instead of hand-rolling the sidebar row actions, and the themed toolbar-control rule change is consistent with the existing [data-chat-header] control rule. Two smaller items below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/settings/SettingsSidebarNav.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from f181757 to 27bb7f4CompareAugust 16, 2026 01:51
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 16, 2026 01:52

Dismissing prior approval to re-evaluate 27bb7f4

ghost 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 items in the changed web UI scope. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from e20c680 to bc08174CompareAugust 16, 2026 23:06

ghost 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 on the changed lines. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/composerInlineChip.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from bc08174 to 8f1ea22CompareAugust 17, 2026 16:14

ghost 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 UI changes for shared-component and Tailwind-ownership consistency. Two findings, both about the new shared contracts introduced here; the WorkspacePageHeader extraction, the Button size="micro"/icon-micro migration of the sidebar row actions, and the themed --toolbar-control-foreground alignment otherwise look correct and preserve focus-visible, coarse hit targets, drag regions and titlebar insets.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/contextMenuFallback.ts Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 8f1ea22 to d8a25c9CompareAugust 17, 2026 19:18

ghost 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 icon-consistency findings in the changed context-menu code. Everything else in this revision looks consistent: the new WorkspacePageHeader reproduces the Electron/WCO geometry it replaces (--workspace-topbar-height resolves to env(titlebar-area-height, 52px) under .wco, and wco: selectors outrank the new sm: padding on specificity), micro now shares icon-micro's radius/icon contract, the sidebar hover actions all run through Button variant="ghost-muted", the fallback divider matches MenuSeparator, and every SettingsPageContainer caller now uses the width prop instead of a call-site max-w-*.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
Comment threadapps/web/src/contextMenuFallback.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from d8a25c9 to 904f059CompareAugust 17, 2026 19:35
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from ba1df53 to 883bf98CompareAugust 17, 2026 20:02

ghost 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: one finding — a shared component's API is widened with a prop that has no consumer in this PR. Everything else in the changed web UI looks consistent with the shared component system (the fallback menu divider now matches MenuSeparator, the fallback icon sizes match MenuItem's responsive contract, the sidebar lifecycle actions are on Button size="icon-micro"|"micro" variant="ghost-muted", micro shares icon-micro's radius, and WorkspacePageHeader/WorkspacePageContainer preserve the WCO inset, safe-area padding, drag region and collapsed-sidebar inset of the headers they replace).

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspaceBreadcrumb.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 883bf98 to a323f96CompareAugust 17, 2026 20:14

ghost 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: the new shared page frame lands with a single consumer while a near-identical literal frame remains in the pull-requests route.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated

ghost 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: the new Copy submenu makes three previously top-level actions unreachable without a pointer in the browser context-menu fallback. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 86a90de to 5a6ab07CompareAugust 19, 2026 04:37
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 19, 2026
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 5a6ab07 to 528d2c9CompareAugust 19, 2026 05:16

ghost 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 shared-header extraction, the settings container/width contract, the sidebar row control migration, and the toolbar theming change. The WorkspacePageHeader migration preserves the previous geometry (--workspace-topbar-height already resolves env(titlebar-area-height) under .wco, and wco: outranks sm: on specificity, so the native-controls inset still wins), and the new micro size now matches icon-micro's radius. Two findings below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/routes/-chatIndexTitlebar.test.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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: two findings in the sidebar row control migration and the scoped new-thread button. Everything else in the header/settings-layout consolidation looks consistent with the shared primitives.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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 on the new micro button size: it sets text-xs (and a size-3 icon rule) without overriding the base's sm: step, so the contract flips at ≥640px. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from a22960d to f756913CompareAugust 19, 2026 06:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@maria-rcks
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(web): unify workspace navigation - #7153

Merged
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh
Aug 19, 2026
Merged

feat(web): unify workspace navigation#7153
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Adds one shared workspace header for chat, empty states, Settings, project settings, and onboarding.
  • Moves Settings, Usage, and Pull Requests navigation into the sidebar footer, with one consistent Back action on those pages.
  • Centralizes Settings content widths and scroll padding.

Screenshots

Direct parent on the left; this PR on the right. Same viewport and copied application state.

Settings layout

BeforeAfter
Settings layout beforeSettings layout after

Why

Workspace navigation and page headers were duplicated across several routes. This PR keeps only that shared layout work. Usage, Pull Requests, terminal, composer, tool lifecycle, and tool activity stay in separate reviews.

The independent thread action menu redesign remains in #7476.

Validation

  • Focused workspace header and Settings layout tests
  • Web typecheck
  • Browser verification of the Settings header, wide content layout, and shared Back footer

Stack order

  1. feat(web): unify workspace navigation #7153 workspace navigation, this PR
  2. feat(web): redesign usage insights #7147 Usage
  3. feat(web): refresh pull request details #7148 Pull Requests
  4. feat(web): improve terminal workspace controls #7149 terminal
  5. feat(web): attach composer state drawers #7150 composer
  6. fix(server): preserve tool lifecycle identity #7151 tool lifecycle projection
  7. feat(web): collapse tool activity into one line #7152 tool activity UI

Built with GPT-5.6-sol in the Codex harness.


Note

Low Risk
Mostly presentational refactors and shared navigation wiring; no auth, data, or API behavior changes in the diff.

Overview
Unifies workspace top-bar chrome by adding WorkspacePageHeader and swapping duplicated <header> / Electron title-bar markup in chat (ChatView), empty thread state, settings layout, project settings, and hosted onboarding for that shared wrapper (electron, reserveNativeControls, collapsed-sidebar inset, safe-area padding).

Consolidates sidebar footer navigation by extracting SidebarUtilityMenu from SidebarChromeFooter (Settings / Usage / Pull Requests icon shortcuts, Back when on settings, usage, or pull-requests routes, with history.back when possible). Settings sidebar footer now reuses the same menu instead of its own Back handler.

Tweaks settings content layout via SettingsPageContainerwidth presets (readable / wide / expanded) and updated scroll-area padding; Keybindings and Diagnostics opt into wider max widths. Titlebar geometry expectations move to WorkspacePageHeader in the chat index titlebar test.

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

Note

Unify workspace navigation headers into a shared WorkspacePageHeader component

  • Introduces WorkspacePageHeader.tsx, a reusable header that centralizes top-bar geometry, drag-region behavior, and native-control inset padding for Electron.
  • Replaces duplicated inline <header> markup and COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS logic across chat, onboarding, settings, and project settings views.
  • Centralizes sidebar footer utilities into a new SidebarUtilityMenu component in SidebarChrome.tsx; the Back button now prefers history.back() over navigating to /.
  • Standardizes SettingsPageContainer with a width prop ('readable' | 'wide' | 'expanded') and consistent padding, replacing per-page max-w-* classNames.

Macroscope summarized f756913.

@coderabbitai

ghost commented Aug 16, 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: 7d6074b3-0eb4-4b5e-a908-0906b9374f98

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-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 16, 2026
@maria-rcksmaria-rcks mentioned this pull request Aug 16, 2026
@github-actionsgithub-actionsBot added the size:XL 500-999 changed lines (additions + deletions). label Aug 16, 2026
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@github-actions

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire12.6 KiB12.6 KiB+11 B (+0.1%)15.1 KiB
CodexThread snapshot wire6.3 KiB6.3 KiB+4 B (+0.1%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB+7 B (+0.1%)7.8 KiB
CodexLive turn WebSocket decoded51.8 KiB51.8 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages16160 (0.0%)21
ClaudeTotal thread wire12.6 KiB12.6 KiB−15 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.3 KiB6.3 KiB−4 B (−0.1%)7.3 KiB
ClaudeLive turn WebSocket wire6.3 KiB6.3 KiB−11 B (−0.2%)7.8 KiB
ClaudeLive turn WebSocket decoded52.7 KiB52.7 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages16160 (0.0%)21

Baseline: 36f4314 · PR result: f756913 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 99.9 KiB
  • Claude decoded thread snapshot: 100.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

ghost 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

Reviewed the changed web UI surfaces (shared WorkspacePageHeader/WorkspacePageContainer extraction, sidebar row/footer rework, settings layout widths, toggle/segmented variants, context-menu fallback icons, composer chip metrics, themed toolbar variable swap).

Verified as safe:

  • WorkspacePageHeader reproduces the previous per-surface geometry: --workspace-topbar-height resolves to 52px and to env(titlebar-area-height) under .wco, drag-region is still gated on Electron, COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS is retained, data-chat-header still forwards (so the themed toolbar rules keep applying), and className is merged last so call sites keep ownership. Passing reserveNativeControls in the browser is inert because wco: only matches Electron's .wco root.
  • --toolbar-control-foreground is defined in both the default token block and the html[data-theme-id] bridge, so the index.css swap does not drop a variable.
  • SettingsPageContainer keeps the fade/padding pairing: [--topbar-scroll-fade-height:1.5rem] sm:[...] is required to neutralise the utility's @variant sm bump, and pt-6 matches the 1.5rem band, same as the pull-requests page.
  • separatorBefore is honoured by both renderers of ContextMenuItem (Electron template + showContextMenuFallback), and the new copy submenu parent id is never dispatched.

Three consistency findings below; no visual or behavioural regression was identified.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
Comment threadapps/web/src/components/ui/segmented-tabs.tsx Outdated
@macroscopeapp

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at f756913

Macroscope's review found this PR approvable — Mechanical refactor extracting duplicated header and sidebar menu styling into shared components (WorkspacePageHeader, SidebarUtilityMenu). No behavioral changes - same CSS classes applied from a centralized location. Tests updated accordingly.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from 93043b7 to f181757CompareAugust 16, 2026 01:36

ghost 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 f181757. Configure here.

Comment threadapps/desktop/src/electron/ElectronMenu.ts Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 16, 2026

ghost 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 surfaces for shared-primitive, Tailwind-ownership and layout-preservation consistency. The header/container consolidation (WorkspacePageHeader/WorkspacePageContainer) preserves topbar height, WCO inset, drag region, safe-area padding and the collapsed-sidebar transition, the new micro button size correctly extends the primitive contract instead of hand-rolling the sidebar row actions, and the themed toolbar-control rule change is consistent with the existing [data-chat-header] control rule. Two smaller items below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/settings/SettingsSidebarNav.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from f181757 to 27bb7f4CompareAugust 16, 2026 01:51
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 16, 2026 01:52

Dismissing prior approval to re-evaluate 27bb7f4

ghost 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 items in the changed web UI scope. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from e20c680 to bc08174CompareAugust 16, 2026 23:06

ghost 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 on the changed lines. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/composerInlineChip.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from bc08174 to 8f1ea22CompareAugust 17, 2026 16:14

ghost 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 UI changes for shared-component and Tailwind-ownership consistency. Two findings, both about the new shared contracts introduced here; the WorkspacePageHeader extraction, the Button size="micro"/icon-micro migration of the sidebar row actions, and the themed --toolbar-control-foreground alignment otherwise look correct and preserve focus-visible, coarse hit targets, drag regions and titlebar insets.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/contextMenuFallback.ts Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 8f1ea22 to d8a25c9CompareAugust 17, 2026 19:18

ghost 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 icon-consistency findings in the changed context-menu code. Everything else in this revision looks consistent: the new WorkspacePageHeader reproduces the Electron/WCO geometry it replaces (--workspace-topbar-height resolves to env(titlebar-area-height, 52px) under .wco, and wco: selectors outrank the new sm: padding on specificity), micro now shares icon-micro's radius/icon contract, the sidebar hover actions all run through Button variant="ghost-muted", the fallback divider matches MenuSeparator, and every SettingsPageContainer caller now uses the width prop instead of a call-site max-w-*.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
Comment threadapps/web/src/contextMenuFallback.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from d8a25c9 to 904f059CompareAugust 17, 2026 19:35
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from ba1df53 to 883bf98CompareAugust 17, 2026 20:02

ghost 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: one finding — a shared component's API is widened with a prop that has no consumer in this PR. Everything else in the changed web UI looks consistent with the shared component system (the fallback menu divider now matches MenuSeparator, the fallback icon sizes match MenuItem's responsive contract, the sidebar lifecycle actions are on Button size="icon-micro"|"micro" variant="ghost-muted", micro shares icon-micro's radius, and WorkspacePageHeader/WorkspacePageContainer preserve the WCO inset, safe-area padding, drag region and collapsed-sidebar inset of the headers they replace).

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspaceBreadcrumb.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 883bf98 to a323f96CompareAugust 17, 2026 20:14

ghost 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: the new shared page frame lands with a single consumer while a near-identical literal frame remains in the pull-requests route.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated

ghost 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: the new Copy submenu makes three previously top-level actions unreachable without a pointer in the browser context-menu fallback. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 86a90de to 5a6ab07CompareAugust 19, 2026 04:37
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 19, 2026
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 5a6ab07 to 528d2c9CompareAugust 19, 2026 05:16

ghost 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 shared-header extraction, the settings container/width contract, the sidebar row control migration, and the toolbar theming change. The WorkspacePageHeader migration preserves the previous geometry (--workspace-topbar-height already resolves env(titlebar-area-height) under .wco, and wco: outranks sm: on specificity, so the native-controls inset still wins), and the new micro size now matches icon-micro's radius. Two findings below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/routes/-chatIndexTitlebar.test.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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: two findings in the sidebar row control migration and the scoped new-thread button. Everything else in the header/settings-layout consolidation looks consistent with the shared primitives.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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 on the new micro button size: it sets text-xs (and a size-3 icon rule) without overriding the base's sm: step, so the contract flips at ≥640px. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from a22960d to f756913CompareAugust 19, 2026 06:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@maria-rcks
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

feat(web): unify workspace navigation - #7153

Merged
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh
Aug 19, 2026
Merged

feat(web): unify workspace navigation#7153
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Adds one shared workspace header for chat, empty states, Settings, project settings, and onboarding.
  • Moves Settings, Usage, and Pull Requests navigation into the sidebar footer, with one consistent Back action on those pages.
  • Centralizes Settings content widths and scroll padding.

Screenshots

Direct parent on the left; this PR on the right. Same viewport and copied application state.

Settings layout

BeforeAfter
Settings layout beforeSettings layout after

Why

Workspace navigation and page headers were duplicated across several routes. This PR keeps only that shared layout work. Usage, Pull Requests, terminal, composer, tool lifecycle, and tool activity stay in separate reviews.

The independent thread action menu redesign remains in #7476.

Validation

  • Focused workspace header and Settings layout tests
  • Web typecheck
  • Browser verification of the Settings header, wide content layout, and shared Back footer

Stack order

  1. feat(web): unify workspace navigation #7153 workspace navigation, this PR
  2. feat(web): redesign usage insights #7147 Usage
  3. feat(web): refresh pull request details #7148 Pull Requests
  4. feat(web): improve terminal workspace controls #7149 terminal
  5. feat(web): attach composer state drawers #7150 composer
  6. fix(server): preserve tool lifecycle identity #7151 tool lifecycle projection
  7. feat(web): collapse tool activity into one line #7152 tool activity UI

Built with GPT-5.6-sol in the Codex harness.


Note

Low Risk
Mostly presentational refactors and shared navigation wiring; no auth, data, or API behavior changes in the diff.

Overview
Unifies workspace top-bar chrome by adding WorkspacePageHeader and swapping duplicated <header> / Electron title-bar markup in chat (ChatView), empty thread state, settings layout, project settings, and hosted onboarding for that shared wrapper (electron, reserveNativeControls, collapsed-sidebar inset, safe-area padding).

Consolidates sidebar footer navigation by extracting SidebarUtilityMenu from SidebarChromeFooter (Settings / Usage / Pull Requests icon shortcuts, Back when on settings, usage, or pull-requests routes, with history.back when possible). Settings sidebar footer now reuses the same menu instead of its own Back handler.

Tweaks settings content layout via SettingsPageContainerwidth presets (readable / wide / expanded) and updated scroll-area padding; Keybindings and Diagnostics opt into wider max widths. Titlebar geometry expectations move to WorkspacePageHeader in the chat index titlebar test.

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

Note

Unify workspace navigation headers into a shared WorkspacePageHeader component

  • Introduces WorkspacePageHeader.tsx, a reusable header that centralizes top-bar geometry, drag-region behavior, and native-control inset padding for Electron.
  • Replaces duplicated inline <header> markup and COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS logic across chat, onboarding, settings, and project settings views.
  • Centralizes sidebar footer utilities into a new SidebarUtilityMenu component in SidebarChrome.tsx; the Back button now prefers history.back() over navigating to /.
  • Standardizes SettingsPageContainer with a width prop ('readable' | 'wide' | 'expanded') and consistent padding, replacing per-page max-w-* classNames.

Macroscope summarized f756913.

@coderabbitai

ghost commented Aug 16, 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: 7d6074b3-0eb4-4b5e-a908-0906b9374f98

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-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 16, 2026
@maria-rcksmaria-rcks mentioned this pull request Aug 16, 2026
@github-actionsgithub-actionsBot added the size:XL 500-999 changed lines (additions + deletions). label Aug 16, 2026
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@github-actions

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire12.6 KiB12.6 KiB+11 B (+0.1%)15.1 KiB
CodexThread snapshot wire6.3 KiB6.3 KiB+4 B (+0.1%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB+7 B (+0.1%)7.8 KiB
CodexLive turn WebSocket decoded51.8 KiB51.8 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages16160 (0.0%)21
ClaudeTotal thread wire12.6 KiB12.6 KiB−15 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.3 KiB6.3 KiB−4 B (−0.1%)7.3 KiB
ClaudeLive turn WebSocket wire6.3 KiB6.3 KiB−11 B (−0.2%)7.8 KiB
ClaudeLive turn WebSocket decoded52.7 KiB52.7 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages16160 (0.0%)21

Baseline: 36f4314 · PR result: f756913 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 99.9 KiB
  • Claude decoded thread snapshot: 100.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

ghost 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

Reviewed the changed web UI surfaces (shared WorkspacePageHeader/WorkspacePageContainer extraction, sidebar row/footer rework, settings layout widths, toggle/segmented variants, context-menu fallback icons, composer chip metrics, themed toolbar variable swap).

Verified as safe:

  • WorkspacePageHeader reproduces the previous per-surface geometry: --workspace-topbar-height resolves to 52px and to env(titlebar-area-height) under .wco, drag-region is still gated on Electron, COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS is retained, data-chat-header still forwards (so the themed toolbar rules keep applying), and className is merged last so call sites keep ownership. Passing reserveNativeControls in the browser is inert because wco: only matches Electron's .wco root.
  • --toolbar-control-foreground is defined in both the default token block and the html[data-theme-id] bridge, so the index.css swap does not drop a variable.
  • SettingsPageContainer keeps the fade/padding pairing: [--topbar-scroll-fade-height:1.5rem] sm:[...] is required to neutralise the utility's @variant sm bump, and pt-6 matches the 1.5rem band, same as the pull-requests page.
  • separatorBefore is honoured by both renderers of ContextMenuItem (Electron template + showContextMenuFallback), and the new copy submenu parent id is never dispatched.

Three consistency findings below; no visual or behavioural regression was identified.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
Comment threadapps/web/src/components/ui/segmented-tabs.tsx Outdated
@macroscopeapp

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at f756913

Macroscope's review found this PR approvable — Mechanical refactor extracting duplicated header and sidebar menu styling into shared components (WorkspacePageHeader, SidebarUtilityMenu). No behavioral changes - same CSS classes applied from a centralized location. Tests updated accordingly.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from 93043b7 to f181757CompareAugust 16, 2026 01:36

ghost 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 f181757. Configure here.

Comment threadapps/desktop/src/electron/ElectronMenu.ts Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 16, 2026

ghost 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 surfaces for shared-primitive, Tailwind-ownership and layout-preservation consistency. The header/container consolidation (WorkspacePageHeader/WorkspacePageContainer) preserves topbar height, WCO inset, drag region, safe-area padding and the collapsed-sidebar transition, the new micro button size correctly extends the primitive contract instead of hand-rolling the sidebar row actions, and the themed toolbar-control rule change is consistent with the existing [data-chat-header] control rule. Two smaller items below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/settings/SettingsSidebarNav.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from f181757 to 27bb7f4CompareAugust 16, 2026 01:51
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 16, 2026 01:52

Dismissing prior approval to re-evaluate 27bb7f4

ghost 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 items in the changed web UI scope. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from e20c680 to bc08174CompareAugust 16, 2026 23:06

ghost 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 on the changed lines. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/composerInlineChip.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from bc08174 to 8f1ea22CompareAugust 17, 2026 16:14

ghost 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 UI changes for shared-component and Tailwind-ownership consistency. Two findings, both about the new shared contracts introduced here; the WorkspacePageHeader extraction, the Button size="micro"/icon-micro migration of the sidebar row actions, and the themed --toolbar-control-foreground alignment otherwise look correct and preserve focus-visible, coarse hit targets, drag regions and titlebar insets.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/contextMenuFallback.ts Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 8f1ea22 to d8a25c9CompareAugust 17, 2026 19:18

ghost 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 icon-consistency findings in the changed context-menu code. Everything else in this revision looks consistent: the new WorkspacePageHeader reproduces the Electron/WCO geometry it replaces (--workspace-topbar-height resolves to env(titlebar-area-height, 52px) under .wco, and wco: selectors outrank the new sm: padding on specificity), micro now shares icon-micro's radius/icon contract, the sidebar hover actions all run through Button variant="ghost-muted", the fallback divider matches MenuSeparator, and every SettingsPageContainer caller now uses the width prop instead of a call-site max-w-*.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
Comment threadapps/web/src/contextMenuFallback.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from d8a25c9 to 904f059CompareAugust 17, 2026 19:35
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from ba1df53 to 883bf98CompareAugust 17, 2026 20:02

ghost 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: one finding — a shared component's API is widened with a prop that has no consumer in this PR. Everything else in the changed web UI looks consistent with the shared component system (the fallback menu divider now matches MenuSeparator, the fallback icon sizes match MenuItem's responsive contract, the sidebar lifecycle actions are on Button size="icon-micro"|"micro" variant="ghost-muted", micro shares icon-micro's radius, and WorkspacePageHeader/WorkspacePageContainer preserve the WCO inset, safe-area padding, drag region and collapsed-sidebar inset of the headers they replace).

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspaceBreadcrumb.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 883bf98 to a323f96CompareAugust 17, 2026 20:14

ghost 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: the new shared page frame lands with a single consumer while a near-identical literal frame remains in the pull-requests route.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated

ghost 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: the new Copy submenu makes three previously top-level actions unreachable without a pointer in the browser context-menu fallback. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 86a90de to 5a6ab07CompareAugust 19, 2026 04:37
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 19, 2026
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 5a6ab07 to 528d2c9CompareAugust 19, 2026 05:16

ghost 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 shared-header extraction, the settings container/width contract, the sidebar row control migration, and the toolbar theming change. The WorkspacePageHeader migration preserves the previous geometry (--workspace-topbar-height already resolves env(titlebar-area-height) under .wco, and wco: outranks sm: on specificity, so the native-controls inset still wins), and the new micro size now matches icon-micro's radius. Two findings below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/routes/-chatIndexTitlebar.test.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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: two findings in the sidebar row control migration and the scoped new-thread button. Everything else in the header/settings-layout consolidation looks consistent with the shared primitives.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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 on the new micro button size: it sets text-xs (and a size-3 icon rule) without overriding the base's sm: step, so the contract flips at ≥640px. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from a22960d to f756913CompareAugust 19, 2026 06:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@maria-rcks
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

feat(web): unify workspace navigation - #7153

Merged
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh
Aug 19, 2026
Merged

feat(web): unify workspace navigation#7153
maria-rcks merged 4 commits into
mainfrom
agent/ui-workspace-refresh

Conversation

@maria-rcks

@maria-rcksmaria-rcks commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

What changed

  • Adds one shared workspace header for chat, empty states, Settings, project settings, and onboarding.
  • Moves Settings, Usage, and Pull Requests navigation into the sidebar footer, with one consistent Back action on those pages.
  • Centralizes Settings content widths and scroll padding.

Screenshots

Direct parent on the left; this PR on the right. Same viewport and copied application state.

Settings layout

BeforeAfter
Settings layout beforeSettings layout after

Why

Workspace navigation and page headers were duplicated across several routes. This PR keeps only that shared layout work. Usage, Pull Requests, terminal, composer, tool lifecycle, and tool activity stay in separate reviews.

The independent thread action menu redesign remains in #7476.

Validation

  • Focused workspace header and Settings layout tests
  • Web typecheck
  • Browser verification of the Settings header, wide content layout, and shared Back footer

Stack order

  1. feat(web): unify workspace navigation #7153 workspace navigation, this PR
  2. feat(web): redesign usage insights #7147 Usage
  3. feat(web): refresh pull request details #7148 Pull Requests
  4. feat(web): improve terminal workspace controls #7149 terminal
  5. feat(web): attach composer state drawers #7150 composer
  6. fix(server): preserve tool lifecycle identity #7151 tool lifecycle projection
  7. feat(web): collapse tool activity into one line #7152 tool activity UI

Built with GPT-5.6-sol in the Codex harness.


Note

Low Risk
Mostly presentational refactors and shared navigation wiring; no auth, data, or API behavior changes in the diff.

Overview
Unifies workspace top-bar chrome by adding WorkspacePageHeader and swapping duplicated <header> / Electron title-bar markup in chat (ChatView), empty thread state, settings layout, project settings, and hosted onboarding for that shared wrapper (electron, reserveNativeControls, collapsed-sidebar inset, safe-area padding).

Consolidates sidebar footer navigation by extracting SidebarUtilityMenu from SidebarChromeFooter (Settings / Usage / Pull Requests icon shortcuts, Back when on settings, usage, or pull-requests routes, with history.back when possible). Settings sidebar footer now reuses the same menu instead of its own Back handler.

Tweaks settings content layout via SettingsPageContainerwidth presets (readable / wide / expanded) and updated scroll-area padding; Keybindings and Diagnostics opt into wider max widths. Titlebar geometry expectations move to WorkspacePageHeader in the chat index titlebar test.

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

Note

Unify workspace navigation headers into a shared WorkspacePageHeader component

  • Introduces WorkspacePageHeader.tsx, a reusable header that centralizes top-bar geometry, drag-region behavior, and native-control inset padding for Electron.
  • Replaces duplicated inline <header> markup and COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS logic across chat, onboarding, settings, and project settings views.
  • Centralizes sidebar footer utilities into a new SidebarUtilityMenu component in SidebarChrome.tsx; the Back button now prefers history.back() over navigating to /.
  • Standardizes SettingsPageContainer with a width prop ('readable' | 'wide' | 'expanded') and consistent padding, replacing per-page max-w-* classNames.

Macroscope summarized f756913.

@coderabbitai

ghost commented Aug 16, 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: 7d6074b3-0eb4-4b5e-a908-0906b9374f98

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-actionsgithub-actionsBot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Aug 16, 2026
@maria-rcksmaria-rcks mentioned this pull request Aug 16, 2026
@github-actionsgithub-actionsBot added the size:XL 500-999 changed lines (additions + deletions). label Aug 16, 2026
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@github-actions

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ProviderMetricMain baselineThis PRImpactPR ceiling
CodexTotal thread wire12.6 KiB12.6 KiB+11 B (+0.1%)15.1 KiB
CodexThread snapshot wire6.3 KiB6.3 KiB+4 B (+0.1%)7.3 KiB
CodexLive turn WebSocket wire6.3 KiB6.3 KiB+7 B (+0.1%)7.8 KiB
CodexLive turn WebSocket decoded51.8 KiB51.8 KiB0 B (0.0%)66.4 KiB
CodexLive turn messages16160 (0.0%)21
ClaudeTotal thread wire12.6 KiB12.6 KiB−15 B (−0.1%)15.1 KiB
ClaudeThread snapshot wire6.3 KiB6.3 KiB−4 B (−0.1%)7.3 KiB
ClaudeLive turn WebSocket wire6.3 KiB6.3 KiB−11 B (−0.2%)7.8 KiB
ClaudeLive turn WebSocket decoded52.7 KiB52.7 KiB0 B (0.0%)66.4 KiB
ClaudeLive turn messages16160 (0.0%)21

Baseline: 36f4314 · PR result: f756913 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 99.9 KiB
  • Claude decoded thread snapshot: 100.6 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

ghost 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

Reviewed the changed web UI surfaces (shared WorkspacePageHeader/WorkspacePageContainer extraction, sidebar row/footer rework, settings layout widths, toggle/segmented variants, context-menu fallback icons, composer chip metrics, themed toolbar variable swap).

Verified as safe:

  • WorkspacePageHeader reproduces the previous per-surface geometry: --workspace-topbar-height resolves to 52px and to env(titlebar-area-height) under .wco, drag-region is still gated on Electron, COLLAPSED_SIDEBAR_TITLEBAR_INSET_CLASS is retained, data-chat-header still forwards (so the themed toolbar rules keep applying), and className is merged last so call sites keep ownership. Passing reserveNativeControls in the browser is inert because wco: only matches Electron's .wco root.
  • --toolbar-control-foreground is defined in both the default token block and the html[data-theme-id] bridge, so the index.css swap does not drop a variable.
  • SettingsPageContainer keeps the fade/padding pairing: [--topbar-scroll-fade-height:1.5rem] sm:[...] is required to neutralise the utility's @variant sm bump, and pt-6 matches the 1.5rem band, same as the pull-requests page.
  • separatorBefore is honoured by both renderers of ContextMenuItem (Electron template + showContextMenuFallback), and the new copy submenu parent id is never dispatched.

Three consistency findings below; no visual or behavioural regression was identified.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
Comment threadapps/web/src/components/ui/segmented-tabs.tsx Outdated
@macroscopeapp

ghost commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at f756913

Macroscope's review found this PR approvable — Mechanical refactor extracting duplicated header and sidebar menu styling into shared components (WorkspacePageHeader, SidebarUtilityMenu). No behavioral changes - same CSS classes applied from a centralized location. Tests updated accordingly.

You can add or adjust custom eligibility rules. Learn more.

@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from 93043b7 to f181757CompareAugust 16, 2026 01:36

ghost 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 f181757. Configure here.

Comment threadapps/desktop/src/electron/ElectronMenu.ts Outdated
macroscopeapp[bot]
macroscopeappBot previously approved these changes Aug 16, 2026

ghost 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 surfaces for shared-primitive, Tailwind-ownership and layout-preservation consistency. The header/container consolidation (WorkspacePageHeader/WorkspacePageContainer) preserves topbar height, WCO inset, drag region, safe-area padding and the collapsed-sidebar transition, the new micro button size correctly extends the primitive contract instead of hand-rolling the sidebar row actions, and the themed toolbar-control rule change is consistent with the existing [data-chat-header] control rule. Two smaller items below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/settings/SettingsSidebarNav.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from f181757 to 27bb7f4CompareAugust 16, 2026 01:51
@macroscopeapp
macroscopeappBot dismissed their stale reviewAugust 16, 2026 01:52

Dismissing prior approval to re-evaluate 27bb7f4

ghost 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 items in the changed web UI scope. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
Comment threadapps/web/src/components/chat/PanelLayoutControls.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch 2 times, most recently from e20c680 to bc08174CompareAugust 16, 2026 23:06

ghost 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 on the changed lines. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/composerInlineChip.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from bc08174 to 8f1ea22CompareAugust 17, 2026 16:14

ghost 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 UI changes for shared-component and Tailwind-ownership consistency. Two findings, both about the new shared contracts introduced here; the WorkspacePageHeader extraction, the Button size="micro"/icon-micro migration of the sidebar row actions, and the themed --toolbar-control-foreground alignment otherwise look correct and preserve focus-visible, coarse hit targets, drag regions and titlebar insets.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/contextMenuFallback.ts Outdated
Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 8f1ea22 to d8a25c9CompareAugust 17, 2026 19:18

ghost 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 icon-consistency findings in the changed context-menu code. Everything else in this revision looks consistent: the new WorkspacePageHeader reproduces the Electron/WCO geometry it replaces (--workspace-topbar-height resolves to env(titlebar-area-height, 52px) under .wco, and wco: selectors outrank the new sm: padding on specificity), micro now shares icon-micro's radius/icon contract, the sidebar hover actions all run through Button variant="ghost-muted", the fallback divider matches MenuSeparator, and every SettingsPageContainer caller now uses the width prop instead of a call-site max-w-*.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
Comment threadapps/web/src/contextMenuFallback.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from d8a25c9 to 904f059CompareAugust 17, 2026 19:35
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from ba1df53 to 883bf98CompareAugust 17, 2026 20:02

ghost 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: one finding — a shared component's API is widened with a prop that has no consumer in this PR. Everything else in the changed web UI looks consistent with the shared component system (the fallback menu divider now matches MenuSeparator, the fallback icon sizes match MenuItem's responsive contract, the sidebar lifecycle actions are on Button size="icon-micro"|"micro" variant="ghost-muted", micro shares icon-micro's radius, and WorkspacePageHeader/WorkspacePageContainer preserve the WCO inset, safe-area padding, drag region and collapsed-sidebar inset of the headers they replace).

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspaceBreadcrumb.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 883bf98 to a323f96CompareAugust 17, 2026 20:14

ghost 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: the new shared page frame lands with a single consumer while a near-identical literal frame remains in the pull-requests route.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/WorkspacePageContainer.tsx Outdated

ghost 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: the new Copy submenu makes three previously top-level actions unreachable without a pointer in the browser context-menu fallback. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/threadActionMenu.logic.ts Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 86a90de to 5a6ab07CompareAugust 19, 2026 04:37
@github-actionsgithub-actionsBot added size:L 100-499 changed lines (additions + deletions). and removed size:XL 500-999 changed lines (additions + deletions). labels Aug 19, 2026
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from 5a6ab07 to 528d2c9CompareAugust 19, 2026 05:16

ghost 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 shared-header extraction, the settings container/width contract, the sidebar row control migration, and the toolbar theming change. The WorkspacePageHeader migration preserves the previous geometry (--workspace-topbar-height already resolves env(titlebar-area-height) under .wco, and wco: outranks sm: on specificity, so the native-controls inset still wins), and the new micro size now matches icon-micro's radius. Two findings below.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/routes/-chatIndexTitlebar.test.ts Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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: two findings in the sidebar row control migration and the scoped new-thread button. Everything else in the header/settings-layout consolidation looks consistent with the shared primitives.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/Sidebar.tsx Outdated
Comment threadapps/web/src/components/Sidebar.tsx Outdated

ghost 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 on the new micro button size: it sets text-xs (and a size-3 icon rule) without overriding the base's sm: step, so the contract flips at ≥640px. Details inline.

Posted via Macroscope — UI Consistency

Comment threadapps/web/src/components/ui/button.tsx Outdated
@maria-rcks
maria-rcksforce-pushed the agent/ui-workspace-refresh branch from a22960d to f756913CompareAugust 19, 2026 06:17
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L100-499 changed lines (additions + deletions).vouch:trustedPR 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

@maria-rcks