/ 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.