diff --git a/apps/desktop/app/(app)/page.tsx b/apps/desktop/app/(app)/page.tsx
index ac86275b..067e6611 100644
--- a/apps/desktop/app/(app)/page.tsx
+++ b/apps/desktop/app/(app)/page.tsx
@@ -1,22 +1,18 @@
"use client"
import { useQuery } from "@tanstack/react-query"
-import {
- Card,
- CardContent,
- CardDescription,
- CardHeader,
- CardTitle,
-} from "@ui/components/card"
import {
ArrowRight,
Clock,
FileText,
Link2,
Lightbulb,
- MessageCircle,
+ Loader2,
+ Plus,
RefreshCcw,
Search,
+ SendHorizontal,
+ Sparkles,
} from "lucide-react"
import { useMemo, useState } from "react"
import { listDocuments, type DocumentWithMemories } from "@/lib/api"
@@ -53,160 +49,128 @@ export default function DashboardPage() {
if (typeof totalCount === "number") return `${totalCount} memories indexed.`
return "Your memory is ready."
}, [documentsQuery.isPending, totalCount])
+ const visibleDocuments = documents.slice(0, 5)
return (
-
-
-
-
-
- Home
+
+
+
+
+
+
+ Nova memory
-
- Welcome back, your saved context is ready.
+
+ What should we remember?
{subtitle}
-
-
-
-
- Daily brief
-
-
-
-
-
-
- {activeMemory?.title ?? "No memory selected yet"}
-
-
- {activeMemory?.summary ??
- activeMemory?.content ??
- "Save or search memories and Nova will surface the most useful context here."}
-
-
-
-
-
-
+
+
+
+
+
+
+ setOpen(true)}
+ />
+
+
+
+
+ Semantic search
+
+
-
-
- Desktop
-
-
- Use Command-K to search your memory without leaving the native
- shell.
-
-
Nova-ready
+
+
+
-
-
-
-
- ·
-
- ·
- setOpen(true)}
- />
-
-
-
-
- Search by meaning, not just exact titles.
-
-
-
-
-
-
-
+
+
Recents
+
-
-
-
-
-
+
{documentsQuery.isPending ? (
-
+
+
Loading memories...
) : null}
{documentsQuery.isError ? (
-
+
{documentsQuery.error.message}
) : null}
{!documentsQuery.isPending && documents.length === 0 ? (
-
+
No memories found.
) : null}
- {documents.map((document) => (
- -
-
-
+ {visibleDocuments.map((document) => (
+
+ setSelectedMemory(toMemoryPreview(document))
+ }
+ />
))}
-
-
-
-
-
+
@@ -221,7 +185,7 @@ export default function DashboardPage() {
)
}
-function QuickAction({
+function ComposerAction({
icon: Icon,
label,
onClick,
@@ -234,7 +198,7 @@ function QuickAction({