feat: brain service — self-contained second brain knowledge manager
Full backend service with: - FastAPI REST API with CRUD, search, reprocess endpoints - PostgreSQL + pgvector for items and semantic search - Redis + RQ for background job processing - Meilisearch for fast keyword/filter search - Browserless/Chrome for JS rendering and screenshots - OpenAI structured output for AI classification - Local file storage with S3-ready abstraction - Gateway auth via X-Gateway-User-Id header - Own docker-compose stack (6 containers) Classification: fixed folders (Home/Family/Work/Travel/Knowledge/Faith/Projects) and fixed tags (28 predefined). AI assigns exactly 1 folder, 2-3 tags, title, summary, and confidence score per item. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
<script lang="ts">
|
||||
import { onMount } from 'svelte';
|
||||
import { page } from '$app/state';
|
||||
import AtelierTripDetailPage from '$lib/pages/trips/AtelierTripDetailPage.svelte';
|
||||
import ItemModal from '$lib/components/trips/ItemModal.svelte';
|
||||
import TripEditModal from '$lib/components/trips/TripEditModal.svelte';
|
||||
import ImageUpload from '$lib/components/trips/ImageUpload.svelte';
|
||||
|
||||
let { data } = $props();
|
||||
|
||||
// ── Types ──
|
||||
interface ItineraryEvent {
|
||||
time: string; name: string; description: string;
|
||||
@@ -387,6 +390,9 @@
|
||||
});
|
||||
</script>
|
||||
|
||||
{#if data?.useAtelierShell}
|
||||
<AtelierTripDetailPage />
|
||||
{:else}
|
||||
<div class="page trip-detail-page">
|
||||
<div class="app-surface">
|
||||
<!-- Back (hidden in share mode) -->
|
||||
@@ -1039,3 +1045,4 @@
|
||||
.day-story { margin: 6px 0 4px; padding: 10px 14px; }
|
||||
}
|
||||
</style>
|
||||
{/if}
|
||||
|
||||
Reference in New Issue
Block a user