/ CHANGELOG.md
CHANGELOG.md
1 # Changelog 2 3 All notable changes to the InterBrain project will be documented in this file. 4 5 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 6 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 8 ## [0.15.0] - 2026-03-03 - Holarchy Navigation & Vault Health 9 10 ### Overview 11 12 Introduces holarchy navigation — the ability to explore the nested structure of DreamNodes as living, zoomable spaces. Adds vault-wide health checks that automatically repair submodule paths, migrate URLs, and enforce PascalCase naming. AI inference now supports Claude and OpenAI-compatible providers alongside Ollama. 13 14 ### Added 15 16 **DreamExplorer** (`src/features/dream-explorer/`) 17 - Zoomable circle-packing visualization of DreamNode file hierarchies 18 - Breadcrumb navigation for drilling into nested directories 19 - Directory caching for responsive exploration of large nodes 20 - File scanning service with type detection (markdown, canvas, media, code) 21 22 **HolonView** (`src/features/dreamnode/components/HolonView.tsx`) 23 - Renders DreamNode contents as an explorable holon (nested whole/part) 24 - Circle-packing layout algorithm for spatial arrangement of child nodes 25 - Canvas file discovery via `useCanvasFiles` hook 26 27 **MediaRenderer** (`src/features/dreamnode/components/MediaRenderer.tsx`) 28 - Unified media rendering: images, audio, video, PDFs, HTML, iframes 29 - Replaces the deleted `MediaLoadingService` with direct component rendering 30 - HTML content sandbox loading via `html-loader.ts` 31 32 **Vault Health Check** (`src/features/dreamnode/commands.ts`) 33 - `interbrain:vault-health-check` command for vault-wide integrity repair 34 - Renames space-containing sovereign folders to PascalCase 35 - Converts plain git repos to DreamNodes (adds .udd, DreamTalk, DreamSong) 36 - Repairs submodule paths containing spaces (`git mv` + gitmodules + canvas refs) 37 - Migrates absolute submodule URLs to relative paths 38 - Cleans corrupted `.gitmodules` sections 39 - Syncs holarchy relationships from `.gitmodules` into `.udd` 40 - Dry-run mode for safe previewing 41 42 **AI Bridge Server** (`src/features/ai-magic/services/ai-bridge-server.ts`) 43 - HTTP bridge for AI inference requests 44 - Claude provider with streaming support 45 - OpenAI-compatible provider for local/remote endpoints 46 - Provider selection and model configuration 47 48 **Orchestration Intent System** (`src/core/orchestration/`) 49 - `intent-helpers.ts`: Declarative layout intent derivation (explorer focus, search, copilot, etc.) 50 - `snapshot-storage.ts`: Persist and restore layout snapshots across sessions 51 - `types.ts`: LayoutIntent, LayoutSnapshot, NodePlacement type definitions 52 53 **Copilot Mode Overlay** (`src/features/conversational-copilot/CopilotModeOverlay.tsx`) 54 - Visual overlay for conversational copilot interaction mode 55 56 **Custom UI Full Screen View** (`src/features/dreamweaving/components/CustomUIFullScreenView.ts`) 57 - Full-screen rendering for custom DreamSong UI canvases 58 59 ### Changed 60 61 **SpatialOrchestrator** — Major expansion 62 - Intent-driven layout execution via `executeLayoutIntent()` 63 - Target state management with `setTargetState()` / `deriveIntent()` 64 - Layout snapshot save/restore for session persistence 65 - Generation-tracked pending movements prevent stale animations 66 67 **DreamNode3D** — Enhanced interactivity 68 - Holarchy-aware node rendering (shows child count, nesting depth) 69 - Improved flip animation and face management 70 - DreamSong side now renders media content directly 71 72 **DreamSong Relationship Service** — Holarchy support 73 - Reads and writes holarchy relationships from `.udd` files 74 - Submodule-to-relationship mapping for automatic graph construction 75 - Batch relationship sync across vault 76 77 **Title Sanitization** — Casing-preserving 78 - `sanitizeTitleToPascalCase()` now preserves existing casing (e.g., `InterBrain` stays `InterBrain`, not `Interbrain`) 79 - Capitalizes first letter of each word without lowercasing the rest 80 81 **DreamNode Conversion Service** — Vault migration engine 82 - Line-by-line URL migration prevents prefix collision bugs 83 - Space-path submodule repair with full git plumbing (index, modules dir, gitdir, worktree) 84 - Canvas reference updates when submodule paths change 85 - Corrupted gitmodules section detection and removal 86 87 ### Technical 88 89 - 419 tests passing 90 - Zero lint errors, zero TypeScript errors 91 92 --- 93 94 ## [0.14.0] - 2026-02-02 - Performance & Scalability Refactor 95 96 ### Overview 97 98 Architectural refactor eliminating race conditions and enabling true scalability for large vaults (167+ nodes). Introduces coordinated service lifecycle, vault state tracking, and graceful shutdown to make InterBrain work reliably regardless of vault size. 99 100 ### Added 101 102 **ServiceLifecycleManager** (`src/core/services/service-lifecycle-manager.ts`) 103 - 5-phase lifecycle coordination: BOOTSTRAP -> HYDRATE -> SCAN -> READY -> BACKGROUND 104 - Event-driven architecture with phase completion subscriptions 105 - Graceful shutdown with pending operation tracking 106 - Timeout handling per phase with configurable limits 107 - Eliminates race conditions between async systems 108 109 **VaultStateService** (`src/core/services/vault-state-service.ts`) 110 - Persists `vault-state.json` in plugin directory 111 - Tracks last scan timestamp, node count, vault ID hash 112 - Enables skipping full vault scans when data is fresh 113 - Uses `.obsidian` mtime for quick change detection 114 - Schema versioning for future migrations 115 116 **IndexedDB Improvements** (`src/core/store/indexeddb-storage.ts`) 117 - Graceful shutdown: waits for pending writes before plugin unload 118 - Hydration gate: prevents empty state from overwriting persisted data 119 - Vault-specific storage keys prevent cross-vault contamination 120 - Connection pooling with automatic reconnection 121 122 **Separated Refresh Commands** 123 - `interbrain:refresh-plugin` (Cmd+R) - Fast plugin reload only 124 - `interbrain:refresh-full` - Cleanup + indexing + reload 125 - `interbrain:sync-network` - Radicle sync (opt-in) 126 - `interbrain:force-reindex` - Full vector reindex (opt-in) 127 128 ### Changed 129 130 **Radicle Peer Sync** - Moved to BACKGROUND phase 131 - Non-blocking, fire-and-forget initialization 132 - Checks for passphrase in settings before attempting 133 - User-friendly notice if not configured 134 135 **Edge3D Optimization** 136 - Reduced from 3 Line components to 1 per edge 137 - Significant reduction in Three.js object count for large graphs 138 139 **MediaLoadingService** - Deleted 140 - Simplified media loading pipeline 141 - Direct file:// streaming without intermediate service 142 143 ### Technical 144 145 - All 419 tests passing 146 - Zero lint warnings, zero TypeScript errors 147 - Documentation updates: core README now documents lifecycle services 148 - LIFECYCLE-AUDIT.md documents race condition analysis and solutions 149 150 ### Performance Results 151 152 | Metric | Before | After | 153 |--------|--------|-------| 154 | Cold Start (18 nodes) | ~17s | 7ms | 155 | Warm Start Cmd+R (18 nodes) | ~18s | 4-5ms | 156 | Cold Start (167 nodes) | Crash/timeout | ~240ms | 157 | Warm Start Cmd+R (167 nodes) | Full rescan | Scan skipped | 158 159 ### Fixed 160 161 - IndexedDB "open timeout" errors during plugin reload 162 - Race conditions between hydration and vault scan 163 - Stale data visible during startup window 164 - Plugin unload interrupting in-flight IndexedDB writes 165 - Cross-vault data contamination when switching vaults 166 167 ## [0.13.0] - 2026-01-27 - InterBrain Scalability 168 169 ### Overview 170 171 Removes the need for multiple vaults. InterBrain now scales to thousands of DreamNodes without performance degradation, through three complementary systems: GPU-native rendering, dynamic node loading, and progressive media streaming. 172 173 ### Added 174 175 **WebGL-Native DreamTalk Rendering (Issue #373)** 176 - GPU-native sprite-based DreamTalk rendering replacing DOM `<Html>` components 177 - Radial gradient vignette shader for edge fade effect 178 - WebGL texture support for images, video, and PDF previews 179 - Gamma correction for accurate color reproduction 180 - Black flash prevention during WebGL-to-HTML swap on flip 181 - 3-4x node capacity improvement from eliminating DOM↔WebGL sync overhead 182 183 **Dynamic Node Loading & Constellation Filter (Issue #344)** 184 - Constellation filter service categorizing nodes into four tiers: 185 - **VIP**: Nodes connected by DreamSong edges — always mounted 186 - **Parent**: DreamSong canvas owners — always mounted 187 - **Sampled**: Random fill of remaining slots (cluster-connected preferred) 188 - **Ephemeral**: Everything else — spawned on-demand when navigated to 189 - Configurable `maxNodes` setting (default 150, range 50-500) in plugin settings 190 - Ephemeral node spawning with fly-in animation from fixed-radius ring (500 world units) 191 - Staggered spawning: 40ms intervals between individual ephemeral node mounts, preventing main thread blocking during liminal web transitions 192 - Staggered despawning: queue with 500ms initial delay + 40ms drain intervals 193 - Despawn cancellation: nodes reclaimed by a new layout mid-despawn are rescued from the queue and reused without re-spawning 194 - Batch store updates (`spawnEphemeralNodesBatch`) reducing N Zustand updates to 1 195 - EphemeralNodeManager with `useEphemeralSpawner` and `useEphemeralGarbageCollector` hooks 196 - Constellation settings section with filter stats display 197 198 **Progressive Media Loading (Issue #351)** 199 - Eliminated base64 encoding from media loading pipeline 200 - Direct `file://` streaming via Obsidian's vault adapter 201 - Removed media data from localStorage persistence, fixing storage quota errors 202 - Support for `app://` URLs in PDF preview 203 204 **Hybrid Search (Feature)** 205 - Fuzzy name matching combined with semantic search 206 - Relationship editor search switched to fuzzy name matching 207 - Hybrid search service combining both approaches 208 209 ### Changed 210 211 **Rendering Pipeline** 212 - DreamNode3D: WebGL sprite for DreamTalk face, HTML only for interactive DreamSong back face 213 - Media loading service: returns file paths instead of base64 data URLs 214 - Star/sprite occlusion fix with strengthened vignette 215 - Text wrapping parity between WebGL and HTML rendering 216 217 **Animation System** 218 - `easeInOutQuart` for ephemeral spawn animations (smoother feel) 219 - `easeInQuart` for exit animations (accelerating departure) 220 - Animated ephemeral exit during liminal-to-liminal transitions (was instant despawn) 221 - Selective ephemeral cleanup: nodes that stay in a new layout are kept, only stale ones exit 222 223 **Spatial Orchestrator** 224 - Constellation-mounted nodes move immediately during focusOnNode (no spawn cost) 225 - Ephemeral nodes stagger one-by-one with 40ms gaps 226 - Deduplication of rapid focusOnNode calls to prevent ephemeral thrashing 227 - Escape key routed through orchestrator for proper constellation return 228 229 ### Technical 230 231 - 56 files changed, 4687 insertions, 580 deletions 232 - 419 tests passing (up from 371), 48 new tests for ephemeral system 233 - QA Guardian agent hardened: enforces test file existence and README content verification 234 - Zero lint warnings, zero TypeScript errors 235 - Comprehensive README updates: constellation-layout, core, features catalog 236 237 ### Fixed 238 239 - DreamTalk media not showing in DreamSong fullscreen view 240 - Constellation nodes losing positions during vault rescan 241 - NaN positions for constellation nodes via `getConstellationPosition` helper 242 - Search results snapping to constellation on `setActiveState(false)` timeout 243 - Ephemeral spawn-in-place: reset spawn guard on re-spawn 244 - Exit rotation transforms producing incorrect directions 245 - Double-call race condition in ephemeral node exit animations 246 - Storage quota errors from base64 media data in localStorage 247 248 ## [0.12.0] - 2025-12-24 - Private Beta Release 249 250 ### Added 251 252 **Tutorial System (Feature Slice)** 253 - Manim-style onboarding with animated text and GoldenDot guidance 254 - Portal overlay with logo animation for immersive introduction 255 - Music service for tutorial atmosphere 256 - Step-based tutorial system with store integration 257 - Manual commands for tutorial progression (safe for production) 258 259 **CI Infrastructure** 260 - Complete GitHub Actions CI pipeline for quality assurance 261 - Multi-platform testing (macOS, Ubuntu, Windows) 262 - Feature-centric path filters (core changes, P2P, install scripts) 263 - Obsidian installation verification in CI 264 - P2P collaboration testing with Tailscale integration 265 - Linux Obsidian auto-install via Flatpak/Snap 266 267 **Install Scripts** 268 - Cross-platform install.sh (macOS/Linux) and install.ps1 (Windows) 269 - Automatic dependency installation (Homebrew, Radicle, Ollama) 270 - Obsidian auto-install on Linux 271 272 ### Changed 273 274 **Edit Mode Refactor** 275 - Separated metadata editing from relationship editing 276 - `edit` layout for metadata editing (DreamNodeEditor3D) 277 - `relationship-edit` layout for relationship management (RelationshipEditor3D) 278 - Cleaner state management with explicit mode distinction 279 280 **Glow System Refinement** 281 - Distance-invariant hover effects with proper scaling 282 - Glow now conditional on context: 283 - Pending relationships (selected for addition) 284 - Tutorial-highlighted nodes 285 - Hover preview in relationship-edit mode only 286 - No general hover glow - keeps UI clean and intentional 287 288 **Pure CSS Star Assets** 289 - Removed external dependencies for star rendering 290 - CSS-only implementation for better performance 291 292 ### Technical 293 294 - 23 feature slices now in codebase 295 - Zero lint warnings, zero TypeScript errors 296 - All tests passing 297 298 ## [0.11.0] - 2025-12-16 - Feedback System & Multi-Provider AI 299 300 ### Added 301 302 **Feedback System** (Feature Slice) 303 - Automated bug reporting with GitHub integration via `gh` CLI 304 - Automatic error capture (uncaught exceptions, unhandled rejections) 305 - Manual "Report a Bug" command for user-initiated reports 306 - **Two-tier deduplication**: 307 - Hash-based: Deterministic dedup via error fingerprint (`IB-ERR-XXXXXXXX`) 308 - AI semantic: Cross-user dedup for user-described issues (uses Claude) 309 - AI refinement option: Generates concise title, summary, category, and complexity 310 - Privacy-first: API keys redacted, only vault-relative paths, no PII 311 - Rate limiting: Modal throttle (30s), session limit (10), local dedup (60s) 312 313 **Distributed Compute Philosophy** 314 Users who opt into AI refinement contribute their own compute (API key) to maintain a clean issue tracker. This automates the cultural norm of "search before posting." 315 316 ## [0.10.0] - 2025-12-16 - Multi-Provider AI Magic 317 318 ### Added 319 320 **AI Magic Feature Slice** 321 - Unified AI provider management with intelligent routing and automatic fallback 322 - **5 providers**: Claude, OpenAI, Groq, xAI Grok, Ollama (local) 323 - Default provider selection via radio buttons in settings 324 - Offline mode toggle for local-only inference 325 - Hardware tier auto-detection for Ollama model selection 326 - Thinking tag stripping for qwen3 and similar models 327 328 **Provider Details** 329 | Provider | Type | Models | 330 |----------|------|--------| 331 | Claude | Remote | haiku, sonnet, opus | 332 | OpenAI | Remote | gpt-4o-mini, gpt-4o | 333 | Groq | Remote | llama-3.1-8b, llama-3.1-70b | 334 | xAI Grok | Remote | grok-3-mini, grok-4 | 335 | Ollama | Local | llama3.2:3b, qwen3:32b | 336 337 ### Changed 338 339 - Migrated all AI consumers to unified `generateAI()` interface 340 - Removed legacy `llm-provider.ts` from conversational-copilot 341 - Simplified settings UI with provider-specific sections 342 343 ## [0.9.0] - 2025-12-13 - Vertical Slice Architecture Refactoring 344 345 ### Overview 346 347 Complete architectural overhaul reorganizing the codebase into self-contained feature slices. This release establishes a foundation optimized for AI-assisted development and long-term maintainability. 348 349 ### Architecture Transformation 350 351 **Vertical Slice Pattern** 352 - Reorganized from scattered files to 21 self-contained feature slices 353 - Each feature owns its store slice, services, components, and documentation 354 - Established `src/core/` for shared infrastructure (store, services, hooks, components) 355 - Eliminated cross-feature dependencies through clear boundary ownership 356 357 **Feature Catalog** 358 | Feature | Purpose | 359 |---------|---------| 360 | `dreamnode` | Core types, services, git operations, 3D visualization | 361 | `dreamnode-creator` | Node creation workflow (renamed from proto-node) | 362 | `dreamnode-editor` | Node editing workflow (renamed from edit-mode) | 363 | `constellation-layout` | Fibonacci sphere distribution + cluster generation | 364 | `liminal-web-layout` | Focused node with ring relationships | 365 | `dreamweaving` | Canvas parsing, submodules, DreamSong playback | 366 | `semantic-search` | Vector embeddings and similarity search | 367 | `conversational-copilot` | AI conversation mode | 368 | `social-resonance-filter` | Radicle P2P integration (renamed from social-resonance) | 369 | `coherence-beacon` | Relationship discovery via git hooks | 370 | `github-publishing` | GitHub Pages sharing (renamed from github-sharing) | 371 | `action-buttons` | Radial menu (renamed from radial-buttons) | 372 | `dreamnode-updater` | Update workflow (renamed from updates) | 373 | + 8 more features | 374 375 ### Documentation Overhaul 376 377 **README Cascade** 378 - Root README → core/README → features/README → individual feature READMEs 379 - Every feature has standardized README with: Purpose, Directory Structure, Main Exports, Commands, Dependencies, Notes 380 - Algorithm documentation moved to feature boundaries (ring-layout → liminal-web-layout, constellation → constellation-layout) 381 382 **CLAUDE.md Condensation** 383 - Reduced from ~533 to ~188 lines 384 - Focused on: Feature overview, GitHub CLI commands, essential patterns 385 - Removed outdated epic progress and deprecated patterns 386 387 ### Code Quality 388 389 **Test Coverage** 390 - 348 tests passing (up from 238 in v0.8.0) 391 - Added comprehensive tests for: drag-and-drop utilities, ring layout algorithm, constellation layout utilities 392 - Zero lint warnings, zero TypeScript errors 393 394 **Bug Fixes** 395 - Fix hooks order violations in DreamNodeCreator3D and DreamNodeEditor3D 396 - Fix copilot mode option key handling race condition 397 - Fix transcription/web-link-analyzer status checks when services not initialized 398 - Fix plugin unload error when transcription service not initialized 399 - Fix dreamnode-editor: wrong image display, search display, self-toggle 400 401 ### Extracted & Consolidated 402 403 **New Core Infrastructure** 404 - `core/hooks/` - useEscapeKeyHandler, useOptionKeyState 405 - `core/components/` - Shared UI components 406 - `core/store/` - Zustand store with feature slice composition 407 - OrchestratorContext replacing custom DOM events 408 409 **Feature Extractions** 410 - Songline feature extracted from conversational-copilot 411 - Drag-and-drop feature with comprehensive url-utils 412 - Settings feature owning its panel sections 413 - URI Handler as standalone feature 414 415 ### Renamed for Clarity 416 417 | Old Name | New Name | Reason | 418 |----------|----------|--------| 419 | proto-node | dreamnode-creator | Clearer purpose | 420 | edit-mode | dreamnode-editor | Parallel naming | 421 | radial-buttons | action-buttons | More descriptive | 422 | github-sharing | github-publishing | Accurate function | 423 | social-resonance | social-resonance-filter | Reflects filtering role | 424 | updates | dreamnode-updater | Feature-scoped naming | 425 426 ### Deprecated 427 428 - **Creator Mode**: The `creatorMode` state in dreamnode store slice is deprecated and will be removed in a future update 429 430 ### Breaking Changes 431 432 None for end users. Internal architecture changes only. 433 434 ## [0.8.0] - 2025-10-24 - Epic 8: Coherence Beacon System (Complete) 435 436 ### Added 437 438 **Coherence Beacon Discovery System (Feature #336)** 439 - Automatic detection of new supermodule references in DreamNodes 440 - Modal-based acceptance/rejection workflow for proposed relationships 441 - Persistent rejection tracking to prevent re-prompting declined beacons 442 - Intelligent clone and submodule linking for accepted beacons 443 - Check for updates command for manual beacon discovery 444 445 **Bidirectional Relationship Tracking (Feature #337)** 446 - Git hooks system for automatic supermodule/submodule synchronization 447 - Post-commit hook detecting `.gitmodules` changes and updating `.udd` files 448 - Sovereign repository pattern - child repos track their own `supermodules` array 449 - Repair logic in sync command to fix existing submodule relationships 450 - Bidirectional UUID-based relationship tracking across entire DreamNode graph 451 452 **Radicle Network Integration (Feature #338)** 453 - Complete Radicle CLI integration with passphrase management 454 - Batch initialization and sharing commands for Radicle DreamNodes 455 - Automatic Radicle node management with startup/shutdown lifecycle 456 - Smart clone conflict handling with Radicle ID detection 457 - Radicle ID persistence in `.udd` files for duplicate prevention 458 - Email export integration with Radicle fallback URIs 459 - Cross-platform Radicle support with path resolution 460 461 **GitHub Pages Publishing System (Feature #337)** 462 - Static DreamSong site builder with standalone HTML viewer 463 - Automated gh-pages branch deployment for public sharing 464 - UUID-based link resolver for rename-proof navigation 465 - "View on Web" button in fullscreen DreamSong view 466 - Recursive submodule sharing with title-based repository naming 467 - Unpublish command with recursive cleanup of shared submodules 468 - Bidirectional submodule sync (add AND remove orphaned references) 469 470 **Universal DreamNode Cloning (Feature #337)** 471 - Mixed Radicle/GitHub/UUID batch clone support in single command 472 - Automatic `.udd` file initialization for GitHub clones 473 - GitHub clone optimization (main branch only, faster initialization) 474 - Automatic semantic search indexing for newly cloned nodes 475 - Smart constellation positioning with proper metadata handling 476 477 **Radial Action Button System (Feature #339)** 478 - Option-key triggered radial menu with 10 context-aware buttons 479 - Dynamic command mapping based on node state (published/unpublished, active call, etc.) 480 - Conditional button visibility (GitHub share for dreams, video call for dreamers) 481 - Hover labels with clean UX positioning around selected node 482 - Special positioning for active video call button during copilot mode 483 - Obsidian icon integration using `setIcon` API 484 485 **Songline Feature System** 486 - Audio recording integration for conversation capture 487 - LLM-powered clip generation and summarization 488 - Perspectives UI for displaying multiple DreamerNode viewpoints 489 - Conversations section for DreamerNodes showing recorded dialogues 490 - Timestamp synchronization with audio playback 491 - Vault-path-based audio file resolution 492 493 **DreamSong Enhancements** 494 - Unified README section as collapsible element at bottom 495 - Edit buttons for Canvas and README files in fullscreen view 496 - Markdown rendering of README content with Obsidian native API 497 - Improved DreamerNode vs Dream node conditional rendering 498 - Fullscreen button reliability improvements 499 500 **Canvas Auto-Layout Command** 501 - Automatic positioning of canvas nodes for linear DreamSong flow 502 - Intelligent media-text pair layout with proper spacing 503 - Text height calculation for optimal card sizing 504 - Vertical spacing normalization for tighter layouts 505 506 **PascalCase Naming System (Feature #337)** 507 - Unified PascalCase conversion for all DreamNode titles 508 - Migration tools for converting existing kebab-case/snake_case repos 509 - Bidirectional title conversion preserving human readability 510 - Title sanitization with robust kebab/snake case normalization 511 - Batch migration command for updating entire vaults 512 513 **Digital Campfire Metaphor** 514 - Rebranded video calls as "Digital Campfire" with flame-kindling icon 515 - Poetic language: "Initiate" and "Extinguish" instead of start/end 516 - Enhanced active call button positioning at -45° (lower-right quadrant) 517 - Robust error handling for early video call termination 518 519 ### Technical Achievements 520 521 **Git Hooks Architecture** 522 - Node.js-based hook-helper script for complex git operations 523 - Pre-commit hook for template initialization and canvas validation 524 - Post-commit hook for automatic bidirectional relationship updates 525 - Non-blocking hook execution with comprehensive error logging 526 - Reusable hook utilities shared across multiple hook types 527 528 **GitHub Integration Infrastructure** 529 - GitHub CLI detection with explicit path resolution 530 - Vite bundle configuration for Node.js built-ins 531 - Static site viewer with standalone asset management 532 - Canvas path auditing and repair for migration scenarios 533 - Robust submodule path resolution for sharing workflows 534 535 **Radicle Service Layer** 536 - Passphrase prompt integration with macOS Keychain fallback 537 - TTY-less rad init using stdin piping 538 - Radicle ID extraction from git config 539 - Duplicate detection using persisted Radicle IDs 540 - Cross-platform CLI detection (macOS, Linux, Windows placeholders) 541 542 **Universal Clone Architecture** 543 - URI protocol handler supporting rad:// and https:// schemes 544 - Mixed source batch processing with parallel cloning 545 - Constellation positioning optimization (100x faster) 546 - Duplicate detection across Radicle and GitHub sources 547 - Smart conflict resolution with safe existing file handling 548 549 **Canvas Submodule Synchronization** 550 - Detection of orphaned submodules removed from canvas 551 - Automatic git submodule removal with history suppression 552 - Bidirectional tracking updates in both parent and child repos 553 - Repair logic for fixing existing incomplete relationships 554 - Canvas path validation and warning system 555 556 **Radial Button Architecture** 557 - Dynamic command resolution based on runtime state 558 - Conditional visibility system with shouldShow predicates 559 - Icon system using Obsidian's Lucide integration 560 - Billboard-based 3D positioning with HTML overlay 561 - Fade-in/fade-out animations with opacity transitions 562 563 **Option Key Tracking System** 564 - Robust cross-platform key state detection 565 - Multiple event listeners for redundancy (keydown, keyup, blur) 566 - State reset on window blur to prevent stuck keys 567 - Integration with both radial buttons and search mode 568 569 **Development Workflow Enhancements** 570 - Local-only branch workflow (epic and feature branches never pushed) 571 - Main branch as single source of truth for remote 572 - Comprehensive documentation updates in CLAUDE.md 573 - Known issues tracking for deferred technical debt 574 575 ### Enhanced 576 577 **Constellation Positioning** 578 - Batch position updates for dramatic speed improvements 579 - Optimized duplicate detection (10x faster for Radicle nodes) 580 - Anti-aliasing improvements for 3D rendering quality 581 - Smart repositioning after cloning with metadata awareness 582 583 **Error Handling & Resilience** 584 - Graceful handling of malformed `.udd` files during vault scan 585 - Early video call termination without scary error messages 586 - EOFError detection and filtering in transcription pipeline 587 - Process lifecycle management with force-kill fallbacks 588 - Reduced force-kill timeout (5s → 2s) for faster cleanup 589 590 **Debug Logging & Observability** 591 - Comprehensive logging across all Radicle operations 592 - Canvas path audit trails for migration debugging 593 - Submodule sync operation transparency 594 - Video call lifecycle event tracking 595 - README markdown rendering diagnostics 596 597 **Code Quality** 598 - 238 tests passing with zero TypeScript errors 599 - Clean lint output across entire codebase 600 - Public API exposure for CoherenceBeaconService 601 - Unused variable cleanup and error handling improvements 602 603 ### Fixed 604 605 - Coherence Beacon clone handling with PascalCase conversion 606 - GitHub clone constellation return bug (read positions from store) 607 - Submodule path resolution for git submodule add operations 608 - Canvas path updating during PascalCase migration 609 - Broken submodule recovery (chicken-egg initialization problem) 610 - Module import errors in radial button configuration 611 - VaultService method name in Songline feature detection 612 - Timestamp synchronization in DreamSong perspectives 613 - README markdown rendering async API handling 614 - Fullscreen button reliability across all scenarios 615 - Button conditions and dynamic label generation 616 - Radial button position calculation (label no longer shifts button) 617 618 ## [0.7.0] - 2025-10-05 - Epic 7: Conversational Copilot System (Complete) 619 620 ### Added 621 622 **Complete Copilot System with Real-time Search (Feature #327)** 623 - Person-centered conversational mode with semantic search-driven UX 624 - Real-time transcription with 500-character context window for semantic search 625 - Option key press-and-hold to show/hide search results honeycomb 626 - Fullscreen DreamTalk/DreamSong overlays on dreamspace canvas 627 - Shared nodes tracking with bidirectional relationship management 628 - README and docs/ directory indexing for documentation-aware search 629 630 **FaceTime Integration & Call Automation (Feature #333)** 631 - AppleScript-based FaceTime call initiation from Obsidian commands 632 - Contact metadata system (email/phone) for person DreamNodes 633 - Automatic copilot mode activation on call start 634 - Integrated end-call command with automatic cleanup 635 - Seamless conversation workflow from call to copilot mode 636 637 **Real-Time Transcription System (Feature #335)** 638 - whisper_streaming integration with LocalAgreement-2 for duplicate prevention 639 - Python CLI with sub-5-second latency speech-to-text 640 - Self-contained virtual environment with automatic dependency management 641 - Obsidian process management via command palette 642 - Timestamped markdown output with instant file updates 643 - Cross-platform support (macOS, Windows, Linux) 644 645 **Conversation Recording & Export System (Feature #331)** 646 - DreamNode invocation tracking during conversations 647 - Real-time transcript embedding of invoked nodes 648 - AI-powered conversation summaries via Claude API 649 - Email export with pre-filled Apple Mail drafts 650 - Obsidian URI deep links for one-click node cloning 651 - Batch clone links for sharing multiple DreamNodes 652 - Graceful fallback when AI API unavailable 653 654 ### Technical Achievements 655 656 **Conversational Architecture** 657 - Copilot spatial mode with person node at center 658 - Semantic search integration driving real-time node discovery 659 - 500-char rolling context window for focused search relevance 660 - Auto-hide/show ribbon for cleaner video call interface 661 - Multi-window transcript refocus with focus restoration mechanisms 662 663 **Python Integration Innovation** 664 - Virtual environment isolation with pip dependency management 665 - Symlink-aware script path resolution for development workflow 666 - Python 3.13 compatibility with cross-platform dependency handling 667 - Process lifecycle management with graceful cleanup 668 - stdout/stderr monitoring for real-time feedback 669 670 **AI & LLM Integration** 671 - Provider abstraction layer supporting multiple LLM backends 672 - Claude API integration via Obsidian's requestUrl (CORS workaround) 673 - Conversation summarization with invocation context awareness 674 - Plugin settings tab for API key configuration 675 - Future-ready architecture for OpenRouter and open-source models 676 677 **Deep Linking System** 678 - Custom Obsidian URI protocol handlers (`obsidian://interbrain-clone`) 679 - Single node and batch clone URI support 680 - Proof-of-concept implementation with console logging 681 - Foundation for future peer-to-peer DreamNode sharing 682 - Plain text email format with clickable deep links 683 684 **macOS System Integration** 685 - AppleScript execution via Node.js child_process 686 - Apple Mail draft generation with pre-filled content 687 - FaceTime automation with contact resolution 688 - Electron window focus management for dictation continuity 689 - System-level integration without external dependencies 690 691 ### Enhanced 692 693 **Spatial Orchestrator** 694 - Immediate fly-out animation on empty search results 695 - Copilot-aware layout state management 696 - Enhanced global API for scaled position restoration 697 - Proper animation timing for video call transitions 698 699 **Transcription UX Polish** 700 - Relative timestamps ("Just now", "1 minute ago") 701 - Improved invocation formatting with single blank lines 702 - Blocking mode to prevent transcription duplication 703 - Comprehensive debug logging for troubleshooting 704 - Focus restoration mechanisms for seamless dictation 705 706 **Code Quality** 707 - Disabled `no-explicit-any` ESLint rule for undocumented Obsidian APIs 708 - 208 tests passing with zero TypeScript errors 709 - Clean separation of concerns across service layers 710 - Singleton pattern for transcription service lifecycle 711 712 ### Fixed 713 714 - CORS issues with Claude API using Obsidian's `requestUrl()` 715 - Email export transcript capture timing (read before deletion) 716 - Click-based invocation tracking (decoupled from hotkey selection) 717 - Python virtual environment path resolution across platforms 718 - RealtimeSTT log file writing to read-only directories 719 - Transcription duplication through blocking mode implementation 720 - Invocation formatting consistency with blank line normalization 721 - Electron environment detection for email export 722 - URI handler graceful fallback registration 723 - FaceTime call responsiveness by exiting copilot mode first 724 725 ## [0.6.0] - 2025-09-18 - Epic 6: DreamWeaving Operations (Complete) 726 727 ### Added 728 729 **DreamNode Flip Animation System (Feature #324)** 730 - Seamless 3D flip animation revealing DreamSong content on node backside 731 - Professional flip button with 3x larger hit area and cursor feedback 732 - Bidirectional flipping with proper animation timing and state management 733 - Integrated with Obsidian's canvas parsing system for real content display 734 - Surgical precision fixes for billboard distortion and hit detection 735 736 **Full-Screen DreamSong Experience (Feature #325)** 737 - Dedicated full-screen leaf for immersive DreamSong exploration 738 - Ctrl+D hotkey integration with smart split-screen detection 739 - Real-time file change monitoring with automatic content updates 740 - Comprehensive PDF support and enhanced undo-redo functionality 741 - Command integration with leaf manager for consistent navigation 742 743 **DreamWeaving Canvas Integration (Feature #286)** 744 - Complete .canvas and .link file support across the system 745 - Canvas-to-DreamSong parsing with three-layer architecture 746 - Media path resolution using data URLs for instant playback 747 - Topological ordering preservation for logical content flow 748 - Terminal command access with Ctrl+C hotkey for DreamNodes 749 750 **Constellation Layout System (Feature #326)** 751 - Force-directed graph clustering for relationship visualization 752 - Mathematical precision positioning for 1-36 node layouts 753 - Complete edge rendering system with relationship mapping 754 - Interactive demonstrations with comprehensive documentation 755 - Spherical graph clustering with constellation threads 756 757 ### Technical Achievements 758 759 **DreamSong Architecture Revolution** 760 - Three-layer DreamSong system: DreamTalk → Canvas → README fallback 761 - Intelligent caching with L1/L2 cache architecture for performance 762 - Service layer consolidation with unified parsing infrastructure 763 - Real-time synchronization between 3D view and full-screen experience 764 765 **Canvas Parser Enhancement** 766 - Complete rewrite of canvas parsing with structural hash caching 767 - Support for complex canvas topologies with media-text pair handling 768 - .link file metadata extraction with YouTube and website support 769 - Robust error handling and graceful degradation patterns 770 771 **Developer Experience Infrastructure** 772 - Comprehensive slash command system (/epic-start, /feature-complete, etc.) 773 - Systematic workflow automation for development lifecycle 774 - Quality assurance integration with mandatory testing protocols 775 - GitHub CLI integration for seamless project management 776 777 **Performance Optimizations** 778 - Background indexing system with git integration 779 - Intelligent file change detection with selective re-parsing 780 - Memory-efficient caching strategies across component hierarchy 781 - Optimized animation systems with proper cleanup patterns 782 783 ### Enhanced 784 785 **Spatial Navigation System** 786 - Improved transition animations between spatial modes 787 - Enhanced escape key navigation with proper state isolation 788 - Consolidated layout state management across all view modes 789 - Quality-of-life navigation toggles for fluid user experience 790 791 **File System Integration** 792 - Node.js FileSystem API migration for improved reliability 793 - Obsidian-native file streaming for instant media playback 794 - Path resolution improvements across service architecture 795 - Robust error handling for file operations and git integration 796 797 ### Fixed 798 799 - TypeScript errors across 11 files with comprehensive type safety 800 - Service method access patterns with proper null safety 801 - Event listener type casting for Obsidian API compatibility 802 - Property access on adapter objects with defensive programming 803 - Animation state coordination for consistent user experience 804 - Billboard distortion in 3D flip animations with surgical precision 805 806 ## [0.5.0] - 2025-08-26 - Epic 4: Liminal Web Layout System (Complete) 807 808 ### Added 809 810 **Unified Edit Mode (Feature #321)** 811 - Complete ProtoNode integration with focused view for relationship and metadata editing 812 - Seamless transition between search, edit, and liminal-web spatial modes 813 - Real-time visual feedback during editing with semantic search integration 814 - Save animation system with scale/opacity transitions for natural UX flow 815 - Context-aware edit activation with proper spatial layout state management 816 817 **Edit Mode Refinements** 818 - Comprehensive escape key navigation system with proper state isolation 819 - Visual state management for edit mode overlays and UI components 820 - DreamTalk media file support with display and editing capabilities in EditNode3D 821 - Ring ordering system with priority-based positioning and smooth animations 822 - Center node positioning stability during edit mode transitions 823 824 **Transition System Improvements** 825 - Liminal-web transition animations with proper command queuing 826 - Quality-of-life navigation toggles between spatial modes 827 - Animation duration respect system for seamless user experience 828 - Mid-flight animation interruption handling for responsive interactions 829 - Proper state management for complex spatial mode transitions 830 831 **Layout State Unification** 832 - Unified spatialLayout state management across all modes including edit 833 - Enhanced escape navigation flow with debouncing and state coordination 834 - Single-layer escape navigation system with optimized user experience 835 - Elegant spinning loading indicators for async operations 836 - Visual feedback systems for edit mode state changes 837 838 **Bug Fixes and Polish** 839 - Fixed UI blocking issues by removing unnecessary 3D geometry from EditModeSearchNode3D 840 - React Hooks order violation resolution in EditModeOverlay component 841 - Gradient direction fixes and escape event propagation priority handling 842 - Ring ordering logic improvements with proper position swapping 843 - Center node fly-out prevention during edit mode entry 844 845 ### Technical Achievements 846 847 **Architecture Completion** 848 - Epic 4 foundation features (#316, #320) integrated with edit mode (#321) 849 - Complete spatial relationship orchestration system operational 850 - Unified edit interface supporting both metadata and relationship modifications 851 - Service layer architecture maintained throughout edit mode implementation 852 853 **Code Quality Excellence** 854 - 179 unit tests passing with comprehensive coverage maintained 855 - Zero lint warnings and zero TypeScript compilation errors 856 - Clean git state with systematic commit organization 857 - Performance optimization for complex spatial transitions 858 859 **Key Technical Innovations** 860 - Spatial layout state coordination between store and orchestrator systems 861 - Edit mode lifecycle management with proper component mounting/unmounting 862 - DreamTalk media file persistence and display integration 863 - Animation state management for complex multi-component interactions 864 865 ### Known Issues 866 867 **Proto Node Animation System** (Documented for Future Resolution) 868 - Proto node fly-in animations deferred due to animation system complexity 869 - Current implementation provides stable core functionality without visual transitions 870 - Animation states conflict with component lifecycle and useFrame timing 871 - Requires architectural rethinking of animation coordination for creation components 872 873 **Edit Mode Layout Edge Cases** (Documented for Future Resolution) 874 - Search results differentiation between related vs unrelated nodes in ring layout 875 - Complex state coordination between spatial orchestrator and store systems 876 - Alternative approach consideration: simpler behavior acceptance for MVP 877 878 ### Breaking Changes 879 880 None. All changes are backward compatible with existing Epic 1-5 functionality. 881 882 ### Migration Notes 883 884 No migration required. Epic 4 completion enhances existing spatial navigation workflows without disrupting current functionality. 885 886 ## [0.4.0] - 2025-08-19 - Epic 5: Semantic Search System 887 888 ### Added 889 890 **Intelligent Indexing System (Feature #322)** 891 - Complete IIndexingService interface with IndexingService implementation 892 - Vector data persistence across sessions via Zustand store with Map serialization 893 - Command palette integration with three indexing commands and async operation patterns 894 - Git-based change detection: automatic indexing on creation + commit-hash delta detection 895 - Intelligent delta updates: only index changed/new nodes, cleanup deleted nodes 896 - Background processing with non-blocking operations and progress indicators (20% intervals) 897 - Service layer integration with mock/real mode compatibility and unified node access 898 - Comprehensive testing: 22 IndexingService tests (179 total tests passing) 899 900 **Semantic Search Implementation (Feature #290)** 901 - Ollama Local Embedding API integration: sovereign AI solution using local models 902 - Modular feature architecture: complete vertical slice at `src/features/semantic-search/` 903 - Zustand store slice pattern: OllamaConfigSlice with clean state management 904 - Service layer integration: factory pattern with app context for semantic operations 905 - Command organization: 8 semantic search commands across 3 organized command files 906 - Auto-indexing pipeline: nodes automatically indexed on creation and git commit changes 907 908 **Search-as-DreamNode Interface (Feature #323)** 909 - Unified search/creation UX paradigm with seamless query-to-node transformation 910 - SearchNode3D component with real-time visual feedback during query typing 911 - Save animation system with scale/opacity transitions for natural UX flow 912 - Command palette integration: "Activate Search Interface" with proper state management 913 - Context-aware search activation: spatial layout switching with clean state transitions 914 - Intelligent query change detection: only trigger re-search when query content changes 915 916 **Honeycomb Search Layout (Feature #280)** 917 - Mathematical precision for 1-36 node positioning with perfect hexagonal grid 918 - Adaptive ring distribution: dynamic optimization based on node count 919 - Scale progression system: center → ring 1 → ring 2 with optimal spacing ratios 920 - Integration with semantic search: honeycomb layout activated in search spatial mode 921 - Performance optimization: efficient position calculation with mathematical constants 922 923 ### Technical Achievements 924 925 **Architecture Innovations** 926 - Experimental branch archiving strategy: preserving alternative approaches with comprehensive documentation 927 - Vertical slice architecture: complete self-contained features ready for npm package extraction 928 - Local AI sovereignty: no cloud dependencies, all processing local via Ollama 929 - Robust error handling: graceful degradation when semantic search unavailable 930 - Cross-session persistence: vector data survives plugin reloads via persistent store middleware 931 932 **Code Quality Excellence** 933 - Zero lint warnings and zero TypeScript compilation errors across entire codebase 934 - 179 unit tests passing with comprehensive coverage for new services 935 - Type safety improvements: systematic replacement of 'any' types with proper TypeScript typing 936 - Git integration hooks: automatic re-indexing on `GitDreamNodeService.create()` and commit detection 937 938 **Key Technical Innovations** 939 - Character frequency embeddings: placeholder system for future Qwen3 integration 940 - Command palette UX: setTimeout pattern prevents palette freezing during async operations 941 - Delta algorithm: uses git commit hashes for intelligent change detection 942 - Progress notifications: real-time UI feedback for long-running background operations 943 - Error resilience: graceful handling of indexing failures with detailed error reporting 944 945 ### Files Delivered 946 947 **Core Implementation** 948 - `src/services/indexing-service.ts` (446 lines): Complete indexing infrastructure 949 - `tests/services/indexing-service.test.ts` (483 lines): Comprehensive test coverage 950 - `src/features/semantic-search/` (complete vertical slice): 2,500+ lines of semantic search functionality 951 - Enhanced 6 existing files with indexing integrations and vector storage 952 953 ### Architecture Foundation 954 955 Epic 5 establishes the foundation for advanced semantic capabilities: 956 - Ready for semantic search interface, query processing, and similarity calculations 957 - Modular architecture supports future AI model integrations 958 - Local-first approach ensures data sovereignty and privacy 959 - Scalable indexing system handles growing knowledge graphs efficiently 960 961 ### Breaking Changes 962 963 None. All changes are backward compatible with existing Epic 1-4 functionality. 964 965 ### Migration Notes 966 967 No migration required. Semantic search features are opt-in and enhance existing workflows without disrupting current functionality. 968 969 ## [0.3.0] - 2025-07-26 - Epic 3: DreamNode Management System 970 971 ### Added 972 973 **Service Layer Architecture** 974 - Interface-based service pattern with runtime switching capability 975 - MockDreamNodeService for fast UI iteration without file system operations 976 - GitDreamNodeService for real git repository management 977 - Command palette commands for switching between mock and real data modes 978 - Session storage persistence for mock data development 979 980 **Git Template System** 981 - Complete DreamNode template stored in plugin directory 982 - Automatic git repository initialization with `git init --template` 983 - Pre-configured git hooks for coherence beacon updates 984 - UDD metadata system with JSON-based node information 985 - 4 new command palette commands for template operations 986 987 **Visual Git State Indicators** 988 - Three-tier visual state hierarchy for DreamNodes 989 - Red glow for uncommitted or stashed changes (work-in-progress) 990 - Blue glow for committed but unpushed changes (ready to share) 991 - Clean state (no glow) for synchronized repositories 992 - Robust detection using `git status --porcelain=v1 --branch` 993 994 **Creator Mode Workflow** 995 - Auto-stash pattern for workspace isolation 996 - Seamless entry/exit from work-in-progress states 997 - Git stash integration for preserving uncommitted changes 998 - Safe commit workflow with automatic stash clearing 999 - Protection against losing work during mode transitions 1000 1001 **Proto-node Creation System** 1002 - In-space node creation with unified animation system 1003 - Smooth transitions from proto-nodes to full DreamNodes 1004 - Integration with drag-drop system for DreamTalk assignment 1005 - Visual feedback during creation process 1006 1007 **Universal Drag-Drop Hit Detection** 1008 - Native Three.js scene-based raycasting system 1009 - Scale-aware hit detection across all zoom levels 1010 - Invisible hit spheres that travel with visual nodes 1011 - Flawless interaction at any viewing distance 1012 - Support for both click selection and drag operations 1013 1014 ### Technical Achievements 1015 1016 **Code Quality** 1017 - 101 unit tests passing (up from 84 in Epic 2) 1018 - Comprehensive test coverage for all new services 1019 - Mock implementations for all service interfaces 1020 - Zero lint warnings or type errors 1021 1022 **Architecture Innovations** 1023 - Service layer abstraction enabling clean separation of concerns 1024 - Dynamic runtime service swapping for development efficiency 1025 - Unified animation system for consistent visual transitions 1026 - Shared styling infrastructure (dreamNodeStyles.ts) 1027 - Command-driven architecture with service delegation 1028 1029 **Development Infrastructure** 1030 - Enhanced testing patterns for service layer 1031 - Mock git operations for reliable testing 1032 - Improved TypeScript interfaces and type safety 1033 - Professional git workflow patterns documented 1034 1035 ### Changed 1036 - **State Management**: Extended Zustand store with service layer integration 1037 - **Testing**: Expanded coverage to include service layer patterns 1038 - **Commands**: Added 6 new commands for DreamNode operations 1039 - **Documentation**: Updated with service patterns and git workflows 1040 1041 ### Foundation for Epic 4 1042 This release establishes the complete DreamNode management foundation for Epic 4 (Liminal Web Layout System), with service layer architecture, visual state management, and robust git integration patterns ready for dynamic spatial layout implementation based on relationships. 1043 1044 ## [0.2.0] - 2025-07-18 - Epic 2: 3D Spatial Visualization System 1045 1046 ### Added 1047 1048 **React Three Fiber Integration** 1049 - Custom Obsidian WorkspaceLeaf with React Three Fiber Canvas 1050 - DreamSpace view accessible via command palette and ribbon icon 1051 - Seamless integration between Obsidian and 3D rendering engine 1052 1053 **3D Spatial Components** 1054 - DreamNode 3D Component with star rendering architecture 1055 - Star3D component for lightweight constellation visualization 1056 - Decoupled rendering system for performance optimization 1057 - Support for circular media display with proper aspect ratio handling 1058 1059 **Advanced Interaction Controls** 1060 - Google Earth-style virtual trackball rotation without gimbal lock 1061 - Static camera + rotatable world architecture for natural interaction 1062 - Physics-based momentum with smooth damping 1063 - Unified rotation mathematics eliminating momentum distortion 1064 1065 **Spatial Layout Algorithms** 1066 - Fibonacci Sphere Layout using golden ratio distribution 1067 - Perfect spherical distribution for constellation-like appearance 1068 - Scalable algorithm supporting thousands of nodes 1069 - Mathematical precision with proven positioning algorithms 1070 1071 **Dynamic View Scaling** 1072 - Apple Watch-style distance-based scaling system 1073 - Smooth interpolation between minimum and maximum distances 1074 - Perspective-corrected scaling for linear perceived size changes 1075 - Configurable scaling zones with smooth transitions 1076 1077 **State Management Integration** 1078 - Extended Zustand store with spatial state management 1079 - Layout switching between Fibonacci sphere and other patterns 1080 - Persistent camera state across sessions 1081 - Integrated with existing command palette architecture 1082 1083 ### Technical Achievements 1084 1085 **Code Quality** 1086 - 84 unit tests passing (up from 47 in Epic 1) 1087 - Zero lint warnings or errors 1088 - Full TypeScript type safety throughout 1089 - Comprehensive test coverage for all new components 1090 1091 **Architecture Innovations** 1092 - Static camera approach eliminates gimbal lock issues 1093 - Dream Graph Orchestrator pattern for unified layout management 1094 - Performance-optimized Group transformations 1095 - Scalable foundation for future 3D features 1096 1097 **Development Infrastructure** 1098 - Enhanced ESLint configuration with browser globals 1099 - Comprehensive testing for React Three Fiber components 1100 - Mock infrastructure for 3D rendering testing 1101 - Professional development workflows with npm run check-all 1102 1103 ### Changed 1104 - **Build System**: Enhanced Vite configuration for 3D development 1105 - **Dependencies**: Added React Three Fiber and Three.js support 1106 - **Testing**: Expanded test coverage to include 3D components 1107 - **Documentation**: Updated with spatial algorithms and patterns 1108 1109 ### Foundation for Epic 3 1110 This release establishes the complete 3D spatial visualization foundation for Epic 3 (DreamNode Management System), with all core spatial algorithms, interaction patterns, and rendering systems in place. 1111 1112 ## [0.1.0] - 2025-07-13 - Epic 1: Plugin Infrastructure 1113 1114 ### Added 1115 1116 **Obsidian Plugin Foundation** 1117 - Complete Obsidian plugin boilerplate with manifest.json and main.ts 1118 - Plugin loads successfully in Obsidian with ribbon icon 1119 - Development vault integration with symlink support 1120 1121 **Modern Build System** 1122 - Vite build system replacing esbuild for superior development experience 1123 - Dual development workflow: browser development + Obsidian plugin builds 1124 - Hot reload support for React development 1125 - TypeScript configuration optimized for both environments 1126 1127 **Command Palette Architecture** 1128 - 8 core commands accessible via Obsidian command palette (Cmd/Ctrl+P) 1129 - Command-driven design pattern for all plugin functionality 1130 - Test commands for development and verification 1131 1132 **Service Layer Implementation** 1133 - UIService: User notifications and feedback system 1134 - GitService: Git operations abstraction with AI assistance 1135 - DreamNodeService: Node selection and state management 1136 - VaultService: Obsidian file system operations wrapper 1137 1138 **State Management** 1139 - Zustand reactive store for centralized state management 1140 - Cross-service state synchronization patterns 1141 - Preparation for complex React UI components 1142 1143 **Comprehensive Testing** 1144 - Vitest testing framework with 47 tests passing 1145 - Complete Obsidian API mocking infrastructure 1146 - Co-located test patterns following vertical slice architecture 1147 - Integration tests for command → service → state flow 1148 1149 ### Changed 1150 - **Build System**: Migrated from esbuild to Vite 1151 - **Development Workflow**: Added browser development capability 1152 - **Architecture**: Established service layer pattern 1153 1154 ### Technical Details 1155 1156 **Build Process** 1157 - `npm run dev` - Browser development with hot reload 1158 - `npm run plugin-build` - Obsidian plugin build (dist/main.js → main.js) 1159 - `npm run check-all` - Complete quality checks (lint + typecheck + test) 1160 1161 **Commands Implemented** 1162 - `InterBrain: Open DreamSpace` - Opens 3D spatial visualization 1163 - `InterBrain: Save DreamNode (commit changes)` - AI-assisted git commits 1164 - `InterBrain: Create new DreamNode` - Dream/Dreamer node creation 1165 - `InterBrain: Weave Dreams into higher-order node` - Git submodule composition 1166 - `InterBrain: Toggle DreamNode selection` - Multi-select operations 1167 - `InterBrain: Share DreamNode via Coherence Beacon` - Social sharing 1168 - `[TEST] Select Mock DreamNode` - Development state testing 1169 - `[TEST] Clear DreamNode Selection` - Development state clearing 1170 1171 **Development Infrastructure** 1172 - ESLint configuration with TypeScript support 1173 - Vitest with jsdom environment for DOM testing 1174 - Comprehensive mock utilities for Obsidian APIs 1175 - Git workflow with epic/feature branch strategy 1176 1177 ### Foundation for Future Development 1178 This release establishes the complete foundation for Epic 2 (3D Spatial Visualization) and beyond, with clean architecture patterns and comprehensive testing coverage ensuring sustainable development.