sync: Major UI updates from private repo (Jan 16-24)

Features synced:
- UI Panels Refactor: flexible pane system with ChatPane, NodePane,
  DimensionsPane, WorkflowsPane, ViewsPane, MapPane
- Source Content Reader: content type detection + 4 formatters
  (transcript, book, markdown, raw)
- Source Content Search: Cmd+F search in Source Reader
- Feed Layout Overhaul: LeftToolbar, SplitHandle, CollapsedRail
- Map Panel: promoted to first-class pane
- Edge policy simplification: auto-inference + direction correction

New files:
- src/components/panes/* (pane system)
- src/components/layout/CollapsedRail.tsx
- src/components/layout/LeftToolbar.tsx
- src/components/layout/SplitHandle.tsx
- src/components/focus/source/* (Source Reader + formatters)
- src/components/views/ViewsOverlay.tsx

Updated:
- ThreePanelLayout.tsx (complete refactor)
- FocusPanel.tsx (Source tab integration)
- API routes (dimensions GET, edges auto-inference)
- Database services (nodes, edges, dimensions)

Dependencies added:
- react-markdown
- remark-gfm

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
“BeeRad”
2026-01-24 21:54:21 +11:00
co-authored by Claude Opus 4.5
parent cea1df7f1f
commit 05523b7cb2
34 changed files with 7895 additions and 991 deletions
+4 -11
View File
@@ -64,23 +64,16 @@ export interface Edge {
export type EdgeSource = 'user' | 'ai_similarity' | 'helper_name';
export type EdgeContextCategory = 'attribution' | 'intellectual';
export type EdgeContextType =
| 'created_by'
| 'features'
| 'part_of'
| 'source_of'
| 'extends'
| 'supports'
| 'contradicts'
| 'related_to';
| 'created_by' // Content → Creator (book by author, podcast by host)
| 'part_of' // Part → Whole (episode of podcast, person discussed in book)
| 'source_of' // Derivative → Source (insight from article)
| 'related_to'; // Default — anything else or when unsure
export type EdgeCreatedVia = 'ui' | 'agent' | 'mcp' | 'workflow' | 'quicklink' | 'quick_capture_auto';
export interface EdgeContext {
// SYSTEM-INFERRED (AI classifies from explanation + nodes)
category: EdgeContextCategory;
type: EdgeContextType;
confidence: number; // 0-1
inferred_at: string; // ISO timestamp