docs/sync/shadcn/runs/2026-05-28-4a4dc8e-to-360e8a1-header/plan.md
shadcn-ui/ui../shadcn/apps/v44a4dc8eb0fc793d8e9225e780183ad605f15d2c2 (2026-05-22, Update pnpm release age settings (#10719))360e8a19c3ee13ac78b656027462007c8bdaa6d5 (2026-05-27, fix(transform-rtl): preserve quotes in transformed className literals (#10495))apps/wwwheaderdocs/sync/shadcn/status.jsondocs/sync/shadcn/runs/2026-05-28-4a4dc8e-to-360e8a1-headerThe scoped header audit found 7 candidate rows in the tracked 739-row upstream range. Five rows are direct header shell/config rows, two are adjacent sidebar/announcement rows, and 732 rows remain out of scope for this lane.
There is no urgent header patch to apply. Plate already has the upstream root layout header-height cleanup and has intentionally forked the header structure around the Plate logo, product links, locale switcher, Discord, MCP, and the recent decision to keep desktop Home on the logo instead of a text nav item. The only transferable unmerged header-mounted change is upstream's command-menu trigger styling; that is deferred because the user already said command-menu work comes later.
| Key | Count |
|---|---|
A | 561 |
D | 22 |
M | 156 |
| Key | Count |
|---|---|
direct-header | 5 |
header-adjacent | 2 |
out-of-scope | 732 |
| Key | Count |
|---|---|
exclude-upstream | 672 |
no-op | 62 |
plate-fork | 3 |
smart-merge | 2 |
Full inventory with every changed upstream path: inventory.md.
Source artifacts:
upstream-name-status.tsvupstream-numstat.tsvupstream-commits.txtheader-candidate-name-status.tsvgit -C ../shadcn diff ... commands instead of committing .patch files.| Status | Upstream file | Decision | Evidence |
|---|---|---|---|
| M | apps/v4/app/layout.tsx | no-op | Plate already has lg:[--header-height:calc(var(--spacing)*16)] and no localStorage.layout/LayoutProvider; see layout.tsx:92-118. |
| M | apps/v4/components/command-menu.tsx | smart-merge | Upstream changed the header search trigger to borderless bg-muted; Plate trigger still uses bg-muted/50 and command-menu work was explicitly deferred; see command-menu.tsx:296-311. |
| M | apps/v4/components/mobile-nav.tsx | plate-fork | Upstream removed static Home because Home moved into shadcn navItems; Plate intentionally keeps Home in command/mobile items because the logo is hidden on mobile; see mobile-nav.tsx:55-143. |
| M | apps/v4/components/site-header.tsx | plate-fork | Keep Plate logo, Docs/Editors/Templates, GitHub, Discord, language switcher, MCP; upstream create/v0 actions stay excluded; see site-header.tsx:47-103. |
| M | apps/v4/lib/config.ts | plate-fork | Upstream added Home to navItems; Plate keeps Home in command/mobile nav and keeps desktop Home on the logo only; see site-header.tsx:19-45 and logo.tsx:14-25. |
| Status | Upstream file | Decision | Evidence |
|---|---|---|---|
| M | apps/v4/components/announcement.tsx | exclude-upstream | Rhea announcement/product copy, not Plate header chrome; current policy excludes Rhea/create/theme surfaces. |
| M | apps/v4/components/docs-sidebar.tsx | smart-merge | Sidebar polish is adjacent but not header; keep in sidebar lane, where Plate owns accordion behavior. |
header and follow the full sync plan's exclusion/no-op policy.apps/v4/app/layout.tsx, apps/v4/components/command-menu.tsx, apps/v4/components/mobile-nav.tsx, apps/v4/components/site-header.tsx, and apps/v4/lib/config.ts.apps/v4/components/announcement.tsx and apps/v4/components/docs-sidebar.tsx.| Order | Slice | Class | Files | Why | Verification |
|---|---|---|---|---|---|
| 1 | Header accounting only | plate-fork / no-op | apps/www/src/components/site-header.tsx, apps/www/src/components/mobile-nav.tsx, apps/www/src/config/site.ts, apps/www/src/app/layout.tsx | Plate already has the upstream layout fix and the current Plate header intentionally keeps logo-owned Home, Plate product links, CN-safe links, language, Discord, GitHub, MCP, and excludes create/v0. | Source audit: line evidence in this plan; no implementation patch. |
| 2 | Command-menu trigger styling | smart-merge deferred | apps/www/src/components/command-menu.tsx | Upstream trigger changed to borderless bg-muted; Plate still uses the older bg-muted/50 trigger. User already said command-menu comes later, so keep this out of the header implementation slice. | Later scoped lane: sync-shadcn command-menu; then typecheck/lint/browser header search proof. |
/create, v0, ProjectForm, V0Button, and create product actions stay excluded from Plate header.header.Home text back to the header nav.Home, because the logo is hidden on mobile and command/menu are navigation surfaces.Docs, Editors, and external Templates links instead of upstream shadcn Docs/Components/Blocks/Charts/Directory/Create.hrefWithLocale/getLocalizedPath.app/layout.tsx: upstream removed layout localStorage/project state and added lg:[--header-height:calc(var(--spacing)*16)]; Plate already matches the useful part and has no layout provider residue.lib/config.ts: upstream added Home to navItems; Plate adopts the intent only for command/mobile fallback, not desktop text nav.site-header.tsx: upstream removed extra logo/SiteConfig but still carries create/v0 actions; Plate should preserve its current product-owned header and exclude create/v0.mobile-nav.tsx: upstream removed static Home because it moved into shadcn navItems; Plate keeps Home through commandNavItems for mobile.command-menu.tsx: upstream trigger styling is the only remaining header-mounted style candidate. Defer to a command-menu lane.None for this scoped header plan. The only unresolved header-mounted item is command-menu trigger styling, already deferred by user decision.
This scoped plan cannot advance lastSyncedCommit. It accounts for header-scope rows in 4a4dc8e..360e8a1, but 732 rows remain outside this lane and command-menu trigger styling is deferred. lastPlannedCommit can remain 360e8a19c3ee13ac78b656027462007c8bdaa6d5; lastPlan may point to this scoped plan as the latest review artifact.
Review this header plan. If accepted, there is no header implementation slice to run now unless you want to override the command-menu deferral. For the deferred command-menu item, run sync-shadcn command-menu later.