From 56f31d91b6407254d68e4e895454b4f92ae984a4 Mon Sep 17 00:00:00 2001 From: pascalandr Date: Sat, 18 Apr 2026 13:59:08 +0200 Subject: [PATCH 01/11] feat(ui): show the active session title in the header Render the current session title in the instance header for both compact and regular layouts, while keeping the existing status indicators and command controls in place. --- .../components/instance/instance-shell2.tsx | 28 +++++++++++++++++-- .../ui/src/styles/panels/session-layout.css | 24 ++++++++++++++++ 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/packages/ui/src/components/instance/instance-shell2.tsx b/packages/ui/src/components/instance/instance-shell2.tsx index 0ead3c1aa..eda54c869 100644 --- a/packages/ui/src/components/instance/instance-shell2.tsx +++ b/packages/ui/src/components/instance/instance-shell2.tsx @@ -364,6 +364,14 @@ const InstanceShell2: Component = (props) => { ) } + const activeSessionTitle = createMemo(() => { + const activeSessionId = activeSessionIdForInstance() + if (!activeSessionId || activeSessionId === "info") return null + + const title = activeSessionForInstance()?.title?.trim() + return title || t("sessionList.session.untitled") + }) + const renderYoloModePill = () => { if (!yoloModeEnabled()) return null return ( @@ -390,6 +398,20 @@ const InstanceShell2: Component = (props) => { ) + const renderSessionHeaderMeta = (compact = false) => { + const title = activeSessionTitle() + if (!title) return renderSessionHeaderIndicators() + + return ( +
+
+ {title} +
+ {renderSessionHeaderIndicators()} +
+ ) + } + const handleCommandPaletteClick = () => { showCommandPalette(props.instance.id) } @@ -717,7 +739,7 @@ const InstanceShell2: Component = (props) => {
- {renderSessionHeaderIndicators()} + {renderSessionHeaderMeta(true)}
@@ -808,8 +830,8 @@ const InstanceShell2: Component = (props) => { /> -
- {renderSessionHeaderIndicators()} +
+ {renderSessionHeaderMeta()}
diff --git a/packages/ui/src/styles/panels/session-layout.css b/packages/ui/src/styles/panels/session-layout.css index 1ff0dc3f6..2a19f802a 100644 --- a/packages/ui/src/styles/panels/session-layout.css +++ b/packages/ui/src/styles/panels/session-layout.css @@ -144,6 +144,30 @@ session-sidebar-controls .selector-trigger-primary { @apply flex-shrink-0; } +.session-header-meta { + @apply flex items-center gap-2 min-w-0; +} + +.session-header-meta--compact { + @apply flex-col gap-1.5 w-full; +} + +.session-header-title { + color: var(--text-primary); + font-size: 0.875rem; + font-weight: 600; + line-height: 1.2; + max-width: min(32rem, 40vw); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.session-header-meta--compact .session-header-title { + max-width: 100%; + text-align: center; +} + .session-sidebar-separator { background-color: var(--border-base); height: 1px; From 2a6242106420248bd635c87b8ea22116e8cc1e02 Mon Sep 17 00:00:00 2001 From: pascalandr Date: Sat, 18 Apr 2026 15:43:10 +0200 Subject: [PATCH 02/11] feat(ui): show the session title in the tab bar Display the active session title next to the new-tab control, and only when the left session drawer is closed so the title adds context without competing with the sidebar. --- packages/ui/src/App.tsx | 21 ++++++++++++ packages/ui/src/components/instance-tabs.tsx | 7 ++++ .../components/instance/instance-shell2.tsx | 33 +++++-------------- .../ui/src/styles/panels/session-layout.css | 24 -------------- packages/ui/src/styles/panels/tabs.css | 12 +++++++ 5 files changed, 48 insertions(+), 49 deletions(-) diff --git a/packages/ui/src/App.tsx b/packages/ui/src/App.tsx index 462c0c168..eb8652b23 100644 --- a/packages/ui/src/App.tsx +++ b/packages/ui/src/App.tsx @@ -93,6 +93,7 @@ const App: Component = () => { const [escapeInDebounce, setEscapeInDebounce] = createSignal(false) const [instanceTabBarHeight, setInstanceTabBarHeight] = createSignal(0) const [sidecarPickerOpen, setSidecarPickerOpen] = createSignal(false) + const [leftDrawerTitleVisibility, setLeftDrawerTitleVisibility] = createSignal>({}) const phoneQuery = useMediaQuery("(max-width: 767px)") const isPhoneLayout = createMemo(() => phoneQuery()) @@ -249,6 +250,22 @@ const App: Component = () => { return activeSessionId().get(instance.id) || null }) + const activeSessionTitleForInstance = createMemo(() => { + const instance = activeInstance() + const sessionId = activeSessionIdForInstance() + if (!instance || !sessionId || sessionId === "info") return null + + const session = getSessions(instance.id).find((entry) => entry.id === sessionId) + const title = session?.title?.trim() + return title || t("sessionList.session.untitled") + }) + + const showActiveSessionTitleInTabs = createMemo(() => { + const instance = activeInstance() + if (!instance) return false + return leftDrawerTitleVisibility()[instance.id] ?? false + }) + const launchErrorPath = () => { const value = launchError()?.binaryPath if (!value) return "opencode" @@ -539,6 +556,8 @@ const App: Component = () => { void handleCloseAppTab(tabId)} onNew={handleNewInstanceRequest} @@ -568,6 +587,8 @@ const App: Component = () => { handleSidebarAgentChange={(sessionId, agent) => handleSidebarAgentChange(tab.instance.id, sessionId, agent)} handleSidebarModelChange={(sessionId, model) => handleSidebarModelChange(tab.instance.id, sessionId, model)} onExecuteCommand={executeCommand} + onLeftDrawerTitleVisibilityChange={(instanceId, visible) => + setLeftDrawerTitleVisibility((current) => ({ ...current, [instanceId]: visible }))} tabBarOffset={isPhoneLayout() && mobileFullscreenMode() ? 0 : instanceTabBarHeight()} mobileFullscreenMode={isPhoneLayout() && mobileFullscreenMode()} onEnterMobileFullscreen={() => void enterMobileFullscreen()} diff --git a/packages/ui/src/components/instance-tabs.tsx b/packages/ui/src/components/instance-tabs.tsx index 86e2c4986..7df5b7664 100644 --- a/packages/ui/src/components/instance-tabs.tsx +++ b/packages/ui/src/components/instance-tabs.tsx @@ -13,6 +13,8 @@ import type { AppTabRecord } from "../stores/app-tabs" interface InstanceTabsProps { tabs: AppTabRecord[] activeTabId: string | null + activeSessionTitle?: string | null + showActiveSessionTitle?: boolean onSelect: (tabId: string) => void onClose: (tabId: string) => void onNew: () => void @@ -70,6 +72,11 @@ const InstanceTabs: Component = (props) => { > + +
+ {props.activeSessionTitle} +
+
1}> diff --git a/packages/ui/src/components/instance/instance-shell2.tsx b/packages/ui/src/components/instance/instance-shell2.tsx index eda54c869..597ced329 100644 --- a/packages/ui/src/components/instance/instance-shell2.tsx +++ b/packages/ui/src/components/instance/instance-shell2.tsx @@ -86,6 +86,7 @@ interface InstanceShellProps { mobileFullscreenMode: boolean onEnterMobileFullscreen: () => void onExitMobileFullscreen: () => void + onLeftDrawerTitleVisibilityChange?: (instanceId: string, visible: boolean) => void } const InstanceShell2: Component = (props) => { @@ -183,6 +184,10 @@ const InstanceShell2: Component = (props) => { handleRightAppBarButtonClick, } = drawerChrome + createEffect(() => { + props.onLeftDrawerTitleVisibilityChange?.(props.instance.id, leftDrawerState() === "floating-closed") + }) + createEffect(() => { const instanceId = props.instance.id loadBackgroundProcesses(instanceId).catch((error) => { @@ -364,14 +369,6 @@ const InstanceShell2: Component = (props) => { ) } - const activeSessionTitle = createMemo(() => { - const activeSessionId = activeSessionIdForInstance() - if (!activeSessionId || activeSessionId === "info") return null - - const title = activeSessionForInstance()?.title?.trim() - return title || t("sessionList.session.untitled") - }) - const renderYoloModePill = () => { if (!yoloModeEnabled()) return null return ( @@ -398,20 +395,6 @@ const InstanceShell2: Component = (props) => {
) - const renderSessionHeaderMeta = (compact = false) => { - const title = activeSessionTitle() - if (!title) return renderSessionHeaderIndicators() - - return ( -
-
- {title} -
- {renderSessionHeaderIndicators()} -
- ) - } - const handleCommandPaletteClick = () => { showCommandPalette(props.instance.id) } @@ -739,7 +722,7 @@ const InstanceShell2: Component = (props) => {
- {renderSessionHeaderMeta(true)} + {renderSessionHeaderIndicators()}
@@ -830,8 +813,8 @@ const InstanceShell2: Component = (props) => { /> -
- {renderSessionHeaderMeta()} +
+ {renderSessionHeaderIndicators()}
diff --git a/packages/ui/src/styles/panels/session-layout.css b/packages/ui/src/styles/panels/session-layout.css index 2a19f802a..1ff0dc3f6 100644 --- a/packages/ui/src/styles/panels/session-layout.css +++ b/packages/ui/src/styles/panels/session-layout.css @@ -144,30 +144,6 @@ session-sidebar-controls .selector-trigger-primary { @apply flex-shrink-0; } -.session-header-meta { - @apply flex items-center gap-2 min-w-0; -} - -.session-header-meta--compact { - @apply flex-col gap-1.5 w-full; -} - -.session-header-title { - color: var(--text-primary); - font-size: 0.875rem; - font-weight: 600; - line-height: 1.2; - max-width: min(32rem, 40vw); - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.session-header-meta--compact .session-header-title { - max-width: 100%; - text-align: center; -} - .session-sidebar-separator { background-color: var(--border-base); height: 1px; diff --git a/packages/ui/src/styles/panels/tabs.css b/packages/ui/src/styles/panels/tabs.css index 3d6c251fa..2c95c520e 100644 --- a/packages/ui/src/styles/panels/tabs.css +++ b/packages/ui/src/styles/panels/tabs.css @@ -30,6 +30,18 @@ @apply flex items-center gap-1 flex-shrink-0; } +.tab-bar-session-title { + color: var(--text-secondary); + font-size: 0.75rem; + font-weight: 400; + line-height: 1.2; + margin-left: 0.375rem; + max-width: min(24rem, 28vw); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + .tab-strip-spacer { @apply flex-1; min-width: 1px; From 275851480df7539ea6fb7e24fe32823caa9ae0dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pascal=20Andr=C3=A9?= Date: Sat, 9 May 2026 13:50:30 +0200 Subject: [PATCH 03/11] fix(ui): move session title into header Show the active session title in the session header when the left sidebar is not pinned so the tab strip stays focused on workspace tabs. The header slot reserves the sidebar width and reuses existing session title styling to avoid layout jumps while preserving the compact/mobile toolbar controls. Validated with git diff --cached --check, npm run typecheck --workspace @codenomad/ui, and npm run build --workspace @codenomad/ui. --- packages/ui/src/App.tsx | 22 --- packages/ui/src/components/instance-tabs.tsx | 7 - .../components/instance/instance-shell2.tsx | 183 ++++++++++-------- .../ui/src/styles/panels/session-layout.css | 13 ++ 4 files changed, 112 insertions(+), 113 deletions(-) diff --git a/packages/ui/src/App.tsx b/packages/ui/src/App.tsx index 7160ede08..6d970a3f0 100644 --- a/packages/ui/src/App.tsx +++ b/packages/ui/src/App.tsx @@ -94,8 +94,6 @@ const App: Component = () => { const [escapeInDebounce, setEscapeInDebounce] = createSignal(false) const [instanceTabBarHeight, setInstanceTabBarHeight] = createSignal(0) const [sidecarPickerOpen, setSidecarPickerOpen] = createSignal(false) - const [leftDrawerTitleVisibility, setLeftDrawerTitleVisibility] = createSignal>({}) - const phoneQuery = useMediaQuery("(max-width: 767px)") const isPhoneLayout = createMemo(() => phoneQuery()) @@ -250,22 +248,6 @@ const App: Component = () => { return activeSessionId().get(instance.id) || null }) - const activeSessionTitleForInstance = createMemo(() => { - const instance = activeInstance() - const sessionId = activeSessionIdForInstance() - if (!instance || !sessionId || sessionId === "info") return null - - const session = getSessions(instance.id).find((entry) => entry.id === sessionId) - const title = session?.title?.trim() - return title || t("sessionList.session.untitled") - }) - - const showActiveSessionTitleInTabs = createMemo(() => { - const instance = activeInstance() - if (!instance) return false - return leftDrawerTitleVisibility()[instance.id] ?? false - }) - const launchErrorPath = () => { const value = launchError()?.binaryPath if (!value) return "opencode" @@ -556,8 +538,6 @@ const App: Component = () => { void handleCloseAppTab(tabId)} onNew={handleNewInstanceRequest} @@ -588,8 +568,6 @@ const App: Component = () => { handleSidebarAgentChange={(sessionId, agent) => handleSidebarAgentChange(tab.instance.id, sessionId, agent)} handleSidebarModelChange={(sessionId, model) => handleSidebarModelChange(tab.instance.id, sessionId, model)} onExecuteCommand={executeCommand} - onLeftDrawerTitleVisibilityChange={(instanceId, visible) => - setLeftDrawerTitleVisibility((current) => ({ ...current, [instanceId]: visible }))} tabBarOffset={isPhoneLayout() && mobileFullscreenMode() ? 0 : instanceTabBarHeight()} mobileFullscreenMode={isPhoneLayout() && mobileFullscreenMode()} onEnterMobileFullscreen={() => void enterMobileFullscreen()} diff --git a/packages/ui/src/components/instance-tabs.tsx b/packages/ui/src/components/instance-tabs.tsx index af8bf8c80..44528cc85 100644 --- a/packages/ui/src/components/instance-tabs.tsx +++ b/packages/ui/src/components/instance-tabs.tsx @@ -22,8 +22,6 @@ import type { AppTabRecord } from "../stores/app-tabs" interface InstanceTabsProps { tabs: AppTabRecord[] activeTabId: string | null - activeSessionTitle?: string | null - showActiveSessionTitle?: boolean onSelect: (tabId: string) => void onClose: (tabId: string) => void onNew: () => void @@ -149,11 +147,6 @@ const InstanceTabs: Component = (props) => { > - -
- {props.activeSessionTitle} -
-
1}> diff --git a/packages/ui/src/components/instance/instance-shell2.tsx b/packages/ui/src/components/instance/instance-shell2.tsx index 41c9e0286..0befbe559 100644 --- a/packages/ui/src/components/instance/instance-shell2.tsx +++ b/packages/ui/src/components/instance/instance-shell2.tsx @@ -87,7 +87,6 @@ interface InstanceShellProps { mobileFullscreenMode: boolean onEnterMobileFullscreen: () => void onExitMobileFullscreen: () => void - onLeftDrawerTitleVisibilityChange?: (instanceId: string, visible: boolean) => void } const InstanceShell2: Component = (props) => { @@ -185,10 +184,6 @@ const InstanceShell2: Component = (props) => { handleRightAppBarButtonClick, } = drawerChrome - createEffect(() => { - props.onLeftDrawerTitleVisibilityChange?.(props.instance.id, leftDrawerState() === "floating-closed") - }) - createEffect(() => { const instanceId = props.instance.id loadBackgroundProcesses(instanceId).catch((error) => { @@ -702,6 +697,48 @@ const InstanceShell2: Component = (props) => { const hasSessions = createMemo(() => activeSessions().size > 0) const showingInfoView = createMemo(() => activeSessionIdForInstance() === "info") + const activeSessionTitle = createMemo(() => { + if (showingInfoView()) return null + const title = activeSessionForInstance()?.title?.trim() + return title || t("sessionList.session.untitled") + }) + const showHeaderSessionTitle = createMemo(() => !leftPinned() && Boolean(activeSessionTitle())) + + const renderActiveSessionHeaderTitle = () => ( + +
+
+
+ {activeSessionTitle()} +
+
+
+
+ ) + + const renderHeaderLeftSlot = () => ( + +
+ + + {leftAppBarButtonIcon()} + + + {renderActiveSessionHeaderTitle()} +
+
+ ) const sessionLayout = (
= (props) => { fallback={
- - - {leftAppBarButtonIcon()} - - + {renderHeaderLeftSlot()} -
- {renderSessionHeaderIndicators()} -
+
+ {renderSessionHeaderIndicators()} +
-
- +
+ + + + + + + + +
+ +
+ + + +
+ + - - - - - -
- -
- - - -
- - - - - - - - {rightAppBarButtonIcon()} - - + + + {rightAppBarButtonIcon()} + +
@@ -815,18 +841,7 @@ const InstanceShell2: Component = (props) => { } >
- - - {leftAppBarButtonIcon()} - - + {renderHeaderLeftSlot()} Date: Sat, 9 May 2026 14:05:10 +0200 Subject: [PATCH 04/11] fix(ui): align header session title with floating sidebar Subtract the Material toolbar inset from the reserved header title slot so the active session title ends at the same edge as the floating session sidebar. This prevents the title background from peeking out beside the open drawer while keeping the closed-drawer menu button and title aligned with the sidebar width. Validated with npm run typecheck --workspace @codenomad/ui and npm run build --workspace @codenomad/ui. --- packages/ui/src/components/instance/instance-shell2.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/ui/src/components/instance/instance-shell2.tsx b/packages/ui/src/components/instance/instance-shell2.tsx index 0befbe559..1be5c1cd1 100644 --- a/packages/ui/src/components/instance/instance-shell2.tsx +++ b/packages/ui/src/components/instance/instance-shell2.tsx @@ -703,6 +703,8 @@ const InstanceShell2: Component = (props) => { return title || t("sessionList.session.untitled") }) const showHeaderSessionTitle = createMemo(() => !leftPinned() && Boolean(activeSessionTitle())) + const headerToolbarHorizontalInset = createMemo(() => (isPhoneLayout() ? 16 : 24)) + const headerLeftSlotWidth = createMemo(() => Math.max(0, sessionSidebarWidth() - headerToolbarHorizontalInset())) const renderActiveSessionHeaderTitle = () => ( @@ -722,7 +724,7 @@ const InstanceShell2: Component = (props) => { const renderHeaderLeftSlot = () => ( -
+
Date: Sat, 9 May 2026 17:54:27 +0200 Subject: [PATCH 05/11] fix(ui): soften header session title Keep the floating-sidebar reopen control available even when the active session title is absent, so info and empty states do not strand the user after closing the drawer. Render the header session title as a quiet two-line text treatment with subtle vertical separators instead of reusing the active session item highlight. This preserves the drawer-width alignment while reducing visual weight in the toolbar. Validated with git diff --check, npm run typecheck --workspace @codenomad/ui, npm run build --workspace @codenomad/ui, and a rebuilt raw Tauri executable for visual review. --- .../components/instance/instance-shell2.tsx | 40 +++++++++---------- .../ui/src/styles/panels/session-layout.css | 19 +++++++-- 2 files changed, 35 insertions(+), 24 deletions(-) diff --git a/packages/ui/src/components/instance/instance-shell2.tsx b/packages/ui/src/components/instance/instance-shell2.tsx index 1be5c1cd1..1bfbf8fff 100644 --- a/packages/ui/src/components/instance/instance-shell2.tsx +++ b/packages/ui/src/components/instance/instance-shell2.tsx @@ -702,41 +702,39 @@ const InstanceShell2: Component = (props) => { const title = activeSessionForInstance()?.title?.trim() return title || t("sessionList.session.untitled") }) - const showHeaderSessionTitle = createMemo(() => !leftPinned() && Boolean(activeSessionTitle())) + const showHeaderLeftSlot = createMemo(() => leftDrawerState() === "floating-closed") + const showHeaderSessionTitle = createMemo(() => showHeaderLeftSlot() && Boolean(activeSessionTitle())) const headerToolbarHorizontalInset = createMemo(() => (isPhoneLayout() ? 16 : 24)) const headerLeftSlotWidth = createMemo(() => Math.max(0, sessionSidebarWidth() - headerToolbarHorizontalInset())) const renderActiveSessionHeaderTitle = () => (
-
-
- {activeSessionTitle()} -
-
+ {activeSessionTitle()}
) const renderHeaderLeftSlot = () => ( - -
- - - {leftAppBarButtonIcon()} - - + +
+ + {leftAppBarButtonIcon()} + {renderActiveSessionHeaderTitle()}
diff --git a/packages/ui/src/styles/panels/session-layout.css b/packages/ui/src/styles/panels/session-layout.css index abd6d962a..c55b44238 100644 --- a/packages/ui/src/styles/panels/session-layout.css +++ b/packages/ui/src/styles/panels/session-layout.css @@ -96,11 +96,24 @@ } .session-header-active-title { + display: flex; + align-items: center; flex: 1 1 auto; min-width: 0; - border-bottom: 0; - border-radius: var(--radius-md); - padding-block: 0.375rem; + align-self: stretch; + padding-inline: 0.75rem; + border-inline: 1px solid color-mix(in oklab, var(--border-base) 72%, transparent); + color: var(--text-secondary); +} + +.session-header-active-title-text { + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; + overflow: hidden; + font-size: 0.8125rem; + font-weight: 500; + line-height: 1.15; } .session-sidebar-shortcuts { From cdbe594affa47b60241fc921e9765b2deca2a18c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pascal=20Andr=C3=A9?= Date: Sat, 9 May 2026 18:05:31 +0200 Subject: [PATCH 06/11] fix(ui): preserve toolbar offset for floating sidebar Keep the header left slot mounted while the unpinned session drawer is open so toolbar controls remain offset from the floating panel instead of sliding underneath it. The slot now acts as an empty spacer in the floating-open state, while the reopen button and quiet two-line session title remain limited to the floating-closed state. Validated with git diff --check and npm run typecheck --workspace @codenomad/ui. --- .../components/instance/instance-shell2.tsx | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/packages/ui/src/components/instance/instance-shell2.tsx b/packages/ui/src/components/instance/instance-shell2.tsx index 1bfbf8fff..00837c20f 100644 --- a/packages/ui/src/components/instance/instance-shell2.tsx +++ b/packages/ui/src/components/instance/instance-shell2.tsx @@ -702,10 +702,13 @@ const InstanceShell2: Component = (props) => { const title = activeSessionForInstance()?.title?.trim() return title || t("sessionList.session.untitled") }) - const showHeaderLeftSlot = createMemo(() => leftDrawerState() === "floating-closed") - const showHeaderSessionTitle = createMemo(() => showHeaderLeftSlot() && Boolean(activeSessionTitle())) + const showHeaderLeftSlot = createMemo(() => !leftPinned()) + const showHeaderSessionTitle = createMemo(() => leftDrawerState() === "floating-closed" && Boolean(activeSessionTitle())) const headerToolbarHorizontalInset = createMemo(() => (isPhoneLayout() ? 16 : 24)) const headerLeftSlotWidth = createMemo(() => Math.max(0, sessionSidebarWidth() - headerToolbarHorizontalInset())) + const headerLeftSlotStyle = createMemo(() => + leftDrawerState() === "floating-open" || showHeaderSessionTitle() ? { width: `${headerLeftSlotWidth()}px` } : undefined, + ) const renderActiveSessionHeaderTitle = () => ( @@ -723,18 +726,20 @@ const InstanceShell2: Component = (props) => {
- - {leftAppBarButtonIcon()} - + + + {leftAppBarButtonIcon()} + + {renderActiveSessionHeaderTitle()}
From 064cffdf91df195026e8d44b3ca1fe7d06cc22b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pascal=20Andr=C3=A9?= Date: Sat, 9 May 2026 18:08:13 +0200 Subject: [PATCH 07/11] fix(ui): keep header session title under floating sidebar Keep the quiet header session title mounted in the left slot for all unpinned drawer states, so opening the floating sidebar covers the title instead of pushing it to the right. The reopen control is still limited to the closed state, while the slot width remains reserved when the floating drawer is open to keep toolbar controls out from under the overlay. Validated with git diff --check and npm run typecheck --workspace @codenomad/ui. --- packages/ui/src/components/instance/instance-shell2.tsx | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/ui/src/components/instance/instance-shell2.tsx b/packages/ui/src/components/instance/instance-shell2.tsx index 00837c20f..310dab669 100644 --- a/packages/ui/src/components/instance/instance-shell2.tsx +++ b/packages/ui/src/components/instance/instance-shell2.tsx @@ -703,7 +703,7 @@ const InstanceShell2: Component = (props) => { return title || t("sessionList.session.untitled") }) const showHeaderLeftSlot = createMemo(() => !leftPinned()) - const showHeaderSessionTitle = createMemo(() => leftDrawerState() === "floating-closed" && Boolean(activeSessionTitle())) + const showHeaderSessionTitle = createMemo(() => showHeaderLeftSlot() && Boolean(activeSessionTitle())) const headerToolbarHorizontalInset = createMemo(() => (isPhoneLayout() ? 16 : 24)) const headerLeftSlotWidth = createMemo(() => Math.max(0, sessionSidebarWidth() - headerToolbarHorizontalInset())) const headerLeftSlotStyle = createMemo(() => @@ -724,10 +724,7 @@ const InstanceShell2: Component = (props) => { const renderHeaderLeftSlot = () => ( -
+
Date: Wed, 27 May 2026 23:37:50 +0200 Subject: [PATCH 08/11] fix: task-069 remove compact header session title Push the PR 340 mobile header follow-up by suppressing the active session title in compact header layouts while preserving the wider-layout header behavior already established on this branch. The implementation stays local to instance-shell2 so phone and compact widths no longer produce the awkward three-line header stack, while desktop and other wider layouts continue showing the active session title in the left header slot. Include the task evidence summary plus the recorded UI typecheck and build logs used for validation. --- .../SUMMARY.md | 7 + .../logs/build.log | 413 ++++++++++++++++++ .../logs/typecheck.log | 4 + .../components/instance/instance-shell2.tsx | 2 +- 4 files changed, 425 insertions(+), 1 deletion(-) create mode 100644 evidences/069-fix-pr340-mobile-header-layout/SUMMARY.md create mode 100644 evidences/069-fix-pr340-mobile-header-layout/logs/build.log create mode 100644 evidences/069-fix-pr340-mobile-header-layout/logs/typecheck.log diff --git a/evidences/069-fix-pr340-mobile-header-layout/SUMMARY.md b/evidences/069-fix-pr340-mobile-header-layout/SUMMARY.md new file mode 100644 index 000000000..7d552f1bc --- /dev/null +++ b/evidences/069-fix-pr340-mobile-header-layout/SUMMARY.md @@ -0,0 +1,7 @@ +## Summary + +- Verified the compact/mobile header follow-up by suppressing the active session title in compact header layouts while preserving wider-layout behavior. +- Attached logs prove the required UI workspace validation commands completed successfully: + - `logs/typecheck.log` + - `logs/build.log` +- No screenshot was captured because this task was validated through the required non-visual build/typecheck path only in the isolated worktree. diff --git a/evidences/069-fix-pr340-mobile-header-layout/logs/build.log b/evidences/069-fix-pr340-mobile-header-layout/logs/build.log new file mode 100644 index 000000000..ac16270ba --- /dev/null +++ b/evidences/069-fix-pr340-mobile-header-layout/logs/build.log @@ -0,0 +1,413 @@ + +> @codenomad/ui@0.15.0 build +> vite build + +vite v5.4.21 building for production... +[plugin:prepare-monaco-public-assets] [plugin prepare-monaco-public-assets] Monaco source directory not found; skipping copy +transforming... +[plugin:vite:esbuild] [plugin vite:esbuild] ../../../../../node_modules/virtua/lib/solid/index.jsx: The JSX import source cannot be set without also enabling React's "automatic" JSX transform +1570| +1571| /** +1572| * @jsxImportSource solid-js + | ^ +1573| */ +1574| /** + +Ô£ô 2825 modules transformed. +rendering chunks... +computing gzip size... +dist/ui-version.json  0.03 kB Ôöé gzip: 0.05 kB +dist/registerSW.js  0.13 kB +dist/manifest.webmanifest  0.52 kB +dist/loading.html  1.59 kB Ôöé gzip: 0.67 kB +dist/index.html  1.67 kB Ôöé gzip: 0.72 kB +dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff  4.42 kB +dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2  4.93 kB +dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2  5.21 kB +dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2  5.47 kB +dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff  5.98 kB +dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff  6.19 kB +dist/assets/KaTeX_Size1-Regular-C195tn64.woff  6.50 kB +dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2  6.91 kB +dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2  6.91 kB +dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf  7.59 kB +dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff  7.66 kB +dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff  7.72 kB +dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2  9.64 kB +dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2  10.34 kB +dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf  10.36 kB +dist/assets/KaTeX_Script-Regular-D5yQViql.woff  10.59 kB +dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2  11.32 kB +dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2  11.35 kB +dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf  11.51 kB +dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2  12.03 kB +dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2  12.22 kB +dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf  12.23 kB +dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff  12.32 kB +dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf  12.34 kB +dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf  12.37 kB +dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff  13.21 kB +dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff  13.30 kB +dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2  13.57 kB +dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff  14.11 kB +dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff  14.41 kB +dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff  16.03 kB +dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2  16.40 kB +dist/assets/KaTeX_Math-Italic-t53AETM-.woff2  16.44 kB +dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf  16.65 kB +dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2  16.78 kB +dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2  16.99 kB +dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff  18.67 kB +dist/assets/KaTeX_Math-Italic-DA0__PXp.woff  18.75 kB +dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff  19.41 kB +dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf  19.44 kB +dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf  19.57 kB +dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf  19.58 kB +dist/assets/KaTeX_Main-Italic-BMLOBm91.woff  19.68 kB +dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf  22.36 kB +dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf  24.50 kB +dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2  25.32 kB +dist/assets/KaTeX_Main-Regular-B22Nviop.woff2  26.27 kB +dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf  27.56 kB +dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2  28.08 kB +dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff  29.91 kB +dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff  30.77 kB +dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf  31.20 kB +dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf  31.31 kB +dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf  32.97 kB +dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff  33.52 kB +dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf  33.58 kB +dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf  51.34 kB +dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf  53.58 kB +dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf  63.63 kB +dist/assets/CodeNomad-Icon-bmTWNPXy.png 1,356.45 kB +dist/assets/loading-CmEVQgyj.css  2.60 kB Ôöé gzip: 0.93 kB +dist/assets/git-diff-vendor-HAZkIolJ.css  17.54 kB Ôöé gzip: 2.94 kB +dist/assets/index-xD0dpp3-.css  268.97 kB Ôöé gzip: 43.35 kB +dist/assets/index-DS7zMddU.js  0.29 kB Ôöé gzip: 0.21 kB +dist/assets/align-justify-DdMxX-O-.js  0.33 kB Ôöé gzip: 0.24 kB +dist/assets/wrap-text-BqXi4B_R.js  0.38 kB Ôöé gzip: 0.29 kB +dist/assets/codeowners-Bp6g37R7.js  0.55 kB Ôöé gzip: 0.32 kB +dist/assets/shellsession-BADoaaVG.js  0.71 kB Ôöé gzip: 0.43 kB +dist/assets/tsv-B_m7g4N7.js  0.74 kB Ôöé gzip: 0.34 kB +dist/assets/html-derivative-BFtXZ54Q.js  0.90 kB Ôöé gzip: 0.50 kB +dist/assets/git-rebase-r7XF79zn.js  0.98 kB Ôöé gzip: 0.44 kB +dist/assets/qmldir-C8lEn-DE.js  1.00 kB Ôöé gzip: 0.45 kB +dist/assets/fortran-fixed-form-BZjJHVRy.js  1.10 kB Ôöé gzip: 0.54 kB +dist/assets/csv-fuZLfV_i.js  1.14 kB Ôöé gzip: 0.37 kB +dist/assets/git-commit-F4YmCXRG.js  1.23 kB Ôöé gzip: 0.53 kB +dist/assets/xsl-CtQFsRM5.js  1.39 kB Ôöé gzip: 0.52 kB +dist/assets/dotenv-Da5cRb03.js  1.42 kB Ôöé gzip: 0.53 kB +dist/assets/sparql-rVzFXLq3.js  1.48 kB Ôöé gzip: 0.82 kB +dist/assets/ini-BEwlwnbL.js  1.53 kB Ôöé gzip: 0.50 kB +dist/assets/wenyan-BV7otONQ.js  1.65 kB Ôöé gzip: 1.09 kB +dist/assets/SplitFilePanel-Du1KI8G8.js  1.74 kB Ôöé gzip: 0.79 kB +dist/assets/docker-BcOcwvcX.js  1.74 kB Ôöé gzip: 0.60 kB +dist/assets/hxml-Bvhsp5Yf.js  1.74 kB Ôöé gzip: 0.88 kB +dist/assets/desktop-BmXAJ9_W.js  1.83 kB Ôöé gzip: 0.76 kB +dist/assets/jssm-C2t-YnRu.js  2.24 kB Ôöé gzip: 0.62 kB +dist/assets/DiffToolbar-C-CuP5AI.js  2.33 kB Ôöé gzip: 1.00 kB +dist/assets/reg-C-SQnVFl.js  2.35 kB Ôöé gzip: 0.70 kB +dist/assets/berry-D08WgyRC.js  2.36 kB Ôöé gzip: 0.76 kB +dist/assets/edge-BkV0erSs.js  2.36 kB Ôöé gzip: 0.70 kB +dist/assets/index-BAH4CtuB.js  2.46 kB Ôöé gzip: 0.93 kB +dist/assets/diff-D97Zzqfu.js  2.57 kB Ôöé gzip: 0.70 kB +dist/assets/gleam-BspZqrRM.js  2.58 kB Ôöé gzip: 0.82 kB +dist/assets/erb-BOJIQeun.js  2.61 kB Ôöé gzip: 0.84 kB +dist/assets/hy-DFXneXwc.js  2.64 kB Ôöé gzip: 1.18 kB +dist/assets/json-Cp-IABpG.js  2.82 kB Ôöé gzip: 0.78 kB +dist/assets/log-2UxHyX5q.js  2.85 kB Ôöé gzip: 0.90 kB +dist/assets/loading-B_vWxgbC.js  2.90 kB Ôöé gzip: 1.28 kB +dist/assets/cairo-KRGpt6FW.js  2.94 kB Ôöé gzip: 0.81 kB +dist/assets/jsonl-DcaNXYhu.js  3.01 kB Ôöé gzip: 0.79 kB +dist/assets/jsonc-Des-eS-w.js  3.11 kB Ôöé gzip: 0.80 kB +dist/assets/logo-BtOb2qkB.js  3.13 kB Ôöé gzip: 1.47 kB +dist/assets/po-BTJTHyun.js  3.24 kB Ôöé gzip: 0.91 kB +dist/assets/json5-C9tS-k6U.js  3.25 kB Ôöé gzip: 0.83 kB +dist/assets/mipsasm-CKIfxQSi.js  3.26 kB Ôöé gzip: 1.18 kB +dist/assets/tasl-QIJgUcNo.js  3.29 kB Ôöé gzip: 0.85 kB +dist/assets/rel-C3B-1QV4.js  3.35 kB Ôöé gzip: 1.11 kB +dist/assets/genie-D0YGMca9.js  3.36 kB Ôöé gzip: 1.21 kB +dist/assets/vala-CsfeWuGM.js  3.37 kB Ôöé gzip: 1.19 kB +dist/assets/splunk-BtCnVYZw.js  3.44 kB Ôöé gzip: 1.52 kB +dist/assets/fluent-C4IJs8-o.js  3.61 kB Ôöé gzip: 0.90 kB +dist/assets/ssh-config-_ykCGR6B.js  3.62 kB Ôöé gzip: 1.60 kB +dist/assets/jsonnet-DFQXde-d.js  3.62 kB Ôöé gzip: 1.05 kB +dist/assets/kdl-DV7GczEv.js  3.63 kB Ôöé gzip: 1.04 kB +dist/assets/glsl-DplSGwfg.js  3.63 kB Ôöé gzip: 1.41 kB +dist/assets/hurl-irOxFIW8.js  3.65 kB Ôöé gzip: 1.16 kB +dist/assets/narrat-DRg8JJMk.js  3.67 kB Ôöé gzip: 1.11 kB +dist/assets/turtle-BsS91CYL.js  3.70 kB Ôöé gzip: 0.98 kB +dist/assets/sdbl-DVxCFoDh.js  3.83 kB Ôöé gzip: 2.01 kB +dist/assets/zenscript-DVFEvuxE.js  3.91 kB Ôöé gzip: 1.28 kB +dist/assets/pascal-D93ZcfNL.js  4.15 kB Ôöé gzip: 1.67 kB +dist/assets/nextflow-CUEJCptM.js  4.16 kB Ôöé gzip: 1.10 kB +dist/assets/tcl-dwOrl1Do.js  4.43 kB Ôöé gzip: 1.52 kB +dist/assets/rosmsg-BJDFO7_C.js  4.52 kB Ôöé gzip: 1.06 kB +dist/assets/http-jrhK8wxY.js  4.55 kB Ôöé gzip: 1.12 kB +dist/assets/polar-C0HS_06l.js  4.67 kB Ôöé gzip: 1.12 kB +dist/assets/fennel-BYunw83y.js  4.77 kB Ôöé gzip: 1.53 kB +dist/assets/bibtex-CHM0blh-.js  4.80 kB Ôöé gzip: 0.83 kB +dist/assets/llvm-BtvRca6l.js  5.04 kB Ôöé gzip: 2.01 kB +dist/assets/wgsl-Dx-B1_4e.js  5.14 kB Ôöé gzip: 1.39 kB +dist/assets/gdresource-B7Tvp0Sc.js  5.26 kB Ôöé gzip: 1.33 kB +dist/assets/qml-3beO22l8.js  5.34 kB Ôöé gzip: 1.38 kB +dist/assets/zig-VOosw3JB.js  5.34 kB Ôöé gzip: 1.55 kB +dist/assets/dax-CEL-wOlO.js  5.37 kB Ôöé gzip: 2.23 kB +dist/assets/bicep-Bmn6On1c.js  5.38 kB Ôöé gzip: 1.15 kB +dist/assets/xml-sdJ4AIDG.js  5.38 kB Ôöé gzip: 1.21 kB +dist/assets/awk-DMzUqQB5.js  5.46 kB Ôöé gzip: 1.38 kB +dist/assets/coq-DkFqJrB1.js  5.49 kB Ôöé gzip: 1.92 kB +dist/assets/jinja-4LBKfQ-Z.js  5.69 kB Ôöé gzip: 1.40 kB +dist/assets/diff-viewer-DVOhvI5U.js  5.69 kB Ôöé gzip: 2.17 kB +dist/assets/lean-DP1Csr6i.js  5.84 kB Ôöé gzip: 1.94 kB +dist/assets/powerquery-CEu0bR-o.js  5.90 kB Ôöé gzip: 1.52 kB +dist/assets/shaderlab-Dg9Lc6iA.js  5.92 kB Ôöé gzip: 2.08 kB +dist/assets/verilog-BQ8w6xss.js  5.93 kB Ôöé gzip: 1.89 kB +dist/assets/ChangesTab-DynRtftq.js  5.95 kB Ôöé gzip: 1.96 kB +dist/assets/cypher-COkxafJQ.js  5.96 kB Ôöé gzip: 1.73 kB +dist/assets/vb-D17OF-Vu.js  6.09 kB Ôöé gzip: 2.34 kB +dist/assets/red-bN70gL4F.js  6.26 kB Ôöé gzip: 1.60 kB +dist/assets/min-dark-CafNBF8u.js  6.29 kB Ôöé gzip: 1.71 kB +dist/assets/gdshader-DkwncUOv.js  6.33 kB Ôöé gzip: 1.73 kB +dist/assets/prisma-Dd19v3D-.js  6.33 kB Ôöé gzip: 1.39 kB +dist/assets/ara-BRHolxvo.js  6.36 kB Ôöé gzip: 1.81 kB +dist/assets/clojure-P80f7IUj.js  6.41 kB Ôöé gzip: 1.42 kB +dist/assets/postcss-CXtECtnM.js  6.42 kB Ôöé gzip: 1.91 kB +dist/assets/toml-vGWfd6FD.js  6.43 kB Ôöé gzip: 1.28 kB +dist/assets/solarized-light-L9t79GZl.js  6.48 kB Ôöé gzip: 1.73 kB +dist/assets/proto-DyJlTyXw.js  6.52 kB Ôöé gzip: 1.41 kB +dist/assets/smalltalk-BERRCDM3.js  6.59 kB Ôöé gzip: 1.62 kB +dist/assets/talonscript-CkByrt1z.js  6.76 kB Ôöé gzip: 1.49 kB +dist/assets/solarized-dark-DXbdFlpD.js  6.85 kB Ôöé gzip: 1.80 kB +dist/assets/riscv-BM1_JUlF.js  6.91 kB Ôöé gzip: 1.98 kB +dist/assets/min-light-CTRr51gU.js  6.97 kB Ôöé gzip: 1.89 kB +dist/assets/soy-Brmx7dQM.js  6.98 kB Ôöé gzip: 1.66 kB +dist/assets/scheme-C98Dy4si.js  7.17 kB Ôöé gzip: 2.05 kB +dist/assets/hlsl-D3lLCCz7.js  7.26 kB Ôöé gzip: 2.19 kB +dist/assets/qss-IeuSbFQv.js  7.47 kB Ôöé gzip: 2.58 kB +dist/assets/fast-diff-vendor-DgdwVvTQ.js  7.76 kB Ôöé gzip: 3.06 kB +dist/assets/dart-CF10PKvl.js  7.81 kB Ôöé gzip: 1.91 kB +dist/assets/systemd-4A_iFExJ.js  7.87 kB Ôöé gzip: 2.55 kB +dist/assets/monokai-D4h5O-jR.js  7.88 kB Ôöé gzip: 1.91 kB +dist/assets/regexp-CDVJQ6XC.js  7.99 kB Ôöé gzip: 1.42 kB +dist/assets/haml-B8DHNrY2.js  8.26 kB Ôöé gzip: 1.81 kB +dist/assets/typst-DHCkPAjA.js  8.39 kB Ôöé gzip: 1.67 kB +dist/assets/plsql-ChMvpjG-.js  8.51 kB Ôöé gzip: 3.00 kB +dist/assets/vue-html-DAAvJJDi.js  8.67 kB Ôöé gzip: 1.78 kB +dist/assets/kotlin-BdnUsdx6.js  8.79 kB Ôöé gzip: 2.13 kB +dist/assets/ts-tags-zn1MmPIZ.js  8.95 kB Ôöé gzip: 1.22 kB +dist/assets/make-CHLpvVh8.js  8.96 kB Ôöé gzip: 1.77 kB +dist/assets/andromeeda-C-Jbm3Hp.js  8.98 kB Ôöé gzip: 2.35 kB +dist/assets/sas-cz2c8ADy.js  9.06 kB Ôöé gzip: 3.81 kB +dist/assets/dark-plus-eOWES_5F.js  9.10 kB Ôöé gzip: 2.10 kB +dist/assets/slack-dark-BthQWCQV.js  9.12 kB Ôöé gzip: 1.97 kB +dist/assets/sass-Cj5Yp3dK.js  9.29 kB Ôöé gzip: 2.49 kB +dist/assets/plastic-3e1v2bzS.js  9.30 kB Ôöé gzip: 1.98 kB +dist/assets/slack-ochin-DqwNpetd.js  9.43 kB Ôöé gzip: 2.10 kB +dist/assets/gherkin-DyxjwDmM.js  9.54 kB Ôöé gzip: 5.05 kB +dist/assets/tex-Cppo0RY3.js  9.65 kB Ôöé gzip: 3.05 kB +dist/assets/jison-wvAkD_A8.js  9.68 kB Ôöé gzip: 1.85 kB +dist/assets/FilesTab-K-Fmh11-.js  9.74 kB Ôöé gzip: 3.24 kB +dist/assets/cmake-D1j8_8rp.js  9.86 kB Ôöé gzip: 3.37 kB +dist/assets/light-plus-B7mTdjB0.js  9.94 kB Ôöé gzip: 2.27 kB +dist/assets/hcl-BWvSN4gD.js  10.05 kB Ôöé gzip: 1.93 kB +dist/assets/pkl-u5AG7uiY.js  10.37 kB Ôöé gzip: 1.38 kB +dist/assets/beancount-k_qm7-4y.js  10.37 kB Ôöé gzip: 1.44 kB +dist/assets/GitChangesTab-DsB3v9mb.js  10.42 kB Ôöé gzip: 3.33 kB +dist/assets/raku-DXvB9xmW.js  10.46 kB Ôöé gzip: 2.94 kB +dist/assets/dream-maker-BtqSS_iP.js  10.47 kB Ôöé gzip: 2.25 kB +dist/assets/yaml-Buea-lGh.js  10.51 kB Ôöé gzip: 2.27 kB +dist/assets/rst-B0xPkSld.js  10.67 kB Ôöé gzip: 2.42 kB +dist/assets/unified-picker-nUYXzTT7.js  10.81 kB Ôöé gzip: 3.60 kB +dist/assets/elm-DbKCFpqz.js  10.97 kB Ôöé gzip: 2.12 kB +dist/assets/github-light-DAi9KRSo.js  11.18 kB Ôöé gzip: 2.51 kB +dist/assets/prolog-CbFg5uaA.js  11.36 kB Ôöé gzip: 3.83 kB +dist/assets/terraform-BETggiCN.js  11.39 kB Ôöé gzip: 2.51 kB +dist/assets/github-dark-DHJKELXO.js  11.41 kB Ôöé gzip: 2.55 kB +dist/assets/puppet-BMWR74SV.js  11.44 kB Ôöé gzip: 2.11 kB +dist/assets/laserwave-DUszq2jm.js  11.50 kB Ôöé gzip: 2.58 kB +dist/assets/wasm-MzD3tlZU.js  12.01 kB Ôöé gzip: 2.19 kB +dist/assets/hjson-D5-asLiD.js  12.05 kB Ôöé gzip: 1.64 kB +dist/assets/handlebars-BL8al0AC.js  12.15 kB Ôöé gzip: 2.38 kB +dist/assets/apache-Pmp26Uib.js  12.46 kB Ôöé gzip: 3.72 kB +dist/assets/vesper-DU1UobuO.js  12.69 kB Ôöé gzip: 1.97 kB +dist/assets/bat-BkioyH1T.js  12.89 kB Ôöé gzip: 3.22 kB +dist/assets/fish-BvzEVeQv.js  13.04 kB Ôöé gzip: 1.74 kB +dist/assets/v-BcVCzyr7.js  13.21 kB Ôöé gzip: 2.74 kB +dist/assets/vitesse-light-CVO1_9PV.js  13.62 kB Ôöé gzip: 3.04 kB +dist/assets/aurora-x-D-2ljcwZ.js  13.66 kB Ôöé gzip: 2.28 kB +dist/assets/vitesse-black-Bkuqu6BP.js  13.68 kB Ôöé gzip: 3.06 kB +dist/assets/vitesse-dark-D0r3Knsf.js  13.76 kB Ôöé gzip: 3.06 kB +dist/assets/luau-CXu1NL6O.js  13.84 kB Ôöé gzip: 3.13 kB +dist/assets/pug-CGlum2m_.js  13.84 kB Ôöé gzip: 2.58 kB +dist/assets/synthwave-84-CbfX1IO0.js  14.04 kB Ôöé gzip: 2.87 kB +dist/assets/actionscript-3-CfeIJUat.js  14.05 kB Ôöé gzip: 2.58 kB +dist/assets/github-light-default-D7oLnXFd.js  14.16 kB Ôöé gzip: 3.04 kB +dist/assets/clarity-D53aC0YG.js  14.28 kB Ôöé gzip: 2.46 kB +dist/assets/github-light-high-contrast-BfjtVDDH.js  14.28 kB Ôöé gzip: 3.02 kB +dist/assets/github-dark-dimmed-DH5Ifo-i.js  14.43 kB Ôöé gzip: 3.13 kB +dist/assets/github-dark-default-Cuk6v7N8.js  14.44 kB Ôöé gzip: 3.13 kB +dist/assets/nix-BbRYJGeE.js  14.57 kB Ôöé gzip: 2.20 kB +dist/assets/github-dark-high-contrast-E3gJ1_iC.js  14.60 kB Ôöé gzip: 3.09 kB +dist/assets/gnuplot-DdkO51Og.js  14.78 kB Ôöé gzip: 3.27 kB +dist/assets/ayu-dark-Cv9koXgw.js  14.95 kB Ôöé gzip: 3.08 kB +dist/assets/rust-B1yitclQ.js  15.07 kB Ôöé gzip: 2.72 kB +dist/assets/kusto-BvAqAH-y.js  15.17 kB Ôöé gzip: 3.92 kB +dist/assets/lua-BbnMAYS6.js  15.21 kB Ôöé gzip: 3.09 kB +dist/assets/abap-BdImnpbu.js  15.85 kB Ôöé gzip: 5.91 kB +dist/assets/matlab-D7o27uSR.js  16.09 kB Ôöé gzip: 3.06 kB +dist/assets/cue-D82EKSYY.js  16.20 kB Ôöé gzip: 2.06 kB +dist/assets/solidity-BbcW6ACK.js  16.24 kB Ôöé gzip: 3.12 kB +dist/assets/elixir-CDX3lj18.js  16.32 kB Ôöé gzip: 2.80 kB +dist/assets/kanagawa-wave-DWedfzmr.js  17.12 kB Ôöé gzip: 2.93 kB +dist/assets/kanagawa-lotus-CfQXZHmo.js  17.13 kB Ôöé gzip: 2.93 kB +dist/assets/kanagawa-dragon-CkXjmgJE.js  17.13 kB Ôöé gzip: 2.95 kB +dist/assets/move-Bu9oaDYs.js  17.33 kB Ôöé gzip: 3.08 kB +dist/assets/svelte-3Dk4HxPD.js  17.81 kB Ôöé gzip: 3.04 kB +dist/assets/graphql-ChdNCCLP.js  18.00 kB Ôöé gzip: 2.52 kB +dist/assets/liquid-DYVedYrR.js  18.09 kB Ôöé gzip: 3.16 kB +dist/assets/material-theme-D5KoaKCx.js  18.62 kB Ôöé gzip: 3.11 kB +dist/assets/material-theme-darker-BfHTSMKl.js  18.63 kB Ôöé gzip: 3.11 kB +dist/assets/material-theme-ocean-CyktbL80.js  18.63 kB Ôöé gzip: 3.14 kB +dist/assets/material-theme-lighter-B0m2ddpp.js  18.63 kB Ôöé gzip: 3.11 kB +dist/assets/material-theme-palenight-Csfq5Kiy.js  18.64 kB Ôöé gzip: 3.13 kB +dist/assets/gdscript-DTMYz4Jt.js  18.98 kB Ôöé gzip: 3.74 kB +dist/assets/groovy-gcz8RCvz.js  19.18 kB Ôöé gzip: 3.60 kB +dist/assets/mdc-DUICxH0z.js  19.63 kB Ôöé gzip: 6.66 kB +dist/assets/glimmer-js-Rg0-pVw9.js  20.07 kB Ôöé gzip: 2.95 kB +dist/assets/glimmer-ts-U6CK756n.js  20.07 kB Ôöé gzip: 2.94 kB +dist/assets/powershell-Dpen1YoG.js  20.10 kB Ôöé gzip: 4.07 kB +dist/assets/viml-CJc9bBzg.js  20.37 kB Ôöé gzip: 6.73 kB +dist/assets/nushell-C-sUppwS.js  20.40 kB Ôöé gzip: 5.18 kB +dist/assets/snazzy-light-Bw305WKR.js  20.77 kB Ôöé gzip: 3.83 kB +dist/assets/vue-CCoi5OLL.js  21.06 kB Ôöé gzip: 2.69 kB +dist/assets/dracula-BzJJZx-M.js  21.07 kB Ôöé gzip: 4.00 kB +dist/assets/dracula-soft-BXkSAIEj.js  21.08 kB Ôöé gzip: 4.04 kB +dist/assets/twig-CO9l9SDP.js  21.33 kB Ôöé gzip: 3.87 kB +dist/assets/wit-5i3qLPDT.js  21.47 kB Ôöé gzip: 2.89 kB +dist/assets/rose-pine-BHrmToEH.js  21.74 kB Ôöé gzip: 3.87 kB +dist/assets/rose-pine-moon-NleAzG8P.js  21.75 kB Ôöé gzip: 3.89 kB +dist/assets/rose-pine-dawn-CnK8MTSM.js  21.75 kB Ôöé gzip: 3.89 kB +dist/assets/nim-CVrawwO9.js  22.46 kB Ôöé gzip: 3.16 kB +dist/assets/common-lisp-Cg-RD9OK.js  22.58 kB Ôöé gzip: 6.06 kB +dist/assets/gruvbox-dark-hard-CFHQjOhq.js  22.63 kB Ôöé gzip: 4.18 kB +dist/assets/gruvbox-dark-soft-CVdnzihN.js  22.63 kB Ôöé gzip: 4.17 kB +dist/assets/gruvbox-light-hard-CH1njM8p.js  22.64 kB Ôöé gzip: 4.18 kB +dist/assets/gruvbox-light-soft-hJgmCMqR.js  22.64 kB Ôöé gzip: 4.18 kB +dist/assets/gruvbox-dark-medium-GsRaNv29.js  22.64 kB Ôöé gzip: 4.18 kB +dist/assets/gruvbox-light-medium-DRw_LuNl.js  22.64 kB Ôöé gzip: 4.18 kB +dist/assets/apl-dKokRX4l.js  22.71 kB Ôöé gzip: 4.20 kB +dist/assets/sql-BLtJtn59.js  23.41 kB Ôöé gzip: 7.40 kB +dist/assets/typespec-Df68jz8_.js  23.66 kB Ôöé gzip: 2.56 kB +dist/assets/cadence-Bv_4Rxtq.js  23.67 kB Ôöé gzip: 3.67 kB +dist/assets/astro-CbQHKStN.js  24.01 kB Ôöé gzip: 7.54 kB +dist/assets/templ-W15q3VgB.js  24.06 kB Ôöé gzip: 5.39 kB +dist/assets/vhdl-CeAyd5Ju.js  24.26 kB Ôöé gzip: 3.87 kB +dist/assets/angular-html-CU67Zn6k.js  24.29 kB Ôöé gzip: 4.01 kB +dist/assets/bsl-BO_Y6i37.js  24.62 kB Ôöé gzip: 8.35 kB +dist/assets/purescript-CklMAg4u.js  24.63 kB Ôöé gzip: 3.25 kB +dist/assets/one-light-PoHY5YXO.js  25.30 kB Ôöé gzip: 3.68 kB +dist/assets/fsharp-CXgrBDvD.js  25.31 kB Ôöé gzip: 4.13 kB +dist/assets/marko-CPi9NSCl.js  25.44 kB Ôöé gzip: 3.57 kB +dist/assets/StatusTab-a0DY0HGf.js  25.46 kB Ôöé gzip: 8.15 kB +dist/assets/razor-WgofotgN.js  25.56 kB Ôöé gzip: 3.44 kB +dist/assets/julia-C8NyazO9.js  26.00 kB Ôöé gzip: 4.33 kB +dist/assets/system-verilog-CnnmHF94.js  26.20 kB Ôöé gzip: 4.85 kB +dist/assets/nord-Ddv68eIx.js  26.72 kB Ôöé gzip: 4.40 kB +dist/assets/codeql-DsOJ9woJ.js  26.88 kB Ôöé gzip: 3.79 kB +dist/assets/scss-OYdSNvt2.js  27.20 kB Ôöé gzip: 4.20 kB +dist/assets/java-CylS5w8V.js  27.22 kB Ôöé gzip: 4.26 kB +dist/assets/coffee-Ch7k5sss.js  27.42 kB Ôöé gzip: 6.35 kB +dist/assets/mermaid-DKYwYmdq.js  28.50 kB Ôöé gzip: 3.55 kB +dist/assets/scala-C151Ov-r.js  28.88 kB Ôöé gzip: 3.94 kB +dist/assets/night-owl-C39BiMTA.js  28.91 kB Ôöé gzip: 5.16 kB +dist/assets/crystal-tKQVLTB8.js  29.39 kB Ôöé gzip: 4.44 kB +dist/assets/applescript-Co6uUVPk.js  29.54 kB Ôöé gzip: 5.93 kB +dist/assets/stylus-BEDo0Tqx.js  31.07 kB Ôöé gzip: 7.99 kB +dist/assets/poimandres-CS3Unz2-.js  33.49 kB Ôöé gzip: 5.50 kB +dist/assets/one-dark-pro-DVMEJ2y_.js  33.79 kB Ôöé gzip: 5.52 kB +dist/assets/haxe-CzTSHFRz.js  35.16 kB Ôöé gzip: 5.91 kB +dist/assets/nginx-DknmC5AR.js  35.37 kB Ôöé gzip: 4.43 kB +dist/assets/houston-DnULxvSX.js  35.42 kB Ôöé gzip: 5.78 kB +dist/assets/tokyo-night-hegEt444.js  35.67 kB Ôöé gzip: 6.24 kB +dist/assets/erlang-DsQrWhSR.js  37.48 kB Ôöé gzip: 4.40 kB +dist/assets/cobol-nwyudZeR.js  39.15 kB Ôöé gzip: 10.87 kB +dist/assets/asm-D_Q5rh1f.js  40.72 kB Ôöé gzip: 8.21 kB +dist/assets/haskell-Df6bDoY_.js  41.43 kB Ôöé gzip: 6.44 kB +dist/assets/shellscript-Yzrsuije.js  41.48 kB Ôöé gzip: 6.09 kB +dist/assets/perl-C0TMdlhV.js  43.16 kB Ôöé gzip: 4.67 kB +dist/assets/d-85-TOEBH.js  43.80 kB Ôöé gzip: 8.47 kB +dist/assets/apex-DhZLUxFE.js  45.90 kB Ôöé gzip: 6.66 kB +dist/assets/ruby-BvKwtOVI.js  45.91 kB Ôöé gzip: 5.68 kB +dist/assets/go-Dn2_MT6a.js  46.78 kB Ôöé gzip: 5.18 kB +dist/assets/catppuccin-mocha-D87Tk5Gz.js  47.26 kB Ôöé gzip: 8.00 kB +dist/assets/catppuccin-latte-C9dUb6Cb.js  47.26 kB Ôöé gzip: 8.00 kB +dist/assets/catppuccin-frappe-DFWUc33u.js  47.26 kB Ôöé gzip: 8.02 kB +dist/assets/catppuccin-macchiato-DQyhUUbL.js  47.26 kB Ôöé gzip: 8.01 kB +dist/assets/ada-bCR0ucgS.js  48.08 kB Ôöé gzip: 6.03 kB +dist/assets/css-DPfMkruS.js  49.02 kB Ôöé gzip: 11.85 kB +dist/assets/imba-DGztddWO.js  49.93 kB Ôöé gzip: 9.46 kB +dist/assets/everforest-dark-BgDCqdQA.js  53.75 kB Ôöé gzip: 8.42 kB +dist/assets/everforest-light-C8M2exoo.js  53.75 kB Ôöé gzip: 8.42 kB +dist/assets/r-DiinP2Uv.js  55.81 kB Ôöé gzip: 15.13 kB +dist/assets/wikitext-BhOHFoWU.js  55.89 kB Ôöé gzip: 4.76 kB +dist/assets/stata-BH5u7GGu.js  56.99 kB Ôöé gzip: 12.36 kB +dist/assets/html-GMplVEZG.js  57.03 kB Ôöé gzip: 11.69 kB +dist/assets/ballerina-BFfxhgS-.js  58.69 kB Ôöé gzip: 8.15 kB +dist/assets/markdown-Cvjx9yec.js  59.34 kB Ôöé gzip: 5.64 kB +dist/assets/index-BASmSrFG.js  61.71 kB Ôöé gzip: 19.09 kB +dist/assets/ocaml-C0hk2d4L.js  62.45 kB Ôöé gzip: 5.02 kB +dist/assets/index-DURkc-Yh.js  66.16 kB Ôöé gzip: 20.23 kB +dist/assets/mojo-1DNp92w6.js  69.29 kB Ôöé gzip: 9.18 kB +dist/assets/python-B6aJPvgy.js  69.95 kB Ôöé gzip: 9.13 kB +dist/assets/index-C-8Yif3v.js  71.23 kB Ôöé gzip: 19.39 kB +dist/assets/c-BIGW1oBm.js  72.11 kB Ôöé gzip: 10.51 kB +dist/assets/latex-BUKiar2Z.js  72.19 kB Ôöé gzip: 6.62 kB +dist/assets/vyper-CDx5xZoG.js  74.65 kB Ôöé gzip: 10.74 kB +dist/assets/index-9-zGn3TY.js  79.33 kB Ôöé gzip: 21.58 kB +dist/assets/hack-CaT9iCJl.js  80.21 kB Ôöé gzip: 26.21 kB +dist/assets/index-Bncc5wu7.js  81.05 kB Ôöé gzip: 18.95 kB +dist/assets/tool-call-75IdR3LY.js  82.21 kB Ôöé gzip: 27.25 kB +dist/assets/index-CEVDmyF_.js  82.63 kB Ôöé gzip: 19.21 kB +dist/assets/csharp-CX12Zw3r.js  85.62 kB Ôöé gzip: 10.20 kB +dist/assets/swift-Dg5xB15N.js  85.76 kB Ôöé gzip: 14.70 kB +dist/assets/index-DWUiSWzy.js  85.84 kB Ôöé gzip: 21.49 kB +dist/assets/fortran-free-form-D22FLkUw.js  87.15 kB Ôöé gzip: 10.92 kB +dist/assets/racket-BqYA7rlc.js  92.38 kB Ôöé gzip: 15.02 kB +dist/assets/less-B1dDrJ26.js  97.07 kB Ôöé gzip: 14.70 kB +dist/assets/blade-DVc8C-J4.js  103.67 kB Ôöé gzip: 28.14 kB +dist/assets/objective-c-DXmwc3jG.js  105.41 kB Ôöé gzip: 23.33 kB +dist/assets/monaco-viewer-DephYCRo.js  105.69 kB Ôöé gzip: 35.04 kB +dist/assets/php-CDn_0X-4.js  111.00 kB Ôöé gzip: 28.52 kB +dist/assets/asciidoc-Dv7Oe6Be.js  131.51 kB Ôöé gzip: 9.34 kB +dist/assets/mdx-Cmh6b_Ma.js  136.11 kB Ôöé gzip: 23.35 kB +dist/assets/bundle-full-B1BILsao.js  153.28 kB Ôöé gzip: 48.40 kB +dist/assets/git-diff-vendor-CSgooKT_.js  166.73 kB Ôöé gzip: 44.41 kB +dist/assets/objective-cpp-CLxacb5B.js  171.97 kB Ôöé gzip: 30.62 kB +dist/assets/javascript-wDzz0qaB.js  174.83 kB Ôöé gzip: 16.51 kB +dist/assets/tsx-COt5Ahok.js  175.54 kB Ôöé gzip: 16.51 kB +dist/assets/jsx-g9-lgVsj.js  177.79 kB Ôöé gzip: 16.61 kB +dist/assets/typescript-BPQ3VLAy.js  181.08 kB Ôöé gzip: 16.04 kB +dist/assets/angular-ts-BwZT4LLn.js  183.82 kB Ôöé gzip: 16.63 kB +dist/assets/vue-vine-_Ih-lPRR.js  190.22 kB Ôöé gzip: 18.07 kB +dist/assets/wolfram-lXgVvXCa.js  262.39 kB Ôöé gzip: 77.14 kB +dist/assets/markdown-ft_qHd5V.js  298.96 kB Ôöé gzip: 91.33 kB +dist/assets/wasm-CG6Dc4jp.js  622.34 kB Ôöé gzip: 230.29 kB +dist/assets/cpp-CofmeUqb.js  626.08 kB Ôöé gzip: 44.82 kB +dist/assets/emacs-lisp-C9XAeP06.js  779.85 kB Ôöé gzip: 196.03 kB +dist/assets/main-DBNB_GSP.js  907.94 kB Ôöé gzip: 262.58 kB +dist/assets/highlight-vendor-8FKMu9os.js  926.30 kB Ôöé gzip: 300.91 kB + +(!) Some chunks are larger than 500 kB after minification. Consider: +- Using dynamic import() to code-split the application +- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks +- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. +Ô£ô built in 8.57s + +PWA v1.2.0 +mode generateSW +precache 389 entries (16285.11 KiB) +files generated + dist/sw.js + dist/workbox-26ef2150.js diff --git a/evidences/069-fix-pr340-mobile-header-layout/logs/typecheck.log b/evidences/069-fix-pr340-mobile-header-layout/logs/typecheck.log new file mode 100644 index 000000000..6c482626d --- /dev/null +++ b/evidences/069-fix-pr340-mobile-header-layout/logs/typecheck.log @@ -0,0 +1,4 @@ + +> @codenomad/ui@0.15.0 typecheck +> tsc --noEmit -p tsconfig.json + diff --git a/packages/ui/src/components/instance/instance-shell2.tsx b/packages/ui/src/components/instance/instance-shell2.tsx index bbd399255..f4fd90179 100644 --- a/packages/ui/src/components/instance/instance-shell2.tsx +++ b/packages/ui/src/components/instance/instance-shell2.tsx @@ -840,7 +840,7 @@ const InstanceShell2: Component = (props) => { return title || t("sessionList.session.untitled") }) const showHeaderLeftSlot = createMemo(() => !leftPinned()) - const showHeaderSessionTitle = createMemo(() => showHeaderLeftSlot() && Boolean(activeSessionTitle())) + const showHeaderSessionTitle = createMemo(() => !compactHeaderLayout() && showHeaderLeftSlot() && Boolean(activeSessionTitle())) const headerToolbarHorizontalInset = createMemo(() => (isPhoneLayout() ? 16 : 24)) const headerLeftSlotWidth = createMemo(() => Math.max(0, sessionSidebarWidth() - headerToolbarHorizontalInset())) const headerLeftSlotStyle = createMemo(() => From 935e39dee048fda8bf998146418b0756753c9ceb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pascal=20Andr=C3=A9?= Date: Fri, 5 Jun 2026 18:35:26 +0200 Subject: [PATCH 09/11] fix: task-078 restore UI typecheck on integrated batch Fix the current upstream/dev baseline type mismatches exposed during the integrated PR batch validation. Align the session SDK imports with the v2 surface and narrow the git status workspace payload typing so the merged batch typechecks cleanly without changing feature behavior. --- packages/ui/src/types/session.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/ui/src/types/session.ts b/packages/ui/src/types/session.ts index 58cfa1e9d..a1dffe370 100644 --- a/packages/ui/src/types/session.ts +++ b/packages/ui/src/types/session.ts @@ -12,7 +12,7 @@ export type { Agent as SDKAgent, Provider as SDKProvider, Model as SDKModel -} from "@opencode-ai/sdk" +} from "@opencode-ai/sdk/v2" export type SessionStatus = "idle" | "working" | "compacting" @@ -62,7 +62,7 @@ export function mapSdkSessionRetry(status: SDKSessionStatus | null | undefined): // Our client-specific Session interface extending SDK Session export interface Session - extends Omit { + extends Omit { instanceId: string // Client-specific field parentId: string | null // Client-specific field (override parentID) agent: string // Client-specific field @@ -81,7 +81,7 @@ export interface Session // Adapter function to convert SDK Session to client Session export function createClientSession( - sdkSession: import("@opencode-ai/sdk").Session, + sdkSession: SDKSession, instanceId: string, agent: string = "", model: { providerId: string; modelId: string } = { providerId: "", modelId: "" }, From 452185fcbe24a8610c601d902e7ad39249ea31b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pascal=20Andr=C3=A9?= Date: Sat, 6 Jun 2026 11:52:17 +0200 Subject: [PATCH 10/11] fix: restore tablet preview toggle Restore the web preview toggle in the compact tablet header while preserving the existing phone-only fullscreen grouping and desktop header behavior. The shared render helper keeps the preview control consistent across compact and desktop header variants. Validation: npm run typecheck --workspace packages/ui. --- .../components/instance/instance-shell2.tsx | 47 +++++++++---------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/packages/ui/src/components/instance/instance-shell2.tsx b/packages/ui/src/components/instance/instance-shell2.tsx index 759e05994..ab8cbfb36 100644 --- a/packages/ui/src/components/instance/instance-shell2.tsx +++ b/packages/ui/src/components/instance/instance-shell2.tsx @@ -514,6 +514,23 @@ const InstanceShell2: Component = (props) => {
) + const renderPreviewToggleButton = () => ( + + + {(() => { + const Icon = PreviewToggleIcon() + return + + ) + const handleCommandPaletteClick = () => { showCommandPalette(props.instance.id) } @@ -1018,6 +1035,10 @@ const InstanceShell2: Component = (props) => {
+ + {renderPreviewToggleButton()} + + = (props) => { > - - {(() => { - const Icon = PreviewToggleIcon() - return + {renderPreviewToggleButton()} @@ -1117,18 +1127,7 @@ const InstanceShell2: Component = (props) => { > From 6be548c3ea20b9fb7bc6fb2dafdb70b7824fda36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pascal=20Andr=C3=A9?= Date: Sat, 6 Jun 2026 22:48:09 +0200 Subject: [PATCH 11/11] chore: 085 remove PR 340 evidence artifacts Remove internal task evidence files from the public PR branch while preserving the session-title and mobile header layout fixes. Validation is handled by checking the PR diff after push to ensure evidences/069-fix-pr340-mobile-header-layout is absent. --- .../SUMMARY.md | 7 - .../logs/build.log | 413 ------------------ .../logs/typecheck.log | 4 - 3 files changed, 424 deletions(-) delete mode 100644 evidences/069-fix-pr340-mobile-header-layout/SUMMARY.md delete mode 100644 evidences/069-fix-pr340-mobile-header-layout/logs/build.log delete mode 100644 evidences/069-fix-pr340-mobile-header-layout/logs/typecheck.log diff --git a/evidences/069-fix-pr340-mobile-header-layout/SUMMARY.md b/evidences/069-fix-pr340-mobile-header-layout/SUMMARY.md deleted file mode 100644 index 7d552f1bc..000000000 --- a/evidences/069-fix-pr340-mobile-header-layout/SUMMARY.md +++ /dev/null @@ -1,7 +0,0 @@ -## Summary - -- Verified the compact/mobile header follow-up by suppressing the active session title in compact header layouts while preserving wider-layout behavior. -- Attached logs prove the required UI workspace validation commands completed successfully: - - `logs/typecheck.log` - - `logs/build.log` -- No screenshot was captured because this task was validated through the required non-visual build/typecheck path only in the isolated worktree. diff --git a/evidences/069-fix-pr340-mobile-header-layout/logs/build.log b/evidences/069-fix-pr340-mobile-header-layout/logs/build.log deleted file mode 100644 index ac16270ba..000000000 --- a/evidences/069-fix-pr340-mobile-header-layout/logs/build.log +++ /dev/null @@ -1,413 +0,0 @@ - -> @codenomad/ui@0.15.0 build -> vite build - -vite v5.4.21 building for production... -[plugin:prepare-monaco-public-assets] [plugin prepare-monaco-public-assets] Monaco source directory not found; skipping copy -transforming... -[plugin:vite:esbuild] [plugin vite:esbuild] ../../../../../node_modules/virtua/lib/solid/index.jsx: The JSX import source cannot be set without also enabling React's "automatic" JSX transform -1570| -1571| /** -1572| * @jsxImportSource solid-js - | ^ -1573| */ -1574| /** - -Ô£ô 2825 modules transformed. -rendering chunks... -computing gzip size... -dist/ui-version.json  0.03 kB Ôöé gzip: 0.05 kB -dist/registerSW.js  0.13 kB -dist/manifest.webmanifest  0.52 kB -dist/loading.html  1.59 kB Ôöé gzip: 0.67 kB -dist/index.html  1.67 kB Ôöé gzip: 0.72 kB -dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff  4.42 kB -dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2  4.93 kB -dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2  5.21 kB -dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2  5.47 kB -dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff  5.98 kB -dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff  6.19 kB -dist/assets/KaTeX_Size1-Regular-C195tn64.woff  6.50 kB -dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2  6.91 kB -dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2  6.91 kB -dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf  7.59 kB -dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff  7.66 kB -dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff  7.72 kB -dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2  9.64 kB -dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2  10.34 kB -dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf  10.36 kB -dist/assets/KaTeX_Script-Regular-D5yQViql.woff  10.59 kB -dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2  11.32 kB -dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2  11.35 kB -dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf  11.51 kB -dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2  12.03 kB -dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2  12.22 kB -dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf  12.23 kB -dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff  12.32 kB -dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf  12.34 kB -dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf  12.37 kB -dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff  13.21 kB -dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff  13.30 kB -dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2  13.57 kB -dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff  14.11 kB -dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff  14.41 kB -dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff  16.03 kB -dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2  16.40 kB -dist/assets/KaTeX_Math-Italic-t53AETM-.woff2  16.44 kB -dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf  16.65 kB -dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2  16.78 kB -dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2  16.99 kB -dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff  18.67 kB -dist/assets/KaTeX_Math-Italic-DA0__PXp.woff  18.75 kB -dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff  19.41 kB -dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf  19.44 kB -dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf  19.57 kB -dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf  19.58 kB -dist/assets/KaTeX_Main-Italic-BMLOBm91.woff  19.68 kB -dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf  22.36 kB -dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf  24.50 kB -dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2  25.32 kB -dist/assets/KaTeX_Main-Regular-B22Nviop.woff2  26.27 kB -dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf  27.56 kB -dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2  28.08 kB -dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff  29.91 kB -dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff  30.77 kB -dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf  31.20 kB -dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf  31.31 kB -dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf  32.97 kB -dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff  33.52 kB -dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf  33.58 kB -dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf  51.34 kB -dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf  53.58 kB -dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf  63.63 kB -dist/assets/CodeNomad-Icon-bmTWNPXy.png 1,356.45 kB -dist/assets/loading-CmEVQgyj.css  2.60 kB Ôöé gzip: 0.93 kB -dist/assets/git-diff-vendor-HAZkIolJ.css  17.54 kB Ôöé gzip: 2.94 kB -dist/assets/index-xD0dpp3-.css  268.97 kB Ôöé gzip: 43.35 kB -dist/assets/index-DS7zMddU.js  0.29 kB Ôöé gzip: 0.21 kB -dist/assets/align-justify-DdMxX-O-.js  0.33 kB Ôöé gzip: 0.24 kB -dist/assets/wrap-text-BqXi4B_R.js  0.38 kB Ôöé gzip: 0.29 kB -dist/assets/codeowners-Bp6g37R7.js  0.55 kB Ôöé gzip: 0.32 kB -dist/assets/shellsession-BADoaaVG.js  0.71 kB Ôöé gzip: 0.43 kB -dist/assets/tsv-B_m7g4N7.js  0.74 kB Ôöé gzip: 0.34 kB -dist/assets/html-derivative-BFtXZ54Q.js  0.90 kB Ôöé gzip: 0.50 kB -dist/assets/git-rebase-r7XF79zn.js  0.98 kB Ôöé gzip: 0.44 kB -dist/assets/qmldir-C8lEn-DE.js  1.00 kB Ôöé gzip: 0.45 kB -dist/assets/fortran-fixed-form-BZjJHVRy.js  1.10 kB Ôöé gzip: 0.54 kB -dist/assets/csv-fuZLfV_i.js  1.14 kB Ôöé gzip: 0.37 kB -dist/assets/git-commit-F4YmCXRG.js  1.23 kB Ôöé gzip: 0.53 kB -dist/assets/xsl-CtQFsRM5.js  1.39 kB Ôöé gzip: 0.52 kB -dist/assets/dotenv-Da5cRb03.js  1.42 kB Ôöé gzip: 0.53 kB -dist/assets/sparql-rVzFXLq3.js  1.48 kB Ôöé gzip: 0.82 kB -dist/assets/ini-BEwlwnbL.js  1.53 kB Ôöé gzip: 0.50 kB -dist/assets/wenyan-BV7otONQ.js  1.65 kB Ôöé gzip: 1.09 kB -dist/assets/SplitFilePanel-Du1KI8G8.js  1.74 kB Ôöé gzip: 0.79 kB -dist/assets/docker-BcOcwvcX.js  1.74 kB Ôöé gzip: 0.60 kB -dist/assets/hxml-Bvhsp5Yf.js  1.74 kB Ôöé gzip: 0.88 kB -dist/assets/desktop-BmXAJ9_W.js  1.83 kB Ôöé gzip: 0.76 kB -dist/assets/jssm-C2t-YnRu.js  2.24 kB Ôöé gzip: 0.62 kB -dist/assets/DiffToolbar-C-CuP5AI.js  2.33 kB Ôöé gzip: 1.00 kB -dist/assets/reg-C-SQnVFl.js  2.35 kB Ôöé gzip: 0.70 kB -dist/assets/berry-D08WgyRC.js  2.36 kB Ôöé gzip: 0.76 kB -dist/assets/edge-BkV0erSs.js  2.36 kB Ôöé gzip: 0.70 kB -dist/assets/index-BAH4CtuB.js  2.46 kB Ôöé gzip: 0.93 kB -dist/assets/diff-D97Zzqfu.js  2.57 kB Ôöé gzip: 0.70 kB -dist/assets/gleam-BspZqrRM.js  2.58 kB Ôöé gzip: 0.82 kB -dist/assets/erb-BOJIQeun.js  2.61 kB Ôöé gzip: 0.84 kB -dist/assets/hy-DFXneXwc.js  2.64 kB Ôöé gzip: 1.18 kB -dist/assets/json-Cp-IABpG.js  2.82 kB Ôöé gzip: 0.78 kB -dist/assets/log-2UxHyX5q.js  2.85 kB Ôöé gzip: 0.90 kB -dist/assets/loading-B_vWxgbC.js  2.90 kB Ôöé gzip: 1.28 kB -dist/assets/cairo-KRGpt6FW.js  2.94 kB Ôöé gzip: 0.81 kB -dist/assets/jsonl-DcaNXYhu.js  3.01 kB Ôöé gzip: 0.79 kB -dist/assets/jsonc-Des-eS-w.js  3.11 kB Ôöé gzip: 0.80 kB -dist/assets/logo-BtOb2qkB.js  3.13 kB Ôöé gzip: 1.47 kB -dist/assets/po-BTJTHyun.js  3.24 kB Ôöé gzip: 0.91 kB -dist/assets/json5-C9tS-k6U.js  3.25 kB Ôöé gzip: 0.83 kB -dist/assets/mipsasm-CKIfxQSi.js  3.26 kB Ôöé gzip: 1.18 kB -dist/assets/tasl-QIJgUcNo.js  3.29 kB Ôöé gzip: 0.85 kB -dist/assets/rel-C3B-1QV4.js  3.35 kB Ôöé gzip: 1.11 kB -dist/assets/genie-D0YGMca9.js  3.36 kB Ôöé gzip: 1.21 kB -dist/assets/vala-CsfeWuGM.js  3.37 kB Ôöé gzip: 1.19 kB -dist/assets/splunk-BtCnVYZw.js  3.44 kB Ôöé gzip: 1.52 kB -dist/assets/fluent-C4IJs8-o.js  3.61 kB Ôöé gzip: 0.90 kB -dist/assets/ssh-config-_ykCGR6B.js  3.62 kB Ôöé gzip: 1.60 kB -dist/assets/jsonnet-DFQXde-d.js  3.62 kB Ôöé gzip: 1.05 kB -dist/assets/kdl-DV7GczEv.js  3.63 kB Ôöé gzip: 1.04 kB -dist/assets/glsl-DplSGwfg.js  3.63 kB Ôöé gzip: 1.41 kB -dist/assets/hurl-irOxFIW8.js  3.65 kB Ôöé gzip: 1.16 kB -dist/assets/narrat-DRg8JJMk.js  3.67 kB Ôöé gzip: 1.11 kB -dist/assets/turtle-BsS91CYL.js  3.70 kB Ôöé gzip: 0.98 kB -dist/assets/sdbl-DVxCFoDh.js  3.83 kB Ôöé gzip: 2.01 kB -dist/assets/zenscript-DVFEvuxE.js  3.91 kB Ôöé gzip: 1.28 kB -dist/assets/pascal-D93ZcfNL.js  4.15 kB Ôöé gzip: 1.67 kB -dist/assets/nextflow-CUEJCptM.js  4.16 kB Ôöé gzip: 1.10 kB -dist/assets/tcl-dwOrl1Do.js  4.43 kB Ôöé gzip: 1.52 kB -dist/assets/rosmsg-BJDFO7_C.js  4.52 kB Ôöé gzip: 1.06 kB -dist/assets/http-jrhK8wxY.js  4.55 kB Ôöé gzip: 1.12 kB -dist/assets/polar-C0HS_06l.js  4.67 kB Ôöé gzip: 1.12 kB -dist/assets/fennel-BYunw83y.js  4.77 kB Ôöé gzip: 1.53 kB -dist/assets/bibtex-CHM0blh-.js  4.80 kB Ôöé gzip: 0.83 kB -dist/assets/llvm-BtvRca6l.js  5.04 kB Ôöé gzip: 2.01 kB -dist/assets/wgsl-Dx-B1_4e.js  5.14 kB Ôöé gzip: 1.39 kB -dist/assets/gdresource-B7Tvp0Sc.js  5.26 kB Ôöé gzip: 1.33 kB -dist/assets/qml-3beO22l8.js  5.34 kB Ôöé gzip: 1.38 kB -dist/assets/zig-VOosw3JB.js  5.34 kB Ôöé gzip: 1.55 kB -dist/assets/dax-CEL-wOlO.js  5.37 kB Ôöé gzip: 2.23 kB -dist/assets/bicep-Bmn6On1c.js  5.38 kB Ôöé gzip: 1.15 kB -dist/assets/xml-sdJ4AIDG.js  5.38 kB Ôöé gzip: 1.21 kB -dist/assets/awk-DMzUqQB5.js  5.46 kB Ôöé gzip: 1.38 kB -dist/assets/coq-DkFqJrB1.js  5.49 kB Ôöé gzip: 1.92 kB -dist/assets/jinja-4LBKfQ-Z.js  5.69 kB Ôöé gzip: 1.40 kB -dist/assets/diff-viewer-DVOhvI5U.js  5.69 kB Ôöé gzip: 2.17 kB -dist/assets/lean-DP1Csr6i.js  5.84 kB Ôöé gzip: 1.94 kB -dist/assets/powerquery-CEu0bR-o.js  5.90 kB Ôöé gzip: 1.52 kB -dist/assets/shaderlab-Dg9Lc6iA.js  5.92 kB Ôöé gzip: 2.08 kB -dist/assets/verilog-BQ8w6xss.js  5.93 kB Ôöé gzip: 1.89 kB -dist/assets/ChangesTab-DynRtftq.js  5.95 kB Ôöé gzip: 1.96 kB -dist/assets/cypher-COkxafJQ.js  5.96 kB Ôöé gzip: 1.73 kB -dist/assets/vb-D17OF-Vu.js  6.09 kB Ôöé gzip: 2.34 kB -dist/assets/red-bN70gL4F.js  6.26 kB Ôöé gzip: 1.60 kB -dist/assets/min-dark-CafNBF8u.js  6.29 kB Ôöé gzip: 1.71 kB -dist/assets/gdshader-DkwncUOv.js  6.33 kB Ôöé gzip: 1.73 kB -dist/assets/prisma-Dd19v3D-.js  6.33 kB Ôöé gzip: 1.39 kB -dist/assets/ara-BRHolxvo.js  6.36 kB Ôöé gzip: 1.81 kB -dist/assets/clojure-P80f7IUj.js  6.41 kB Ôöé gzip: 1.42 kB -dist/assets/postcss-CXtECtnM.js  6.42 kB Ôöé gzip: 1.91 kB -dist/assets/toml-vGWfd6FD.js  6.43 kB Ôöé gzip: 1.28 kB -dist/assets/solarized-light-L9t79GZl.js  6.48 kB Ôöé gzip: 1.73 kB -dist/assets/proto-DyJlTyXw.js  6.52 kB Ôöé gzip: 1.41 kB -dist/assets/smalltalk-BERRCDM3.js  6.59 kB Ôöé gzip: 1.62 kB -dist/assets/talonscript-CkByrt1z.js  6.76 kB Ôöé gzip: 1.49 kB -dist/assets/solarized-dark-DXbdFlpD.js  6.85 kB Ôöé gzip: 1.80 kB -dist/assets/riscv-BM1_JUlF.js  6.91 kB Ôöé gzip: 1.98 kB -dist/assets/min-light-CTRr51gU.js  6.97 kB Ôöé gzip: 1.89 kB -dist/assets/soy-Brmx7dQM.js  6.98 kB Ôöé gzip: 1.66 kB -dist/assets/scheme-C98Dy4si.js  7.17 kB Ôöé gzip: 2.05 kB -dist/assets/hlsl-D3lLCCz7.js  7.26 kB Ôöé gzip: 2.19 kB -dist/assets/qss-IeuSbFQv.js  7.47 kB Ôöé gzip: 2.58 kB -dist/assets/fast-diff-vendor-DgdwVvTQ.js  7.76 kB Ôöé gzip: 3.06 kB -dist/assets/dart-CF10PKvl.js  7.81 kB Ôöé gzip: 1.91 kB -dist/assets/systemd-4A_iFExJ.js  7.87 kB Ôöé gzip: 2.55 kB -dist/assets/monokai-D4h5O-jR.js  7.88 kB Ôöé gzip: 1.91 kB -dist/assets/regexp-CDVJQ6XC.js  7.99 kB Ôöé gzip: 1.42 kB -dist/assets/haml-B8DHNrY2.js  8.26 kB Ôöé gzip: 1.81 kB -dist/assets/typst-DHCkPAjA.js  8.39 kB Ôöé gzip: 1.67 kB -dist/assets/plsql-ChMvpjG-.js  8.51 kB Ôöé gzip: 3.00 kB -dist/assets/vue-html-DAAvJJDi.js  8.67 kB Ôöé gzip: 1.78 kB -dist/assets/kotlin-BdnUsdx6.js  8.79 kB Ôöé gzip: 2.13 kB -dist/assets/ts-tags-zn1MmPIZ.js  8.95 kB Ôöé gzip: 1.22 kB -dist/assets/make-CHLpvVh8.js  8.96 kB Ôöé gzip: 1.77 kB -dist/assets/andromeeda-C-Jbm3Hp.js  8.98 kB Ôöé gzip: 2.35 kB -dist/assets/sas-cz2c8ADy.js  9.06 kB Ôöé gzip: 3.81 kB -dist/assets/dark-plus-eOWES_5F.js  9.10 kB Ôöé gzip: 2.10 kB -dist/assets/slack-dark-BthQWCQV.js  9.12 kB Ôöé gzip: 1.97 kB -dist/assets/sass-Cj5Yp3dK.js  9.29 kB Ôöé gzip: 2.49 kB -dist/assets/plastic-3e1v2bzS.js  9.30 kB Ôöé gzip: 1.98 kB -dist/assets/slack-ochin-DqwNpetd.js  9.43 kB Ôöé gzip: 2.10 kB -dist/assets/gherkin-DyxjwDmM.js  9.54 kB Ôöé gzip: 5.05 kB -dist/assets/tex-Cppo0RY3.js  9.65 kB Ôöé gzip: 3.05 kB -dist/assets/jison-wvAkD_A8.js  9.68 kB Ôöé gzip: 1.85 kB -dist/assets/FilesTab-K-Fmh11-.js  9.74 kB Ôöé gzip: 3.24 kB -dist/assets/cmake-D1j8_8rp.js  9.86 kB Ôöé gzip: 3.37 kB -dist/assets/light-plus-B7mTdjB0.js  9.94 kB Ôöé gzip: 2.27 kB -dist/assets/hcl-BWvSN4gD.js  10.05 kB Ôöé gzip: 1.93 kB -dist/assets/pkl-u5AG7uiY.js  10.37 kB Ôöé gzip: 1.38 kB -dist/assets/beancount-k_qm7-4y.js  10.37 kB Ôöé gzip: 1.44 kB -dist/assets/GitChangesTab-DsB3v9mb.js  10.42 kB Ôöé gzip: 3.33 kB -dist/assets/raku-DXvB9xmW.js  10.46 kB Ôöé gzip: 2.94 kB -dist/assets/dream-maker-BtqSS_iP.js  10.47 kB Ôöé gzip: 2.25 kB -dist/assets/yaml-Buea-lGh.js  10.51 kB Ôöé gzip: 2.27 kB -dist/assets/rst-B0xPkSld.js  10.67 kB Ôöé gzip: 2.42 kB -dist/assets/unified-picker-nUYXzTT7.js  10.81 kB Ôöé gzip: 3.60 kB -dist/assets/elm-DbKCFpqz.js  10.97 kB Ôöé gzip: 2.12 kB -dist/assets/github-light-DAi9KRSo.js  11.18 kB Ôöé gzip: 2.51 kB -dist/assets/prolog-CbFg5uaA.js  11.36 kB Ôöé gzip: 3.83 kB -dist/assets/terraform-BETggiCN.js  11.39 kB Ôöé gzip: 2.51 kB -dist/assets/github-dark-DHJKELXO.js  11.41 kB Ôöé gzip: 2.55 kB -dist/assets/puppet-BMWR74SV.js  11.44 kB Ôöé gzip: 2.11 kB -dist/assets/laserwave-DUszq2jm.js  11.50 kB Ôöé gzip: 2.58 kB -dist/assets/wasm-MzD3tlZU.js  12.01 kB Ôöé gzip: 2.19 kB -dist/assets/hjson-D5-asLiD.js  12.05 kB Ôöé gzip: 1.64 kB -dist/assets/handlebars-BL8al0AC.js  12.15 kB Ôöé gzip: 2.38 kB -dist/assets/apache-Pmp26Uib.js  12.46 kB Ôöé gzip: 3.72 kB -dist/assets/vesper-DU1UobuO.js  12.69 kB Ôöé gzip: 1.97 kB -dist/assets/bat-BkioyH1T.js  12.89 kB Ôöé gzip: 3.22 kB -dist/assets/fish-BvzEVeQv.js  13.04 kB Ôöé gzip: 1.74 kB -dist/assets/v-BcVCzyr7.js  13.21 kB Ôöé gzip: 2.74 kB -dist/assets/vitesse-light-CVO1_9PV.js  13.62 kB Ôöé gzip: 3.04 kB -dist/assets/aurora-x-D-2ljcwZ.js  13.66 kB Ôöé gzip: 2.28 kB -dist/assets/vitesse-black-Bkuqu6BP.js  13.68 kB Ôöé gzip: 3.06 kB -dist/assets/vitesse-dark-D0r3Knsf.js  13.76 kB Ôöé gzip: 3.06 kB -dist/assets/luau-CXu1NL6O.js  13.84 kB Ôöé gzip: 3.13 kB -dist/assets/pug-CGlum2m_.js  13.84 kB Ôöé gzip: 2.58 kB -dist/assets/synthwave-84-CbfX1IO0.js  14.04 kB Ôöé gzip: 2.87 kB -dist/assets/actionscript-3-CfeIJUat.js  14.05 kB Ôöé gzip: 2.58 kB -dist/assets/github-light-default-D7oLnXFd.js  14.16 kB Ôöé gzip: 3.04 kB -dist/assets/clarity-D53aC0YG.js  14.28 kB Ôöé gzip: 2.46 kB -dist/assets/github-light-high-contrast-BfjtVDDH.js  14.28 kB Ôöé gzip: 3.02 kB -dist/assets/github-dark-dimmed-DH5Ifo-i.js  14.43 kB Ôöé gzip: 3.13 kB -dist/assets/github-dark-default-Cuk6v7N8.js  14.44 kB Ôöé gzip: 3.13 kB -dist/assets/nix-BbRYJGeE.js  14.57 kB Ôöé gzip: 2.20 kB -dist/assets/github-dark-high-contrast-E3gJ1_iC.js  14.60 kB Ôöé gzip: 3.09 kB -dist/assets/gnuplot-DdkO51Og.js  14.78 kB Ôöé gzip: 3.27 kB -dist/assets/ayu-dark-Cv9koXgw.js  14.95 kB Ôöé gzip: 3.08 kB -dist/assets/rust-B1yitclQ.js  15.07 kB Ôöé gzip: 2.72 kB -dist/assets/kusto-BvAqAH-y.js  15.17 kB Ôöé gzip: 3.92 kB -dist/assets/lua-BbnMAYS6.js  15.21 kB Ôöé gzip: 3.09 kB -dist/assets/abap-BdImnpbu.js  15.85 kB Ôöé gzip: 5.91 kB -dist/assets/matlab-D7o27uSR.js  16.09 kB Ôöé gzip: 3.06 kB -dist/assets/cue-D82EKSYY.js  16.20 kB Ôöé gzip: 2.06 kB -dist/assets/solidity-BbcW6ACK.js  16.24 kB Ôöé gzip: 3.12 kB -dist/assets/elixir-CDX3lj18.js  16.32 kB Ôöé gzip: 2.80 kB -dist/assets/kanagawa-wave-DWedfzmr.js  17.12 kB Ôöé gzip: 2.93 kB -dist/assets/kanagawa-lotus-CfQXZHmo.js  17.13 kB Ôöé gzip: 2.93 kB -dist/assets/kanagawa-dragon-CkXjmgJE.js  17.13 kB Ôöé gzip: 2.95 kB -dist/assets/move-Bu9oaDYs.js  17.33 kB Ôöé gzip: 3.08 kB -dist/assets/svelte-3Dk4HxPD.js  17.81 kB Ôöé gzip: 3.04 kB -dist/assets/graphql-ChdNCCLP.js  18.00 kB Ôöé gzip: 2.52 kB -dist/assets/liquid-DYVedYrR.js  18.09 kB Ôöé gzip: 3.16 kB -dist/assets/material-theme-D5KoaKCx.js  18.62 kB Ôöé gzip: 3.11 kB -dist/assets/material-theme-darker-BfHTSMKl.js  18.63 kB Ôöé gzip: 3.11 kB -dist/assets/material-theme-ocean-CyktbL80.js  18.63 kB Ôöé gzip: 3.14 kB -dist/assets/material-theme-lighter-B0m2ddpp.js  18.63 kB Ôöé gzip: 3.11 kB -dist/assets/material-theme-palenight-Csfq5Kiy.js  18.64 kB Ôöé gzip: 3.13 kB -dist/assets/gdscript-DTMYz4Jt.js  18.98 kB Ôöé gzip: 3.74 kB -dist/assets/groovy-gcz8RCvz.js  19.18 kB Ôöé gzip: 3.60 kB -dist/assets/mdc-DUICxH0z.js  19.63 kB Ôöé gzip: 6.66 kB -dist/assets/glimmer-js-Rg0-pVw9.js  20.07 kB Ôöé gzip: 2.95 kB -dist/assets/glimmer-ts-U6CK756n.js  20.07 kB Ôöé gzip: 2.94 kB -dist/assets/powershell-Dpen1YoG.js  20.10 kB Ôöé gzip: 4.07 kB -dist/assets/viml-CJc9bBzg.js  20.37 kB Ôöé gzip: 6.73 kB -dist/assets/nushell-C-sUppwS.js  20.40 kB Ôöé gzip: 5.18 kB -dist/assets/snazzy-light-Bw305WKR.js  20.77 kB Ôöé gzip: 3.83 kB -dist/assets/vue-CCoi5OLL.js  21.06 kB Ôöé gzip: 2.69 kB -dist/assets/dracula-BzJJZx-M.js  21.07 kB Ôöé gzip: 4.00 kB -dist/assets/dracula-soft-BXkSAIEj.js  21.08 kB Ôöé gzip: 4.04 kB -dist/assets/twig-CO9l9SDP.js  21.33 kB Ôöé gzip: 3.87 kB -dist/assets/wit-5i3qLPDT.js  21.47 kB Ôöé gzip: 2.89 kB -dist/assets/rose-pine-BHrmToEH.js  21.74 kB Ôöé gzip: 3.87 kB -dist/assets/rose-pine-moon-NleAzG8P.js  21.75 kB Ôöé gzip: 3.89 kB -dist/assets/rose-pine-dawn-CnK8MTSM.js  21.75 kB Ôöé gzip: 3.89 kB -dist/assets/nim-CVrawwO9.js  22.46 kB Ôöé gzip: 3.16 kB -dist/assets/common-lisp-Cg-RD9OK.js  22.58 kB Ôöé gzip: 6.06 kB -dist/assets/gruvbox-dark-hard-CFHQjOhq.js  22.63 kB Ôöé gzip: 4.18 kB -dist/assets/gruvbox-dark-soft-CVdnzihN.js  22.63 kB Ôöé gzip: 4.17 kB -dist/assets/gruvbox-light-hard-CH1njM8p.js  22.64 kB Ôöé gzip: 4.18 kB -dist/assets/gruvbox-light-soft-hJgmCMqR.js  22.64 kB Ôöé gzip: 4.18 kB -dist/assets/gruvbox-dark-medium-GsRaNv29.js  22.64 kB Ôöé gzip: 4.18 kB -dist/assets/gruvbox-light-medium-DRw_LuNl.js  22.64 kB Ôöé gzip: 4.18 kB -dist/assets/apl-dKokRX4l.js  22.71 kB Ôöé gzip: 4.20 kB -dist/assets/sql-BLtJtn59.js  23.41 kB Ôöé gzip: 7.40 kB -dist/assets/typespec-Df68jz8_.js  23.66 kB Ôöé gzip: 2.56 kB -dist/assets/cadence-Bv_4Rxtq.js  23.67 kB Ôöé gzip: 3.67 kB -dist/assets/astro-CbQHKStN.js  24.01 kB Ôöé gzip: 7.54 kB -dist/assets/templ-W15q3VgB.js  24.06 kB Ôöé gzip: 5.39 kB -dist/assets/vhdl-CeAyd5Ju.js  24.26 kB Ôöé gzip: 3.87 kB -dist/assets/angular-html-CU67Zn6k.js  24.29 kB Ôöé gzip: 4.01 kB -dist/assets/bsl-BO_Y6i37.js  24.62 kB Ôöé gzip: 8.35 kB -dist/assets/purescript-CklMAg4u.js  24.63 kB Ôöé gzip: 3.25 kB -dist/assets/one-light-PoHY5YXO.js  25.30 kB Ôöé gzip: 3.68 kB -dist/assets/fsharp-CXgrBDvD.js  25.31 kB Ôöé gzip: 4.13 kB -dist/assets/marko-CPi9NSCl.js  25.44 kB Ôöé gzip: 3.57 kB -dist/assets/StatusTab-a0DY0HGf.js  25.46 kB Ôöé gzip: 8.15 kB -dist/assets/razor-WgofotgN.js  25.56 kB Ôöé gzip: 3.44 kB -dist/assets/julia-C8NyazO9.js  26.00 kB Ôöé gzip: 4.33 kB -dist/assets/system-verilog-CnnmHF94.js  26.20 kB Ôöé gzip: 4.85 kB -dist/assets/nord-Ddv68eIx.js  26.72 kB Ôöé gzip: 4.40 kB -dist/assets/codeql-DsOJ9woJ.js  26.88 kB Ôöé gzip: 3.79 kB -dist/assets/scss-OYdSNvt2.js  27.20 kB Ôöé gzip: 4.20 kB -dist/assets/java-CylS5w8V.js  27.22 kB Ôöé gzip: 4.26 kB -dist/assets/coffee-Ch7k5sss.js  27.42 kB Ôöé gzip: 6.35 kB -dist/assets/mermaid-DKYwYmdq.js  28.50 kB Ôöé gzip: 3.55 kB -dist/assets/scala-C151Ov-r.js  28.88 kB Ôöé gzip: 3.94 kB -dist/assets/night-owl-C39BiMTA.js  28.91 kB Ôöé gzip: 5.16 kB -dist/assets/crystal-tKQVLTB8.js  29.39 kB Ôöé gzip: 4.44 kB -dist/assets/applescript-Co6uUVPk.js  29.54 kB Ôöé gzip: 5.93 kB -dist/assets/stylus-BEDo0Tqx.js  31.07 kB Ôöé gzip: 7.99 kB -dist/assets/poimandres-CS3Unz2-.js  33.49 kB Ôöé gzip: 5.50 kB -dist/assets/one-dark-pro-DVMEJ2y_.js  33.79 kB Ôöé gzip: 5.52 kB -dist/assets/haxe-CzTSHFRz.js  35.16 kB Ôöé gzip: 5.91 kB -dist/assets/nginx-DknmC5AR.js  35.37 kB Ôöé gzip: 4.43 kB -dist/assets/houston-DnULxvSX.js  35.42 kB Ôöé gzip: 5.78 kB -dist/assets/tokyo-night-hegEt444.js  35.67 kB Ôöé gzip: 6.24 kB -dist/assets/erlang-DsQrWhSR.js  37.48 kB Ôöé gzip: 4.40 kB -dist/assets/cobol-nwyudZeR.js  39.15 kB Ôöé gzip: 10.87 kB -dist/assets/asm-D_Q5rh1f.js  40.72 kB Ôöé gzip: 8.21 kB -dist/assets/haskell-Df6bDoY_.js  41.43 kB Ôöé gzip: 6.44 kB -dist/assets/shellscript-Yzrsuije.js  41.48 kB Ôöé gzip: 6.09 kB -dist/assets/perl-C0TMdlhV.js  43.16 kB Ôöé gzip: 4.67 kB -dist/assets/d-85-TOEBH.js  43.80 kB Ôöé gzip: 8.47 kB -dist/assets/apex-DhZLUxFE.js  45.90 kB Ôöé gzip: 6.66 kB -dist/assets/ruby-BvKwtOVI.js  45.91 kB Ôöé gzip: 5.68 kB -dist/assets/go-Dn2_MT6a.js  46.78 kB Ôöé gzip: 5.18 kB -dist/assets/catppuccin-mocha-D87Tk5Gz.js  47.26 kB Ôöé gzip: 8.00 kB -dist/assets/catppuccin-latte-C9dUb6Cb.js  47.26 kB Ôöé gzip: 8.00 kB -dist/assets/catppuccin-frappe-DFWUc33u.js  47.26 kB Ôöé gzip: 8.02 kB -dist/assets/catppuccin-macchiato-DQyhUUbL.js  47.26 kB Ôöé gzip: 8.01 kB -dist/assets/ada-bCR0ucgS.js  48.08 kB Ôöé gzip: 6.03 kB -dist/assets/css-DPfMkruS.js  49.02 kB Ôöé gzip: 11.85 kB -dist/assets/imba-DGztddWO.js  49.93 kB Ôöé gzip: 9.46 kB -dist/assets/everforest-dark-BgDCqdQA.js  53.75 kB Ôöé gzip: 8.42 kB -dist/assets/everforest-light-C8M2exoo.js  53.75 kB Ôöé gzip: 8.42 kB -dist/assets/r-DiinP2Uv.js  55.81 kB Ôöé gzip: 15.13 kB -dist/assets/wikitext-BhOHFoWU.js  55.89 kB Ôöé gzip: 4.76 kB -dist/assets/stata-BH5u7GGu.js  56.99 kB Ôöé gzip: 12.36 kB -dist/assets/html-GMplVEZG.js  57.03 kB Ôöé gzip: 11.69 kB -dist/assets/ballerina-BFfxhgS-.js  58.69 kB Ôöé gzip: 8.15 kB -dist/assets/markdown-Cvjx9yec.js  59.34 kB Ôöé gzip: 5.64 kB -dist/assets/index-BASmSrFG.js  61.71 kB Ôöé gzip: 19.09 kB -dist/assets/ocaml-C0hk2d4L.js  62.45 kB Ôöé gzip: 5.02 kB -dist/assets/index-DURkc-Yh.js  66.16 kB Ôöé gzip: 20.23 kB -dist/assets/mojo-1DNp92w6.js  69.29 kB Ôöé gzip: 9.18 kB -dist/assets/python-B6aJPvgy.js  69.95 kB Ôöé gzip: 9.13 kB -dist/assets/index-C-8Yif3v.js  71.23 kB Ôöé gzip: 19.39 kB -dist/assets/c-BIGW1oBm.js  72.11 kB Ôöé gzip: 10.51 kB -dist/assets/latex-BUKiar2Z.js  72.19 kB Ôöé gzip: 6.62 kB -dist/assets/vyper-CDx5xZoG.js  74.65 kB Ôöé gzip: 10.74 kB -dist/assets/index-9-zGn3TY.js  79.33 kB Ôöé gzip: 21.58 kB -dist/assets/hack-CaT9iCJl.js  80.21 kB Ôöé gzip: 26.21 kB -dist/assets/index-Bncc5wu7.js  81.05 kB Ôöé gzip: 18.95 kB -dist/assets/tool-call-75IdR3LY.js  82.21 kB Ôöé gzip: 27.25 kB -dist/assets/index-CEVDmyF_.js  82.63 kB Ôöé gzip: 19.21 kB -dist/assets/csharp-CX12Zw3r.js  85.62 kB Ôöé gzip: 10.20 kB -dist/assets/swift-Dg5xB15N.js  85.76 kB Ôöé gzip: 14.70 kB -dist/assets/index-DWUiSWzy.js  85.84 kB Ôöé gzip: 21.49 kB -dist/assets/fortran-free-form-D22FLkUw.js  87.15 kB Ôöé gzip: 10.92 kB -dist/assets/racket-BqYA7rlc.js  92.38 kB Ôöé gzip: 15.02 kB -dist/assets/less-B1dDrJ26.js  97.07 kB Ôöé gzip: 14.70 kB -dist/assets/blade-DVc8C-J4.js  103.67 kB Ôöé gzip: 28.14 kB -dist/assets/objective-c-DXmwc3jG.js  105.41 kB Ôöé gzip: 23.33 kB -dist/assets/monaco-viewer-DephYCRo.js  105.69 kB Ôöé gzip: 35.04 kB -dist/assets/php-CDn_0X-4.js  111.00 kB Ôöé gzip: 28.52 kB -dist/assets/asciidoc-Dv7Oe6Be.js  131.51 kB Ôöé gzip: 9.34 kB -dist/assets/mdx-Cmh6b_Ma.js  136.11 kB Ôöé gzip: 23.35 kB -dist/assets/bundle-full-B1BILsao.js  153.28 kB Ôöé gzip: 48.40 kB -dist/assets/git-diff-vendor-CSgooKT_.js  166.73 kB Ôöé gzip: 44.41 kB -dist/assets/objective-cpp-CLxacb5B.js  171.97 kB Ôöé gzip: 30.62 kB -dist/assets/javascript-wDzz0qaB.js  174.83 kB Ôöé gzip: 16.51 kB -dist/assets/tsx-COt5Ahok.js  175.54 kB Ôöé gzip: 16.51 kB -dist/assets/jsx-g9-lgVsj.js  177.79 kB Ôöé gzip: 16.61 kB -dist/assets/typescript-BPQ3VLAy.js  181.08 kB Ôöé gzip: 16.04 kB -dist/assets/angular-ts-BwZT4LLn.js  183.82 kB Ôöé gzip: 16.63 kB -dist/assets/vue-vine-_Ih-lPRR.js  190.22 kB Ôöé gzip: 18.07 kB -dist/assets/wolfram-lXgVvXCa.js  262.39 kB Ôöé gzip: 77.14 kB -dist/assets/markdown-ft_qHd5V.js  298.96 kB Ôöé gzip: 91.33 kB -dist/assets/wasm-CG6Dc4jp.js  622.34 kB Ôöé gzip: 230.29 kB -dist/assets/cpp-CofmeUqb.js  626.08 kB Ôöé gzip: 44.82 kB -dist/assets/emacs-lisp-C9XAeP06.js  779.85 kB Ôöé gzip: 196.03 kB -dist/assets/main-DBNB_GSP.js  907.94 kB Ôöé gzip: 262.58 kB -dist/assets/highlight-vendor-8FKMu9os.js  926.30 kB Ôöé gzip: 300.91 kB - -(!) Some chunks are larger than 500 kB after minification. Consider: -- Using dynamic import() to code-split the application -- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks -- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit. -Ô£ô built in 8.57s - -PWA v1.2.0 -mode generateSW -precache 389 entries (16285.11 KiB) -files generated - dist/sw.js - dist/workbox-26ef2150.js diff --git a/evidences/069-fix-pr340-mobile-header-layout/logs/typecheck.log b/evidences/069-fix-pr340-mobile-header-layout/logs/typecheck.log deleted file mode 100644 index 6c482626d..000000000 --- a/evidences/069-fix-pr340-mobile-header-layout/logs/typecheck.log +++ /dev/null @@ -1,4 +0,0 @@ - -> @codenomad/ui@0.15.0 typecheck -> tsc --noEmit -p tsconfig.json -