Completed

  • Settings Panel (presets, model, temp, top_p, top_k, penalties, tree depth, branches)
  • LLM Debug Panel (logs, trace, metrics, filters, export)
  • Privacy & Retention (redaction, consent, retention modes)
  • Parsing Hardening (JSON fallback, schema validation)
  • UI Micro-Polish (spacing, typography, a11y)
  • DOM-safe node rendering (tree.js + main.js refactored)
  • Event listener pattern (all inline handlers removed)
  • Security Hardening (CSP as tight as D3/fonts allow)
  • Documentation Alignment (PROJECT.md consolidated)
  • D3 Stability (NaN/zero-bounds guards in place)
  • Dark Mode (complete theme overhaul)
  • Undo/Redo system (⌘Z/⌘⇧Z/⌘Y)
  • JSON Import (drag-drop, replace/merge modes)
  • Keyboard shortcuts (genius intuitive bindings)
  • Export fixes (overlay handling, clean export)
  • Overlay & dialog focus lifecycle (trap, Escape, focus restore)
  • Settings progressive disclosure (collapsible grouped controls)
  • Detail panel action hierarchy + loading skeleton states
  • Accessibility hardening (ARIA state sync, sr-only keyboard guidance)

Future Enhancements

  • Unit tests for API/settings modules
  • Optional static asset minification (no bundler)
  • Node search/filter
  • Virtualized tree for large datasets
  • Offline support / PWA

Implementation Roadmap Tasks

  • Phase 1: Foundation
    • organize ES modules
    • document Vanilla JS best practices
    • verify Python server configuration (default port 51808)
  • Phase 2: Infrastructure
    • implement APIClient with retry handlers
    • draft central event bus system
    • configure global exception logger
  • Phase 3: Business Logic
    • build TreeService and NodeService states
    • finalize AIService generator methods
    • document plain-object node data contracts
  • Phase 4: UI Components
    • isolate D3 rendering into TreeVisualization component
    • split panel interfaces out of index.html markup
    • refactor key bindings into separate keyboard controller
  • Phase 5: Integration
    • orchestrate event hooks on global event bus
    • connect tree updates to LocalStorage saves
    • wire settings changes into AIService requests
  • Phase 6: Polish
    • deploy Playwright end-to-end checks
    • bundle build and check size constraints