From de42171f934b2aaee67c3bf64c58b2679d51ae4c Mon Sep 17 00:00:00 2001 From: Guilhem Lemouel Date: Thu, 1 Oct 2026 00:42:11 -0700 Subject: [PATCH] fix: the band names the path Deploy will create, and keeps the summary readable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A brand-new app is parked at a `draft_` placeholder, and the band named that rather than the path its Deploy will create — `newEditedPath` refuses the placeholder for exactly this reason, and the editor's own bar read it. Both app editors register it now. Verified: the trail reads `u/admin/gentle_app` while the URL is still the draft. The band's summary gets the `title` the editor's own bar had, so one the bar truncates can still be read on hover. The wrapper that hid AppExportButton on a phone never hid anything: the component draws no trigger — it is the export drawer, which portals to `body` — so the class toggle was inert in both states and the comment read as if something moved. Dropped from both app editors. Two comments corrected: `NAV_PAGES`' `icon` does reach the breadcrumb for all eleven entries (`NavBreadcrumb` renders `routePage.icon`), so only `operatorKey` goes unread for the four the sidebar groups separately; and the raw editor's phone note described folding that does not happen — the file-sidebar toggle stays in the band, Jobs and the export are already in the menu, and AI is what stands down. Co-Authored-By: Claude Opus 5 (1M context) --- .../apps/editor/AppEditorHeader.svelte | 39 +++++++++------- .../raw_apps/RawAppEditorHeader.svelte | 44 ++++++++++++------- .../src/lib/components/sidebar/navPages.ts | 9 ++-- 3 files changed, 56 insertions(+), 36 deletions(-) diff --git a/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte b/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte index 7f5522bc56..9bf35711a6 100644 --- a/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte +++ b/frontend/src/lib/components/apps/editor/AppEditorHeader.svelte @@ -943,7 +943,14 @@ ` placeholder, and the trail would name that instead of the path Deploy + // will create. Same chain the rename sites read, and what the editor's own bar showed. + kind: 'app', + path: newEditedPath || $appPath || newPath || undefined, + summaryContent: appSummary + }} actions={appHeaderActions} contexts={headerContexts} /> @@ -979,16 +986,19 @@ {#snippet appSummary()} - ($summary = v.trim())} - textClass="text-xs font-medium text-emphasis leading-tight" - class="max-w-full min-w-0" - /> + breadcrumb, which this editor renames from its deploy drawer. `title` so a summary the + band truncates can still be read, the way the editor's own bar did it. --> +
+ ($summary = v.trim())} + textClass="text-xs font-medium text-emphasis leading-tight" + class="max-w-full min-w-0" + /> +
{/snippet} {#snippet appHeaderActions()} @@ -1213,11 +1223,10 @@ - -
- -
+ - - - - + + {#if !phoneTopbar} {#snippet fallback()} diff --git a/frontend/src/lib/components/sidebar/navPages.ts b/frontend/src/lib/components/sidebar/navPages.ts index 1c4668a229..b9dc2eff63 100644 --- a/frontend/src/lib/components/sidebar/navPages.ts +++ b/frontend/src/lib/components/sidebar/navPages.ts @@ -17,10 +17,11 @@ import type { OperatorPageKey } from './operatorRoutes' * The names the page header's breadcrumb gives the workspace's own pages, and the rows the * sidebar's main group is built from. * - * Every entry names a page for the breadcrumb. Only the entries `SidebarContent`'s - * `MAIN_MENU_EXTRAS` also lists become sidebar links from here — Schedules, HTTP routes, Workers - * and Audit logs are grouped differently there and carry their own row, so for those four the - * `icon` and `operatorKey` below go unread. Keep the labels in step with those rows by hand. + * Every entry names a page for the breadcrumb, and its `icon` goes there too. Only the entries + * `SidebarContent`'s `MAIN_MENU_EXTRAS` also lists become sidebar links from here — Schedules, + * HTTP routes, Workers and Audit logs are grouped differently there and carry their own row, so + * for those four the `operatorKey` below goes unread. Keep the labels in step with those rows by + * hand. */ export type NavPage = { label: string