catalog: workspace-home shell re-home (sidebar, search bar, global queries, files tabs, unified home list)#5129
catalog: workspace-home shell re-home (sidebar, search bar, global queries, files tabs, unified home list)#5129nl0 wants to merge 15 commits into
Conversation
…eries, files tabs, unified home list) Persistent workspace sidebar and always-on search bar; global /queries re-home (workspace-scoped Athena/ES consoles with legacy bucket-query redirects); Files tab family and reworked bucket tab order; unified home volume list (buckets only) with list/card toggle, text filter, and tag shortcuts; OPEN-landing unification; Athena race fix; and bookmarks/layout/assistant chrome changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #5129 +/- ##
==========================================
+ Coverage 49.52% 50.48% +0.95%
==========================================
Files 844 842 -2
Lines 34426 34241 -185
Branches 5830 5819 -11
==========================================
+ Hits 17049 17286 +237
+ Misses 15493 15119 -374
+ Partials 1884 1836 -48
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
… tree unchanged — this branch already contains the shell work) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * dx-shell-rehome: catalog: workspace-home shell re-home (sidebar, search bar, global queries, files tabs, unified home list)
Removed (verified unreachable on dx-shell-rehome via import greps): - website/components/Backgrounds/Backlight1.js + backlight1.png asset - website/components/Bullet.jsx - website/components/Videos/** (Videos.jsx, index.js, adornment.png) - website/pages/OpenLanding/Showcase/** (Showcase.jsx, index.js) - constants/style.js: websiteTheme export + its window.THEMES entry, and the now-orphaned websiteTypography local const it was the sole consumer of Kept navTheme, websitePalette, appTheme. Retained website/theme.ts (the WebsiteTheme type still consumed by BucketGrid/BucketList); updated its stale comment to reference websitePalette/navTheme instead of websiteTheme. Switched the two remaining websiteTheme consumers (both tests) to appTheme: BucketGrid.spec.tsx and Landing/Buckets/Buckets.spec.tsx. Gates: typecheck clean; vitest 1137 passed / 1 skipped / 0 failed; lint:app clean. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Added |
…structure; workspace-box variants in flight Settled via impeccable live (operator accepts): - nav: inset rounded rows (8px inset, 4px radius, 44px flush rows, 16px icon gap via $icon), focus-visible ring - URI + Docs move to top-bar icon actions (ContentBar); Follow dropped; Resources section removed (FollowMenu deleted) - version relocates under the logo, faint - workspace area: rounded faint-fill box + logged-out sign-in placeholder (no layout jump on login) Session scaffolding INCLUDED deliberately (Freeze wrapper + pending variant block 7c641af7, workspace merge-vs-distinct exploration) — stripped at session end before undrafting. app/index.html live-inject intentionally left uncommitted. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…cepted) Settled via live design session accepts + chat rulings (2026-07-21/22): - split layout: WORKSPACE label outside a faint rounded box (top); identity box with Sign Out in a dropdown menu (bottom, hidden logged-out); version at the rail's foot, whisper-faint with hover reveal - workspace row: current role only (no count), down-chevron + switchRole only when >1 roles; sign-in placeholder row when logged out (non-LOCAL) - rail ground: midnight via navTheme.background.default; text 85% white, selected full-white + medium; washes one notch fainter across the rail - amber indicator enters the chrome: 3px bracket on the selected nav item (doctrine ruling: one selection vocabulary product-wide) - icon geometry: 20px icons, 34px icon column, 16px left inset, all rows - 'Switch workspace' dialog title + matching error copy Code-reviewed (3-lens workflow, 14 adversarially-verified findings): blocker fixed (account menu portal now renders on appTheme, not the dark navTheme), LOCAL-mode Sign Out guard restored, duplication consolidated (box/row style bases, shared workspace row fragment, AccountMenu self-styles), stale comments corrected. Accepted-by-ruling deviations recorded in the ledger: Web Midnight as rail ground (tokenizes at contract rewrite), 0.35 resting version opacity, 11px overline, Footer text-token collateral (Footer is ruled dead). Session scaffolding still in file (comment-marked, ledger-tracked, REMOVE before merge): Freeze wrapper + authResolved gate. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Ruled via side-by-side trial (midnight-world vs indigo-world instances, operator-accepted 2026-07-22): one dark says Quilt — rail ground, primary actions, active fills all unify on midnight. Deep/hover step #100e28. Followers: tertiary.main (was a duplicate of the old primary), ThemeEditor fallback/placeholder/example strings, and the rail ground now reads appTheme.palette.primary.main directly (single source; one less navTheme consumer ahead of its planned deletion). Revert is a two-value flip. DESIGN.md token names update at the contract rewrite; ledger is authoritative until then. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…t (impeccable session, operator-accepted) Band commits to chrome: white, full-bleed to the rail edge (inset moves to the content column), square, elevation 0 + divider hairline, 64px-registered with the rail logo block. Field: white with a prominent 0.38 resting border, faint search icon (0.38 -> 0.54 on focus), '/' keycap that hides while typing; '/' and Cmd/Ctrl+K focus the bar globally. Conformance ride-alongs: AA placeholder, 14px scale, dropdown to elevation 8, mono s3:// suggestions, visible focus ring on the icon actions. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…display quilt.png is 153x58; the previous 32px height forced a 1.1x device-pixel upscale on retina (blurry). 29px maps the mark 1:1 to device pixels on 2x displays and to an exact 2:1 downscale on 1x. Header registration (64px logo block) unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adds the navigation slice (indicator amber, rail text/wash tokens) to appPalette with proper createPalette augmentation. The rail no longer wraps in navTheme: root colors read tokens, the amber indicator literal tokenizes, the bookmarks Badge dot gets an explicit indicator-amber class (navTheme primary was salmon; appTheme primary would vanish on the midnight ground). FinalBoundary switches to appTheme with pinned midnight ground and legible button colors. Rail renders identically (verified computed styles). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The re-homed shell left most of containers/NavBar orphaned. The live pieces move to their consumer: AuthState/useAuthState, RoleSwitcher, and the Subscription license-state hook (its Display banner was dead — the rail's Unlicensed item is the live affordance) relocate into containers/Sidebar with their gql documents. Bare pages get a minimal BareHeader (midnight band, home mark, visible focus ring) replacing NavBar.Container, and the auth screens render bare instead of mounting the full shell. The NavBar directory (NavBar, NavMenu, Controls, BucketSelect, Collaborators) is deleted. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…t begins The last navTheme consumer (Footer) is removed per the footer-death ruling, and navTheme, websitePalette, and websiteOverrides are deleted — the app has one theme family again. Volume-list components (BucketGrid, Buckets) move out of website/ into containers/Home (tertiary joins the palette typing; website/theme.ts dies). /install redirects to the installation docs instead of rendering the marketing page. The profile route un-gates from OPEN-only (all modes, still auth-required) and sheds its marketing sections. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…s, AA contrast Version row renders in Roboto Mono (Mono Identity Rule) and becomes a real keyboard-operable button with a visible focus ring; the rail's interactive elements (logo, nav items, workspace and identity rows) get indicator-amber :focus-visible outlines — MUI's default focus overlay was invisible on the midnight ground. Role-switcher '(current)' hint raised from 2.7:1 to 4.6:1. Stale 'Navbar link' admin label renamed. Orphaned marketing Contribute component removed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
It became a keyboard tab stop in the conformance batch; a focusable element at 2.6:1 is an invisible landing. 0.55 over white-85 on midnight ≈ 4.6:1. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…, one register) Squares the written contract with the rulings that ran ahead of it (the qhq-n7bz.23 ledger trail, now superseded). Frontmatter: primary becomes Midnight Chassis #19163b (indigo retired), the palette.navigation slice enters as tokens, Caption + Overline join the type ramp. Doctrine: the Two-Registers Rule (which banned midnight in-app, contradicting the build) becomes the One-Register Rule; the Indicator Rule extends into chrome (amber bracket, one selection vocabulary); a Focus Ring Rule is named. Section 5 Navigation rewritten from the dead navTheme app-bar to the shipped rail + chrome search band + bare header. The coral/cobalt website palette is documented as retired. design.json sidecar regenerated to match. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The 'Volumes' umbrella was premature — it names buckets + data products, but DP composition isn't on this branch. Revert the user-facing label (rail nav, home heading, filter placeholder, empty state) and the internal bucketsActive flag to 'Buckets'; it becomes 'Volumes' again when data products land. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The shell/IA slice of the dx rework, split out of #5086 so the re-home that touches every screen can be reviewed and shipped on its own; #5086 now stacks on this branch carrying only the flag-gated Data Products remainder.
What's in
containers/Sidebar) — persistent global nav: identity, Volumes/Search/Queries/Bookmarks, active-section indication, Ask Qurator, admin entry.Layout/ContentBar) — replaces the top bar; on/searchthe bar IS the query input (binds the search model's URL state).containers/Queries, moved fromBucket/Queries) — root-level/querieswith Athena · ElasticSearch tabs; bucket Queries tab removed; legacy routes redirect. Includes the Athena workgroup-probe race fix (transient-retry + backoff, bounded concurrency, in-flight dedup — 3 new tests).website/…/Buckets,BucketGrid,BucketList) — one dense list with text filter and list ↔ cards toggle; OPEN landing adopts the same component (old grid deleted).What's deliberately out (stays on the stacked DP slice, #5086)
model/graphql/*,*.generated.ts,*.graphql) — untouched vs master.Hit/CellValue/Entries/Table/links.ts) — only consumer is the DP Packages tab; reverted whole.Note for review: two additive seams with no consumer on this branch ride along (
JsonDisplaynoS3Links, Markdown loaderprocessLinkoverride) — kept to minimize churn; the DP slice consumes both.Gates
master...dx-dp-browse(nothing invented, nothing lost), byte-identity sweep on all non-mixed files, mixed-file surgery review.Spec-side twin: quiltdata/quilt-specs#22.
🤖 Generated with Claude Code