From 63f4dc6eefc62e2b7706803a723b30d54ca2fa82 Mon Sep 17 00:00:00 2001 From: rob thijssen Date: Tue, 21 Jul 2026 15:42:47 +0300 Subject: [PATCH] fork: disable the cloud-shutdown banner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upstream's hosted service is gone, so the "Vibe Kanban Cloud is shutting down. Export your data within 30 days." bar is dead UI on a self-hosted instance — it points at vibekanban.com/shutdown and there is nothing behind it. The banner arrived with the export feature (3733865, #3344) rather than with the sunset commits, so it cannot be reverted wholesale without also losing export. Both shells already gate it behind showCloudShutdownBanner, so pin that to false and keep the export routes and handlers intact. isExportRoute in RemoteAppShell existed only to feed that expression and is dropped with it; the packages set noUnusedLocals, so leaving it would fail the build. isProjectRoute, isExportActive and isSignedIn are all used elsewhere and are untouched. --- packages/remote-web/src/app/layout/RemoteAppShell.tsx | 6 +++--- .../shared/components/ui-new/containers/SharedAppLayout.tsx | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/remote-web/src/app/layout/RemoteAppShell.tsx b/packages/remote-web/src/app/layout/RemoteAppShell.tsx index 91abafc5..f670811d 100644 --- a/packages/remote-web/src/app/layout/RemoteAppShell.tsx +++ b/packages/remote-web/src/app/layout/RemoteAppShell.tsx @@ -58,9 +58,9 @@ export function RemoteAppShell({ children }: RemoteAppShellProps) { const { isSignedIn } = useAuth(); const isWorkspaceContextRoute = location.pathname.includes("/workspaces"); const isProjectRoute = /^\/projects\/[^/]+/.test(location.pathname); - const isExportRoute = location.pathname === "/export"; - const showCloudShutdownBanner = - isExportRoute || (isSignedIn && isProjectRoute); + // lair fork: upstream's hosted service is gone, so the cloud-shutdown + // banner is dead UI here. The export routes and handlers are kept. + const showCloudShutdownBanner = false; useCommandBarShortcut( () => CommandBarDialog.show(), diff --git a/packages/web-core/src/shared/components/ui-new/containers/SharedAppLayout.tsx b/packages/web-core/src/shared/components/ui-new/containers/SharedAppLayout.tsx index f64a228f..5ed2df1e 100644 --- a/packages/web-core/src/shared/components/ui-new/containers/SharedAppLayout.tsx +++ b/packages/web-core/src/shared/components/ui-new/containers/SharedAppLayout.tsx @@ -173,8 +173,9 @@ export function SharedAppLayout() { ); const isWorkspacesActive = isLocalWorkspacesDestination(currentDestination); const isExportActive = currentDestination?.kind === 'export'; - const showCloudShutdownBanner = - isExportActive || (isSignedIn && isProjectDestination(currentDestination)); + // lair fork: upstream's hosted service is gone, so the cloud-shutdown + // banner is dead UI here. The export routes and handlers are kept. + const showCloudShutdownBanner = false; const isWorkspaceSidebarPreviewEnabled = !isMobile && isWorkspacesActive && !isLeftSidebarVisible; const activeProjectId = projectDestination?.projectId ?? null;