From 0c866df6356510193959eb48edc6a9cd37e9a3b9 Mon Sep 17 00:00:00 2001 From: Raquel Smith Date: Fri, 19 Jun 2026 17:00:24 -0700 Subject: [PATCH 1/2] fix(canvas): keep bluebird Home nav in the Channels space MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The project-bluebird left nav's Home item called navigateToHome, routing to /code/home and leaving the Channels space — switching the whole view back to the Code app. Point it at the existing /website/home mirror (navigateToWebsiteHome) instead, so it renders the same shared HomeView while keeping the channels chrome. One source of truth: both /code/home and /website/home render HomeView. Generated-By: PostHog Code Task-Id: b3de37db-b354-417e-8d5e-5daf6a22d6c7 --- .../src/features/canvas/components/ChannelsSidebar.tsx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/ui/src/features/canvas/components/ChannelsSidebar.tsx b/packages/ui/src/features/canvas/components/ChannelsSidebar.tsx index 1cba5f326..ef997a405 100644 --- a/packages/ui/src/features/canvas/components/ChannelsSidebar.tsx +++ b/packages/ui/src/features/canvas/components/ChannelsSidebar.tsx @@ -13,9 +13,9 @@ import { SidebarItem } from "@posthog/ui/features/sidebar/components/SidebarItem import { navigateToAgents, navigateToCanvas, - navigateToHome, navigateToInbox, navigateToSkills, + navigateToWebsiteHome, } from "@posthog/ui/router/navigationBridge"; import { useAppView } from "@posthog/ui/router/useAppView"; import { Box, Flex } from "@radix-ui/themes"; @@ -32,8 +32,10 @@ const NON_CANVAS_WEBSITE_PREFIXES = [ ]; // The global nav brought over from the Code app — a single icon+label row each, -// no rail. These are app-wide destinations (they leave the Channels space for -// the corresponding Code view); the channel tree below is channel browsing. +// no rail. Home points at the /website/home mirror so it stays in the Channels +// space (same shared HomeView, channels chrome kept); the other rows are +// app-wide destinations that leave the Channels space for the Code view. The +// channel tree below is channel browsing. function ChannelsNav() { const view = useAppView(); // Active on the canvas surfaces: the channels index, a channel, or a canvas — @@ -59,7 +61,7 @@ function ChannelsNav() { } label="Home" isActive={view.type === "home"} - onClick={navigateToHome} + onClick={navigateToWebsiteHome} /> Date: Fri, 19 Jun 2026 17:40:04 -0700 Subject: [PATCH 2/2] feat: gate Channels Home nav button behind posthog-code-home-tab The bluebird/Channels sidebar rendered its own Home SidebarItem unconditionally, unlike the Code pane's SidebarNavSection which gates HomeItem behind HOME_TAB_FLAG. Put the Channels Home button behind the same flag so the two navs stay consistent. Generated-By: PostHog Code Task-Id: 9aa4efe5-2287-4f06-9bd7-b591469d3437 --- .../canvas/components/ChannelsSidebar.tsx | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/packages/ui/src/features/canvas/components/ChannelsSidebar.tsx b/packages/ui/src/features/canvas/components/ChannelsSidebar.tsx index ef997a405..97639e6f1 100644 --- a/packages/ui/src/features/canvas/components/ChannelsSidebar.tsx +++ b/packages/ui/src/features/canvas/components/ChannelsSidebar.tsx @@ -6,7 +6,9 @@ import { SquaresFourIcon, TrayIcon, } from "@phosphor-icons/react"; +import { HOME_TAB_FLAG } from "@posthog/shared/constants"; import { ChannelsList } from "@posthog/ui/features/canvas/components/ChannelsList"; +import { useFeatureFlag } from "@posthog/ui/features/feature-flags/useFeatureFlag"; import { openSettings } from "@posthog/ui/features/settings/hooks/useOpenSettings"; import { ProjectSwitcher } from "@posthog/ui/features/sidebar/components/ProjectSwitcher"; import { SidebarItem } from "@posthog/ui/features/sidebar/components/SidebarItem"; @@ -38,6 +40,7 @@ const NON_CANVAS_WEBSITE_PREFIXES = [ // channel tree below is channel browsing. function ChannelsNav() { const view = useAppView(); + const homeTabEnabled = useFeatureFlag(HOME_TAB_FLAG); // Active on the canvas surfaces: the channels index, a channel, or a canvas — // any /website route that isn't one of the cross-app mirrors above. const isCanvasActive = useRouterState({ @@ -51,18 +54,20 @@ function ChannelsNav() { }); return ( - - } - label="Home" - isActive={view.type === "home"} - onClick={navigateToWebsiteHome} - /> + {homeTabEnabled && ( + + } + label="Home" + isActive={view.type === "home"} + onClick={navigateToWebsiteHome} + /> + )}