feat: brain frontend — Atelier-style page with capture, search, feed, detail sheet

- AtelierBrainPage.svelte with full CRUD UI
- Capture bar: paste URL or type note, saves instantly
- Folder signal cards with counts
- Hybrid search (keyword + semantic)
- Item feed with metadata, tags, confidence indicators
- Detail slide-over sheet with summary, metadata, actions
- Added to AppShell nav, legacy Navbar, and layout allApps
- Route at /brain

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Yusuf Suleman
2026-04-01 17:18:36 -05:00
parent 2072c359aa
commit 477188f542
6 changed files with 1079 additions and 333 deletions

View File

@@ -24,7 +24,7 @@ export const load: LayoutServerLoad = async ({ cookies, url }) => {
// Hides nav items but does NOT block direct URL access.
// This is intentional: all shared services are accessible to all authenticated users.
// Hiding reduces clutter for users who don't need certain apps day-to-day.
const allApps = ['tasks', 'trips', 'fitness', 'inventory', 'budget', 'reader', 'media'];
const allApps = ['tasks', 'trips', 'fitness', 'inventory', 'budget', 'reader', 'media', 'brain'];
const hiddenByUser: Record<string, string[]> = {
'madiha': ['inventory', 'reader'],
};

View File

@@ -0,0 +1,11 @@
<script lang="ts">
import { page } from '$app/state';
import AtelierBrainPage from '$lib/pages/brain/AtelierBrainPage.svelte';
const useAtelierShell = $derived((page as any).data?.useAtelierShell || false);
</script>
{#if useAtelierShell}
<AtelierBrainPage />
{:else}
<AtelierBrainPage />
{/if}