@@ -1826,16 +1824,17 @@ export function BgTasksView({ onCreateWithCopilot, onEditWithCopilot, initialSlu
{isRunning ? (
-
+
- Updating…
+ Updating
)}
+
-
-
-
-
-
- What are we working on?
- Ask anything, or start with a suggestion.
-
-
-
+
-
- Get started
+
+ What are we working on?
-
- {SUGGESTED_ACTIONS.map((action) => (
-
- ))}
+
+ Ask anything, or start with a suggestion.
-
+
+ {SUGGESTED_ACTIONS.map((action, i) => (
+
+ ))}
+
+
+
)
}
diff --git a/apps/x/apps/renderer/src/components/home-view.tsx b/apps/x/apps/renderer/src/components/home-view.tsx
index 43b5978b..cc834004 100644
--- a/apps/x/apps/renderer/src/components/home-view.tsx
+++ b/apps/x/apps/renderer/src/components/home-view.tsx
@@ -2,6 +2,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react'
import { ArrowRight, Bot, Calendar, Clock, ExternalLink, FileText, Mail, MessageSquare, Mic, Plus, Video } from 'lucide-react'
import { extractConferenceLink } from '@/lib/calendar-event'
import { ToolConnectionsCard } from '@/components/tool-connections-card'
+import { SlackIcon } from '@/components/onboarding/provider-icons'
interface TreeNode {
path: string
@@ -331,15 +332,12 @@ export function HomeView({
{/* Up-next hero */}
{nextEvent && (
-
-
-
-
+
-
+
Up next · {nextEvent.isAllDay ? 'today' : relativeFromNow(nextEvent.start)}
- {nextEvent.summary}
+ {nextEvent.summary}
{nextEvent.isAllDay ? 'All day' : `${timeOfDay(nextEvent.start)}${nextEvent.end ? ` – ${timeOfDay(nextEvent.end)}` : ''}`}
{nextEvent.location ? ` · ${nextEvent.location}` : ''}
@@ -432,7 +430,7 @@ export function HomeView({
{slackEnabled && (
-
+
Slack
Latest messages
@@ -548,9 +546,6 @@ export function HomeView({
onClick={onOpenChat}
className="flex items-center gap-3.5 rounded-xl border border-border bg-card p-4 text-left transition-colors hover:bg-accent"
>
-
-
-
Ask anything
— create presentations, do research, collaborate on docs.
diff --git a/apps/x/apps/renderer/src/components/knowledge-view.tsx b/apps/x/apps/renderer/src/components/knowledge-view.tsx
index 1d5b1397..862bf416 100644
--- a/apps/x/apps/renderer/src/components/knowledge-view.tsx
+++ b/apps/x/apps/renderer/src/components/knowledge-view.tsx
@@ -1,6 +1,5 @@
import { useCallback, useEffect, useMemo, useRef, useState, type ReactNode } from 'react'
import {
- ArrowLeft,
ChevronRight,
Copy,
ExternalLink,
@@ -70,20 +69,6 @@ const HIDDEN_PATHS = new Set(['knowledge/Meetings', 'knowledge/Workspace'])
// Theme-aware accent palette for folder avatars — colored letter on a faint
// tint of the same hue. Mirrors the design's six-colour rotation.
-const AVATAR_PALETTE = [
- 'bg-indigo-500/10 text-indigo-600 dark:text-indigo-400',
- 'bg-violet-500/10 text-violet-600 dark:text-violet-400',
- 'bg-amber-500/10 text-amber-600 dark:text-amber-400',
- 'bg-rose-500/10 text-rose-600 dark:text-rose-400',
- 'bg-emerald-500/10 text-emerald-600 dark:text-emerald-400',
- 'bg-sky-500/10 text-sky-600 dark:text-sky-400',
-] as const
-
-function avatarClass(name: string): string {
- let hash = 0
- for (let i = 0; i < name.length; i++) hash = (hash * 31 + name.charCodeAt(i)) >>> 0
- return AVATAR_PALETTE[hash % AVATAR_PALETTE.length]
-}
function isMarkdown(node: TreeNode): boolean {
return node.kind === 'file' && node.name.toLowerCase().endsWith('.md')
@@ -203,11 +188,11 @@ export function KnowledgeView({
const currentFolder = folderPath ? findNode(tree, folderPath) : null
return (
-
-
+
+
- Brain
-
+ Brain
+
{totalNotes} {totalNotes === 1 ? 'note' : 'notes'} across {folders.length}{' '}
{folders.length === 1 ? 'folder' : 'folders'}
@@ -242,12 +227,12 @@ export function KnowledgeView({
{graphContent}
) : mode === 'basis' ? (
-
+
{basisContent}
) : (
-
+
{currentFolder ? (
) : (
<>
-
+
{folders.length === 0 ? (
) : (
-
+
{folders.map((node, i) => (
0 && 'border-t border-border/60')}>
0 && (
-
+
{looseNotes.map((node, i) => (
0 && 'border-t border-border/60')}>
-
+
{label}
)
@@ -409,7 +394,7 @@ function QuickAction({
function SectionHeader({ label, aside }: { label: string; aside?: string }) {
return (
-
+
{label}
{aside && {aside}}
@@ -425,20 +410,6 @@ function EmptyState({ text }: { text: string }) {
)
}
-function FolderAvatar({ name, className }: { name: string; className?: string }) {
- return (
-
- {name.charAt(0).toUpperCase() || '?'}
-
- )
-}
-
function FolderCard({
node,
actions,
@@ -472,9 +443,8 @@ function FolderCard({
onOpenFolder(node.path)
}
}}
- className="group flex w-full cursor-pointer items-start gap-3 px-4 py-3 text-left transition-colors hover:bg-accent/50"
+ className="group flex w-full cursor-pointer items-center gap-3 px-4 py-3 text-left transition-colors hover:bg-accent/50"
>
-
{renameActive ? (
)}
-
- {count} {count === 1 ? 'note' : 'notes'}
+
+
+ {count} {count === 1 ? 'note' : 'notes'}
+
+ {peek.length > 0 && (
+
+ {peek.map((n) => (
+
+ {' · '}
+
+
+ ))}
+
+ )}
- {peek.length > 0 && (
-
- {peek.map((n) => (
-
- ))}
-
- )}
-
+
{modified}
@@ -565,17 +539,6 @@ function FolderDetail({
return (
<>
-
|