From 159881a225f056f91516df635408f6f6b7ee20fc Mon Sep 17 00:00:00 2001
From: Cursor Agent
Date: Sun, 26 Apr 2026 21:28:32 +0000
Subject: [PATCH 1/5] Fix duplicate analysis route handler
Co-authored-by: Cole Collins
---
app/api/analyses/[id]/route.ts | 30 ------------------------------
1 file changed, 30 deletions(-)
diff --git a/app/api/analyses/[id]/route.ts b/app/api/analyses/[id]/route.ts
index 0cfe7e4..8f62e49 100644
--- a/app/api/analyses/[id]/route.ts
+++ b/app/api/analyses/[id]/route.ts
@@ -1,36 +1,6 @@
import { NextRequest, NextResponse } from 'next/server'
import { getAnalysisById, getBlueprintsByAnalysis, getRepositoriesForAnalysis } from '@/lib/queries'
-export async function GET(
- _request: NextRequest,
- { params }: { params: Promise<{ id: string }> },
-) {
- try {
- const { id } = await params
- const analysis = await getAnalysisById(id)
- if (!analysis) {
- return NextResponse.json({ error: 'Analysis not found' }, { status: 404 })
- }
-
- const [repositories, blueprints] = await Promise.all([
- getRepositoriesForAnalysis(id),
- getBlueprintsByAnalysis(id),
- ])
-
- return NextResponse.json({
- ...analysis,
- repositories,
- blueprints,
- apps: blueprints,
- })
- } catch (error) {
- console.error('Error fetching analysis details:', error)
- return NextResponse.json({ error: 'Failed to fetch analysis details' }, { status: 500 })
- }
-}
-import { NextRequest, NextResponse } from 'next/server'
-import { getAnalysisById, getBlueprintsByAnalysis, getRepositoriesForAnalysis } from '@/lib/queries'
-
export async function GET(
_request: NextRequest,
{ params }: { params: Promise<{ id: string }> },
From 68ae0ed0dbed914caae23901b6bcc8585d184219 Mon Sep 17 00:00:00 2001
From: Cursor Agent
Date: Mon, 27 Apr 2026 04:11:35 +0000
Subject: [PATCH 2/5] Polish landing and app chrome
Co-authored-by: Cole Collins
---
app/page.tsx | 54 ++++++++++++++++-----------------
components/app-logo.tsx | 34 +++++++++++++++++++++
components/dashboard-header.tsx | 14 ++++-----
components/theme-toggle.tsx | 51 +++++++++++++++++++++++++++++++
4 files changed, 118 insertions(+), 35 deletions(-)
create mode 100644 components/app-logo.tsx
create mode 100644 components/theme-toggle.tsx
diff --git a/app/page.tsx b/app/page.tsx
index fde5c59..1cf3cd8 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -1,6 +1,8 @@
import Link from 'next/link'
import { Button } from '@/components/ui/button'
-import { Github, Sparkles, Code2, Layers, ArrowRight, AlertCircle } from 'lucide-react'
+import { Github, Sparkles, Code2, ArrowRight, AlertCircle, ShieldCheck, Workflow, FileJson2 } from 'lucide-react'
+import { AppLogo } from '@/components/app-logo'
+import { ThemeToggle } from '@/components/theme-toggle'
const ERROR_MESSAGES: Record = {
auth_required: 'You must sign in to access the dashboard.',
@@ -27,20 +29,17 @@ export default async function HomePage({ searchParams }: { searchParams: Promise
{/* Header */}
-
-
-
+
Discover Apps Hidden in Your Code
@@ -85,27 +84,31 @@ export default async function HomePage({ searchParams }: { searchParams: Promise
- {/* Social proof strip — established product feel */}
- Built for builders who already have the hard parts
+ Built for teams that need confidence before generation
-
-
+
-
4.1k
-
blueprints surfaced
+
+
+
+
Read-only by design
+
Connect repositories without granting write access to source code.
-
38
-
stacks detected
+
+
+
+
Cross-repo intelligence
+
Map reusable components, APIs, hooks, and utilities across your stack.
-
New
-
cross-repo fusion engine
+
+
+
+
Portable outputs
+
Export structured blueprints that explain what exists and what to build next.
@@ -190,10 +193,7 @@ export default async function HomePage({ searchParams }: { searchParams: Promise