🛠️ General & System Issues
- Serverless Run: The README states a server is required;
index.htmlmust work when opened directly. - Verbose Toasts: Remove/beautify the verbose “Successfully extended node” toast.
- CSP & Map Block: Fix JS map files blocking (e.g., JSPdf map) due to CSP restricting
connect-srctoopenrouter.aiandapi.openai.com. - D3 NaN Errors: Fix console error:
Error: <path> attribute d: Expected number, "MNaN,NaNCNaN,NaN,...". - Injection Failure: Fix
[UAC-CONTENT][INJECTION_FAILED]background script injection queue errors.
🎛️ Keyboard Navigation & Shortcuts
- Bypass Confirmations: Shift-clicking action buttons (e.g., delete) bypasses confirmation dialogs.
- Arrow Keys: Navigate up/down/left/right relative to layout direction, independent of tree orientation.
- Selection Logic: Post-creation, select closest child relative to parent:
- Odd count: True middle child.
- Even count: Left-of-center child.
- Memory: Remember the last visited child node.
- Shortcuts:
h: Toggle hide/unhide node (avoids conflict with browserCmd+H).Enter/Esc: Open / Close node detail panel or active canvas overlays.Shift+Enter: Expand new branches.r: Reload.BackspaceorDelete: Prompt to delete node.Shift+BackspaceorShift+Delete: Force delete node immediately.- Shortcut for folding/unfolding branches.
🎨 UI/UX & Canvas Interaction
- Dark Mode Card Titles: Ensure card titles in dark mode are styled black for legibility.
- Tree Direction: Support left, right, top, and bottom tree layouts in settings.
- Canvas Reveal: Clicking empty canvas closes detail panels/menus.
- Input Bar: Seed input starts centered, then fades out and slides/dissolves into header icon, leaving DOM.
- Settings Cog: Move dark mode and export buttons to the settings cog (bottom right).
- Undo/Redo: History system with shortcuts (
Cmd+Z,Cmd+Shift+Z), accessible from settings. - Touch & Mobile: Touch gestures (swipe close, pinch zoom), target sizes >=44x44px, and full-screen detail view for widths <=768px.
- Visuals: Node connection animations, smooth zoom, custom connection line styles.
🪴 Node Behavior & Visuals
- Icon Toggle: Support toggling node representation between standard emojis and Lucide React icons.
- Regenerate Behavior: Regenerating a node retracts branches, regenerates target node only, then regrows branches to prior depth.
- Folded Previews: Hovering folded nodes displays tiny clickable subnode dots (
node-folded-preview-item). Slightly thicker circle border indicates nested subnodes. - Overlay ”+”: Overlay ”+” directly over the node emoji (spans whole emoji on hover, removes default styles).
- Overlap Prevention: Spacing algorithm prevents overlaps. Hovering a node brings it to foreground.
- AI Streaming: “Disney-like” animation on the last 1-2 words during text streaming.
- Lineage Context: Nodes track lineage (breadcrumbs) to enforce unique emojis per lineage.
- Image Styling: Prepend unique, appendable image style tag per tree for consistency.
📑 Node Detail Panel
- Detailed Panel Hide Option: Implement a hide toggle option directly within the node detail panel.
- Layout: Subtle gradient backgrounds, card-style elevated sections, and a tabbed interface.
- Interaction: Edit pencil for AI text, click checklist to cross off, drag-and-drop reordering, collapsible sections, quick inline editing.
- Features: Priority levels, tags/labels, auto-save, conflict resolution, version history, change tracking.
- Charts: Connection visualization, tag clouds, and progress charts.
📤 Import, Export & Collaboration
- Universal Format: Export format must support full tree re-import.
- PNG Export: Hide overlays/buttons during capture, center title/emoji, and restore UI post-capture.
- PDF Export: Recursive traversal, dynamic indentation, automatic page breaks, and dark mode adaptation.
- Markdown Export: Full tree traversal (incl. collapsed nodes) with correct header hierarchies and checkboxes.
- Mermaid Export: Full tree structure mapping.
- Collaboration: Share individual nodes, templates, real-time multi-user editing, roles/permissions.
🧠 AI Intelligence
- Search: Postpone search and filter functionality (consider as nice to have for later development logs).
- Suggestions, auto-categorization, similarity scoring, topic relation mapping, similar node recommendations.
- AI-powered summaries of long content, contextual help, smart task generation, priority detection, and dependencies.
🛠️ Technical, Quality & Architecture
- State Persistence: Document state persistence implementation and optimal client-side caching strategies.
- Performance: Virtual scrolling for lists, lazy-loaded content, node caching, and optimized animations.
- Architecture: Modular plugin system, theme engine, custom renderers, API key encryption, and rate limiting.
- Code Quality: Clean up dead settings code, standardize recursive traversal patterns, error boundary handling, and test suites.
🎨 CSS Snippets
/* Modern Panel Design */
.detail-panel {
background: linear-gradient(to bottom right, #ffffff, #f8fafc);
border-radius: 24px;
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.04), inset 0 2px 4px rgba(255, 255, 255, 0.8);
}
/* Section Cards */
.detail-panel-section {
background: white;
border-radius: 16px;
padding: var(--sp-4);
margin-bottom: var(--sp-4);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
transition: transform 0.2s ease;
}
.detail-panel-section:hover { transform: translateY(-2px); }
/* Interactive Elements */
.action-button { position: relative; overflow: hidden; }
.action-button::after {
content: ''; position: absolute; top: 50%; left: 50%; width: 100%; height: 100%;
background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, transparent 60%);
transform: translate(-50%, -50%) scale(0); transition: transform 0.3s ease;
}
.action-button:hover::after { transform: translate(-50%, -50%) scale(2); }
/* Responsive Design */
@media (max-width: 768px) {
.detail-panel { width: 100vw; height: 100vh; border-radius: 0; }
.panel-actions {
position: fixed; bottom: 0; left: 0; width: 100%; padding: var(--sp-4);
background: white; box-shadow: 0 -2px 10px rgba(0,0,0,0.1);
}
}
/* Touch-friendly targets */
@media (pointer: coarse) {
.action-button { min-height: 44px; min-width: 44px; }
.checkbox-label { padding: var(--sp-3) 0; }
}
/* Smooth Animations */
.detail-panel { animation: slideIn 0.3s ease-out; }
.detail-panel-section { animation: fadeIn 0.3s ease-out; animation-fill-mode: both; }
.detail-panel-section:nth-child(1) { animation-delay: 0.1s; }
.detail-panel-section:nth-child(2) { animation-delay: 0.2s; }
.detail-panel-section:nth-child(3) { animation-delay: 0.3s; }
@keyframes slideIn {
from { opacity: 0; transform: translate(-50%, -45%); }
to { opacity: 1; transform: translate(-50%, -50%); }
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}