desktop: move global search into sidebar header and remove vestigial top band#1150
Merged
Conversation
added 6 commits
June 19, 2026 14:25
…top band Move the global search out of the center-column topbar into the pinned sidebar header (search on top, Home/nav below, always visible above the scroll region), anchoring the results popover to the sidebar column. With search gone from the topbar, remove the now-empty ~40px chrome inset above the channel and thread/aux pane headers so they sit flush at the top. The macOS window-controls row and the sidebar's own top-chrome inset are preserved; window drag/maximize is unchanged (a window-global top-44px handler, untouched here). Home/inbox panes keep their inset via the default-off `flush` prop on TopChromeInsetHeader. Co-authored-by: Tyler Longwell <tlongwell@block.xyz> Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
Co-authored-by: Tyler Longwell <tlongwell@block.xyz> Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
Co-authored-by: Tyler Longwell <tlongwell@block.xyz> Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
The inbox loading skeleton and the no-feed error state still carried the pt-14 top inset, leaving a transient vestigial band before the real flush headers rendered. Drop it to match the flush treatment applied to the rest of the Home/Agents/Workflows/Projects panels. Co-authored-by: Tyler Longwell <tlongwell@block.xyz> Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
Removing the vestigial TopChromeBackdrop also dropped the pt-14 that doubled as clearance for the global window-drag region (AppTopChrome's fixed top-0 z-20 h-10 strip, which is draggable so it can't be pointer-events-none). With only pt-4, the first-row controls (Workflows' Create CTA, Projects' back button, the Agents library header) landed under that strip and Playwright clicks were intercepted — the Desktop Smoke E2E failure Max flagged. Restore clearance with the purpose-built topChromeInset.padding token (40px = the drag-strip height) instead of an arbitrary pad, on the Workflows/Projects/Agents loaded views, their loading skeletons (CardListLoadingBody, AgentsLoadingBody), the Projects detail screen, and the Home feed-error state. No visible band returns; interactive content just clears the drag strip. navigation + workflows + agents e2e all green. Co-authored-by: Tyler Longwell <tlongwell@block.xyz> Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
The vestigial-band cleanup dropped topChromeInset.padding from the channel header chrome wrapper. Every other flush panel (Workflows, Projects, Agents, Home, the loading skeletons) kept that 40px inset as invisible clearance for the global window-drag strip when the visible band was removed; the channel header was the one surface that lost it outright. The wrapper's height is measured into --buzz-channel-content-top-padding, which drives the message scroll container's top padding. Losing 40px tipped the Welcome timeline from "just barely scrollable" to "exactly fits": with no overflow, the bottom-anchored welcome intro (mt-auto) had no slack to redistribute, so it never reflowed down when the composer banner dismissed. onboarding.spec.ts:1063 asserts that reflow and timed out deterministically. Restoring the inset returns the channel pane to the same clearance as its sibling panels and the same overflow margin as main; the reflow fires and the test passes. No visible band returns -- the header still sits flush; this only restores the invisible drag-strip clearance. Co-authored-by: Tyler Longwell <tlongwell@block.xyz> Signed-off-by: Tyler Longwell <tlongwell@block.xyz>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Two related desktop-layout changes:
Scope guardrails
clientY ≤ 44handler inAppShell, which this PR does not touch. The channel/thread header now lives in that 44px zone (its non-interactive parts drag/maximize; its action buttons are correctly excluded) — same model the sidebar header already uses.flushprop onTopChromeInsetHeader.Before / after (band removal)
Full window (after):
Validation
tsc --noEmit✅,vite build✅13 files, +113/−171.