Skip to content

Blog

Version 0.1.26

This release introduces support for user-defined custom models compatible with LiteLLM, allowing users to add and manage their own model IDs with optional base URLs. It also improves the release process by preventing trailing whitespace and stale lock files, and refactors release formatting to use pre-commit hooks for better consistency.

New Features

  • Add support for user-defined custom models that persist in settings and appear in the model picker, with optional per-model base URL configuration (d1b19b) (Eric Ma)

Bug Fixes

  • Prevent trailing whitespace and stale pixi.lock files in release notes by stripping whitespace, updating lock files after changes, and committing them together (b393b0) (Eric Ma)

Deprecations

  • Refactor release formatting to use pre-commit hooks instead of sed for handling trailing whitespace and lock file updates (016ae0) (Eric Ma)

Version 0.1.25

This release introduces a comprehensive flashcard system with spaced repetition, including flashcard creation, review, and grading features. It also adds a 3D flip animation for flashcards and a notification toast for due flashcards. Several bug fixes and refactorings improve the review experience and code maintainability.

New Features

  • Added FLASHCARD node type and FlashcardNode class with question/answer display and spaced repetition status (5e472e) (Eric Ma)
  • Added flashcard generation from content nodes with user selection via modal and LLM-generated cards (0d150f) (Eric Ma)
  • Added flashcard review modal implementing the SM-2 spaced repetition algorithm with answer grading and manual override (f3ee84) (Eric Ma)
  • Added due flashcard notification toast on session load with interactive Review Now and Later buttons (f7cf61) (Eric Ma)
  • Added configurable grading strictness setting for flashcard review with dropdown in settings modal and LLM prompt adjustments (b4b2e5) (Eric Ma)
  • Added 3D flip animation for flashcards using CSS transforms and toggleable flipped state (edad5e) (Eric Ma)

Bug Fixes

  • Fixed flashcard action buttons (create, flip, review) not working due to missing CSS classes and event listeners (edc78b7) (Eric Ma)
  • Fixed review modal input not working on subsequent reviews by updating event listener setup order and resetting button state (f9b0cbf) (Eric Ma)
  • Fixed flashcard review status display to show 'Due tomorrow' for failed cards instead of 'New' by basing status on nextReviewDate (0d98ea5) (Eric Ma)
  • Fixed flashcard review status update and null reference errors by re-fetching nodes and preserving reviewedCount before modal close (67f13e0) (Eric Ma)
  • Fixed checkDueFlashcardsOnLoad to use getAllNodes() instead of nodes Map for accurate due card detection (e89fe88) (Eric Ma)

Deprecations

  • Extracted layout functions into a separate module (layout.js) for better testability and to avoid test code drift (dd51b77) (Eric Ma)
  • CI deployment now triggers only on relevant app or deployment code changes to avoid unnecessary deployments (6a29851) (Eric Ma)

Version 0.1.24

This version introduces a new interactive feature that allows users to highlight nodes by their tags, improving the ability to visually filter and explore tagged elements within the interface.

New Features

  • Added the ability to highlight all nodes sharing a tag by clicking on tag chips. Non-matching nodes and their edges fade out, while matching nodes receive a highlight ring. Clicking the same tag again or the canvas background clears the highlight. The tag drawer also supports highlighting when no nodes are selected and shows a magnifying glass icon on the active filter in the tag drawer (c20793) (Eric Ma)

Bug Fixes

  • None

Deprecations

  • None

Version 0.1.23

This release introduces a new feature that allows users to resize the index column in matrix nodes by dragging the corner cell's right edge. The chosen width is saved and restored on re-render. Additionally, unit tests have been added to ensure this functionality works correctly. Documentation has also been updated to clarify the branching strategy for contributing to the project.

New Features

  • Add resizable index column for matrix nodes, enabling users to drag and adjust the index column width with persistence across renders (30366c) (Eric Ma)
  • Add unit tests for the matrix index column resize feature to verify the resize handle and CSS variable application (295649) (Eric Ma)

Bug Fixes

  • None

Deprecations

  • None

Version 0.1.22

This release introduces a new feature that improves the user experience by providing a consistent way to close any open modal using the Escape key.

New Features

  • Added a uniform Escape key handler that closes the first open modal found in a defined priority order, covering 10 different modals for consistent dismissal (0fd634) (Eric Ma)

Bug Fixes

  • None

Deprecations

  • None

Version 0.1.21

This release improves node selection behavior, enhances Matrix and PDF node interfaces, fixes navigation issues, and updates the development environment configuration.

New Features

  • Added a Summarize button to PDF nodes to enable document summarization directly from the node interface (5aa312) (Eric Ma)
  • Unified Matrix node rendering to follow the standard header/content/footer structure for consistent UI and easier maintenance (dad3c4) (Eric Ma)
  • Added navigation buttons to Matrix nodes dynamically, ensuring consistency with other node types (8aafe2) (Eric Ma)

