From dcb62c5df68ee87a709038bf74ec6bf2204e22fa Mon Sep 17 00:00:00 2001
From: Urjit Chakraborty <135136842+urjitc@users.noreply.github.com>
Date: Sat, 17 Jan 2026 14:04:55 -0500
Subject: [PATCH 1/4] feat: add home route; redirect dashboard to home
---
src/app/dashboard/[slug]/page.tsx | 18 +++++++++++++++---
src/app/dashboard/page.tsx | 26 ++++++++++++++------------
src/app/home/page.tsx | 17 +++++++++++++++++
3 files changed, 46 insertions(+), 15 deletions(-)
create mode 100644 src/app/home/page.tsx
diff --git a/src/app/dashboard/[slug]/page.tsx b/src/app/dashboard/[slug]/page.tsx
index 9a10d1a6..90f95f36 100644
--- a/src/app/dashboard/[slug]/page.tsx
+++ b/src/app/dashboard/[slug]/page.tsx
@@ -1,10 +1,22 @@
/**
* Dynamic route for workspace slugs: /dashboard/[slug]
- * This imports and renders the same dashboard content as /dashboard
+ * Renders the dashboard shell for an active workspace.
*/
-import DashboardPage from "../page";
+import { SEO } from "@/components/seo/SEO";
+import { DashboardShell } from "../page";
export default function WorkspacePage() {
- return ;
+ return (
+ <>
+
+
+ >
+ );
}
diff --git a/src/app/dashboard/page.tsx b/src/app/dashboard/page.tsx
index d74f8d64..6a1e80f3 100644
--- a/src/app/dashboard/page.tsx
+++ b/src/app/dashboard/page.tsx
@@ -4,7 +4,6 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
import { Loader2 } from "lucide-react";
import { useRouter } from "next/navigation";
import { usePostHog } from 'posthog-js/react';
-import { SEO } from "@/components/seo/SEO";
import type { AgentState } from "@/lib/workspace-state/types";
import { initialState } from "@/lib/workspace-state/state";
import { useScrollHeader } from "@/hooks/ui/use-scroll-header";
@@ -364,7 +363,7 @@ function DashboardContent({
// Main page component
// Main page component
-function DashboardPage() {
+export function DashboardPage() {
const router = useRouter();
// Get workspace context
const {
@@ -431,7 +430,7 @@ function DashboardPage() {
}
// Wrapper for sidebar provider
-function SidebarCoordinator({ children }: { children: React.ReactNode }) {
+export function SidebarCoordinator({ children }: { children: React.ReactNode }) {
return (
{children}
@@ -440,7 +439,7 @@ function SidebarCoordinator({ children }: { children: React.ReactNode }) {
}
// Component to handle anonymous users - redirect to guest-setup if no session
-function AnonymousSessionHandler({ children }: { children: React.ReactNode }) {
+export function AnonymousSessionHandler({ children }: { children: React.ReactNode }) {
const { data: session, isPending } = useSession();
const router = useRouter();
@@ -483,16 +482,9 @@ function AnonymousSessionHandler({ children }: { children: React.ReactNode }) {
return <>{children}>;
}
-export default function Page() {
+export function DashboardShell() {
return (
<>
-
@@ -506,3 +498,13 @@ export default function Page() {
>
);
}
+
+export default function Page() {
+ const router = useRouter();
+
+ useEffect(() => {
+ router.replace("/home");
+ }, [router]);
+
+ return null;
+}
diff --git a/src/app/home/page.tsx b/src/app/home/page.tsx
new file mode 100644
index 00000000..4d59a74f
--- /dev/null
+++ b/src/app/home/page.tsx
@@ -0,0 +1,17 @@
+import { SEO } from "@/components/seo/SEO";
+import { DashboardShell } from "../dashboard/page";
+
+export default function HomePage() {
+ return (
+ <>
+
+
+ >
+ );
+}
From 6af1c238d6a9e62a9004d2d44adaceace487e52e Mon Sep 17 00:00:00 2001
From: Urjit Chakraborty <135136842+urjitc@users.noreply.github.com>
Date: Sat, 17 Jan 2026 14:05:12 -0500
Subject: [PATCH 2/4] refactor: update navigation links to home; route share
exits to home
---
src/app/share/[id]/page.tsx | 2 +-
src/components/landing/Navbar.tsx | 4 ++--
src/components/workspace-canvas/WorkspaceSidebar.tsx | 2 +-
src/components/workspace/SharedWorkspaceModal.tsx | 2 +-
src/contexts/WorkspaceContext.tsx | 2 +-
5 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/app/share/[id]/page.tsx b/src/app/share/[id]/page.tsx
index ac143736..42d2e8dc 100644
--- a/src/app/share/[id]/page.tsx
+++ b/src/app/share/[id]/page.tsx
@@ -170,7 +170,7 @@ export default function SharePage() {
const handleModalClose = (open: boolean) => {
if (!open) {
// Redirect to dashboard when modal is closed without importing
- router.push("/dashboard");
+ router.push("/home");
}
};
diff --git a/src/components/landing/Navbar.tsx b/src/components/landing/Navbar.tsx
index bc0402dc..05c1624e 100644
--- a/src/components/landing/Navbar.tsx
+++ b/src/components/landing/Navbar.tsx
@@ -138,7 +138,7 @@ export function Navbar() {
variant="outline"
className="rounded-md font-medium transition-all hover:bg-foreground/5"
>
-
+
Dashboard
@@ -235,7 +235,7 @@ export function Navbar() {
posthog.capture('navbar-dashboard-clicked', { location: 'mobile' })}
className="cursor-pointer"
>
diff --git a/src/components/workspace-canvas/WorkspaceSidebar.tsx b/src/components/workspace-canvas/WorkspaceSidebar.tsx
index 32efe3e9..0cff9bd5 100644
--- a/src/components/workspace-canvas/WorkspaceSidebar.tsx
+++ b/src/components/workspace-canvas/WorkspaceSidebar.tsx
@@ -196,7 +196,7 @@ function WorkspaceSidebar({
ThinkEx
0) {
switchWorkspace(remainingWorkspaces[0].slug || remainingWorkspaces[0].id);
} else {
- router.push("/dashboard");
+ router.push("/home");
}
}
From a663210381bfb2e68717f4fc3b3ad88c3e3e4b74 Mon Sep 17 00:00:00 2001
From: Urjit Chakraborty <135136842+urjitc@users.noreply.github.com>
Date: Sat, 17 Jan 2026 14:05:22 -0500
Subject: [PATCH 3/4] refactor: align auth redirects with home; update
onboarding redirect filter
---
src/app/auth/[path]/page.tsx | 2 +-
src/app/guest-setup/page.tsx | 4 ++--
src/app/onboarding/page.tsx | 11 ++++++++---
src/proxy.ts | 10 +++++-----
4 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/src/app/auth/[path]/page.tsx b/src/app/auth/[path]/page.tsx
index bb2a89c4..04746e8e 100644
--- a/src/app/auth/[path]/page.tsx
+++ b/src/app/auth/[path]/page.tsx
@@ -18,7 +18,7 @@ export default async function AuthPage({
const { path } = await params;
const { redirect_url } = await searchParams;
- // Default to /dashboard if no redirect_url is provided
+ // Default to /onboarding if no redirect_url is provided
// Otherwise use the redirect_url from query params (e.g., from share links)
const redirectTo = redirect_url || "/onboarding";
diff --git a/src/app/guest-setup/page.tsx b/src/app/guest-setup/page.tsx
index 58f3b684..9403186d 100644
--- a/src/app/guest-setup/page.tsx
+++ b/src/app/guest-setup/page.tsx
@@ -29,7 +29,7 @@ export default function GuestSetupPage() {
try {
// Step 1: Check if already authenticated (not anonymous)
if (session && !session.user.isAnonymous) {
- router.replace("/dashboard");
+ router.replace("/home");
return;
}
@@ -55,7 +55,7 @@ export default function GuestSetupPage() {
if (data.slug) {
router.replace(`/dashboard/${data.slug}`);
} else {
- router.replace("/dashboard");
+ router.replace("/home");
}
} catch (error) {
console.error("Guest setup error:", error);
diff --git a/src/app/onboarding/page.tsx b/src/app/onboarding/page.tsx
index 9f60a18d..3c9bcce8 100644
--- a/src/app/onboarding/page.tsx
+++ b/src/app/onboarding/page.tsx
@@ -56,15 +56,20 @@ export default function OnboardingPage() {
// If there's a redirect_url that's NOT a dashboard route (e.g., share links),
// prioritize that over the onboarding redirect
- if (redirectUrl && !redirectUrl.startsWith("/dashboard") && !redirectUrl.startsWith("/onboarding")) {
+ if (
+ redirectUrl &&
+ !redirectUrl.startsWith("/dashboard") &&
+ !redirectUrl.startsWith("/onboarding") &&
+ !redirectUrl.startsWith("/home")
+ ) {
sessionStorage.removeItem("auth_redirect_url");
router.replace(redirectUrl);
} else if (data.redirectTo) {
// Use the onboarding redirect (demo workspace)
router.replace(data.redirectTo);
} else {
- // Existing user, go to dashboard
- router.replace("/dashboard");
+ // Existing user, go to home
+ router.replace("/home");
}
} catch (error) {
if ((error as Error).name !== "AbortError") {
diff --git a/src/proxy.ts b/src/proxy.ts
index 2e9f4f8e..dd5c8934 100644
--- a/src/proxy.ts
+++ b/src/proxy.ts
@@ -18,20 +18,20 @@ export async function proxy(request: NextRequest) {
const sessionCookie = getSessionCookie(request);
const { pathname } = request.nextUrl;
- // Redirect authenticated users from root to dashboard
+ // Redirect authenticated users from root to home
if (sessionCookie && pathname === "/") {
- return NextResponse.redirect(new URL("/dashboard", request.url));
+ return NextResponse.redirect(new URL("/home", request.url));
}
// Redirect authenticated users away from auth pages
if (sessionCookie && ["/sign-in", "/sign-up"].includes(pathname)) {
// Preserve redirect_url if present
- const redirectUrl = request.nextUrl.searchParams.get('redirect_url') || '/dashboard';
+ const redirectUrl = request.nextUrl.searchParams.get('redirect_url') || '/home';
return NextResponse.redirect(new URL(redirectUrl, request.url));
}
- // Allow anonymous users to access dashboard - they'll get an anonymous session created automatically
- // NOTE: Dashboard page component handles creating anonymous sessions for unauthenticated users
+ // Allow anonymous users to access home - they'll get an anonymous session created automatically
+ // NOTE: Home page component handles creating anonymous sessions for unauthenticated users
// Actual auth validation happens in API routes, not in middleware
return NextResponse.next();
From 5aac0f26aba27f59fe6149a07089f20cd5738e87 Mon Sep 17 00:00:00 2001
From: Urjit Chakraborty <135136842+urjitc@users.noreply.github.com>
Date: Sat, 17 Jan 2026 14:09:25 -0500
Subject: [PATCH 4/4] fix: prevent sidebar button from losing padding at small
widths; add shrink-0 to SidebarTrigger component to fix all usages
---
src/components/chat/AppChatHeader.tsx | 1 -
src/components/ui/sidebar.tsx | 2 +-
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/components/chat/AppChatHeader.tsx b/src/components/chat/AppChatHeader.tsx
index 7c84b35c..b17877ba 100644
--- a/src/components/chat/AppChatHeader.tsx
+++ b/src/components/chat/AppChatHeader.tsx
@@ -212,7 +212,6 @@ export function AppChatHeader({
closeAllPanels();
}
}}
- className="shrink-0"
/>
diff --git a/src/components/ui/sidebar.tsx b/src/components/ui/sidebar.tsx
index 7077dac2..4aba11e5 100644
--- a/src/components/ui/sidebar.tsx
+++ b/src/components/ui/sidebar.tsx
@@ -267,7 +267,7 @@ function SidebarTrigger({
data-slot="sidebar-trigger"
aria-label="Toggle Sidebar"
className={cn(
- "inline-flex h-8 w-8 items-center justify-center rounded-md border border-sidebar-border text-muted-foreground hover:text-sidebar-foreground hover:bg-sidebar-accent transition-colors cursor-pointer",
+ "inline-flex h-8 w-8 shrink-0 items-center justify-center rounded-md border border-sidebar-border text-muted-foreground hover:text-sidebar-foreground hover:bg-sidebar-accent transition-colors cursor-pointer",
className
)}
onClick={(event) => {