Bug Fixes

  • Fixed node selection to use the capture phase, allowing any click inside a node to select it regardless of which child element handles the click (8c18ba) (Eric Ma)
  • Fixed duplicate parent/child entries in the navigation popover by removing redundant index updates (5aa312) (Eric Ma)

Deprecations

  • Removed the special case handling for Matrix nodes in canvas.js in favor of a unified rendering approach (dad3c4) (Eric Ma)

Version 0.1.20

This release introduces significant improvements to the multiplayer collaboration experience, including real-time synchronization of node positions, sizes, and content, enhanced user interface elements for easier sharing and leaving multiplayer sessions, and robust conflict prevention through node locking. Additionally, the update refines node sizing for consistent layout and smooth animations during remote changes, while also improving performance and fixing synchronization bugs.

New Features

  • Added a WebRTC signaling server and integrated y-webrtc for real-time multiplayer synchronization, including a new multiplayer button with peer count and UI styles (78a2db) (Eric Ma)
  • Enabled session sharing via URL parameters with automatic joining and shareable link copying, plus a toast notification system for user feedback (ade1b5) (Eric Ma)
  • Implemented real-time drag synchronization with throttled position updates during node dragging for smooth multiplayer interaction (ade1b5) (Eric Ma)
  • Added real-time resize synchronization to update node size changes continuously during drag operations (43e7ef) (Eric Ma)
  • Introduced node locking mechanisms to prevent edit conflicts in multiplayer by showing lock indicators and restricting simultaneous edits (fcde1df) (Eric Ma)
  • Improved multiplayer user experience by making the multiplayer button copy the share link on click and adding a dedicated leave button for easier session exit (3ec793) (Eric Ma)
  • Animated remote position and size changes smoothly to enhance the visual experience during multiplayer layout updates (022f01) (Eric Ma)
  • Refactored all nodes to have fixed dimensions with scrollable content to fix multiplayer sync bugs related to size detection (77e348) (Eric Ma)
  • Enhanced multiplayer sync smoothness by increasing drag sync frequency to 60fps and adding live streaming sync for matrix cell fills (357193) (Eric Ma)

Bug Fixes

  • Fixed synchronization issues where title, tags, and matrix cell content did not update correctly across multiplayer sessions (769d10) (Eric Ma)
  • Fixed CRDT bypass issues ensuring all node mutations go through proper update methods for consistent multiplayer state (ade1b5) (Eric Ma)

Deprecations

  • Removed isScrollable() overrides in favor of a unified base class implementation for consistent scrolling behavior (77e348) (Eric Ma)

Version 0.1.19

This release introduces a complete rewrite of the graph implementation using CRDTs for real-time collaboration, along with a safe feature toggle to switch between the new CRDT-based graph and the legacy graph. It also includes important bug fixes related to layout, drag behavior, and Yjs instance management to improve stability and correctness.

New Features

  • Added a fresh CRDTGraph implementation using duck typing and Y.Text for collaborative editing, fully compatible with the legacy Graph API (ca1647) (Eric Ma)
  • Integrated CRDTGraph into the app with a safe toggle feature flag that allows switching between CRDT and legacy graph modes without data loss, ensuring legacy DB remains the source of truth (403b78) (Eric Ma)

Bug Fixes

  • Fixed layout issues in CRDTGraph including topological sorting, auto layout, and force-directed layout to prevent stale position reads and duplicate nodes; also fixed drag jump after layout animation (2def88) (Eric Ma)
  • Corrected duck typing for Y.Text to prevent misidentification of Y.Array, fixing tag extraction and improving validation with warning logs (603a02) (Eric Ma)
  • Resolved Yjs instance duplication by replacing jsdelivr CDN imports with esm.sh and import maps, ensuring a single shared Yjs instance and fixing 'already imported' warnings (62e617) (Eric Ma)

Deprecations

  • None

Version 0.1.18

This release includes important bug fixes to improve the user experience and reliability of health checks for deployed applications.

New Features

  • No new features were added in this release.

Bug Fixes

  • Prevent the node from jumping when resizing after resetting to the default size (09a1b2) (Eric Ma)
  • Update health check to ping the actual deployed app URLs using the /health endpoint, accept only HTTP 200 responses, increase retry delay for cold starts, and improve deployment summaries and PR comments (baaee4) (Eric Ma)

Deprecations

  • No deprecations in this release.

Version 0.1.17

This release introduces enhanced navigation features for nodes in the graph, making it easier to move between parent and child nodes using both keyboard shortcuts and clickable buttons.

New Features

  • Added keyboard navigation for parent and child nodes, allowing users to navigate using arrow keys, with support for multiple connections via a popover menu and helpful toast messages when no connections exist (d7313a) (Eric Ma)
  • Added up/down arrow buttons to node headers for quick navigation between connected nodes, including popover menus for multiple connections and smooth animated transitions (3da94a) (Claude)

Bug Fixes

  • None

Deprecations

  • None