Skip to content

Blog

Version 0.1.32

This release includes an important bug fix to prevent data loss during concurrent matrix cell updates, ensuring more reliable and consistent behavior when multiple operations occur simultaneously.

New Features

  • No new features were added in this release.

Bug Fixes

  • Prevent matrix cell data loss during concurrent fills by re-reading node state before writing updates, avoiding race conditions where parallel operations could overwrite each other. Includes tests demonstrating the issue and verifying the fix. (a95a26) (Eric Ma)

Deprecations

  • No deprecations in this release.

Version 0.1.31

This release focuses on improving code quality and maintainability by introducing a new helper method to prevent bugs, enhancing documentation on testing best practices, fixing critical bugs related to API calls, and cleaning up code formatting.

New Features

  • Added a buildLLMRequest helper method in the App class to centralize and standardize parameters for LLM API requests, preventing missing base_url bugs and reducing code duplication (f4b362) (Eric Ma)
  • Added a new section "When NOT to write unit tests" in AGENTS.md to guide developers on appropriate testing strategies and avoid brittle or redundant tests (c30913) (Eric Ma)

Bug Fixes

  • Fixed missing base_url parameter in all /api/refine-query calls (search, research, factcheck), ensuring correct routing through LLM proxy configurations (36bdd0) (Eric Ma)

Deprecations

  • Removed 7 unit tests for the buildLLMRequest helper after code review, following updated testing guidelines that discourage unit testing complex instance methods with runtime dependencies (a95a93) (Eric Ma)

Chores

  • Applied pre-commit formatting fixes including markdown improvements and removal of unused imports to maintain code quality (abe8fc) (Eric Ma)

Version 0.1.30

This release improves the robustness of text highlighting in markdown tables containing rendered math by replacing the previous normalization-based matching with a Smith-Waterman local alignment algorithm. This change addresses issues with incorrect or partial highlights caused by browser artifacts when selecting text from KaTeX-rendered content.

New Features

  • Implement Smith-Waterman local alignment to accurately match user text selections in HTML, handling insertions, deletions, and mismatches gracefully (064e70) (Eric Ma)

Bug Fixes

  • Fix text highlighting failures in KaTeX-rendered markdown tables by replacing normalization-based matching with sequence alignment (064e70) (Eric Ma)

Deprecations

  • None

Version 0.1.29

This release introduces the new /factcheck slash command, enabling users to verify claims through an interactive modal interface. The feature includes a smooth user experience with loading indicators, claim selection with warnings for large selections, and animated UI elements for better usability. Several bug fixes and UI improvements accompany this major addition.

New Features

  • Implemented the /factcheck slash command with claim selection modal and verification logic, including parallel fact-checking and verdict analysis (c365c9) (Eric Ma)
  • Added loading node UX to show immediate feedback during factcheck processing, with status updates and cancellation support (c365c9) (Eric Ma)
  • Enabled selecting more than five claims with an informational warning and added a toggle to select or deselect all claims (c365c9) (Eric Ma)
  • Added smooth accordion expand/collapse transitions for factcheck nodes for a polished user experience (c365c9) (Eric Ma)

Bug Fixes

  • Corrected factcheck modal element ID from claims-count to selection-count (c365c9) (Eric Ma)
  • Added padding to factcheck node content during loading state to fix spacing issues (c365c9) (Eric Ma)
  • Removed border flash when closing factcheck accordion by adjusting transition effects (c365c9) (Eric Ma)

Deprecations

  • None

Version 0.1.28

This release introduces a new fallback search feature using DuckDuckGo when the primary Exa API key is unavailable. It also replaces a deprecated search package with its updated counterpart and includes an important dependency upgrade.

New Features

  • Added a DuckDuckGo search fallback endpoint and UI enhancements to handle missing Exa API key, improving search reliability and user experience (0dd662) (Eric Ma)

Bug Fixes

  • Replaced the deprecated duckduckgo_search package with the new ddgs package to ensure continued compatibility and maintenance (f394d7) (Eric Ma)

Deprecations

  • None in this release

Dependency Updates

  • Upgraded GitHub Actions actions/github-script from version 7 to 8 for improved CI workflows (911414) (dependabot[bot])

Version 0.1.27

This release improves the testing setup by importing actual implementations instead of copies, refactors highlight-related utilities into a shared module, and fixes source text highlighting for multiline selections spanning multiple block elements.

New Features

  • Extract highlight utilities into a separate module for reuse across the app and tests, and add documentation for testing DOM-dependent functions (e62612) (Eric Ma)
  • Update test_search.js to import actual implementations by adding CommonJS exports, ensuring tests validate real code (9d0608) (Eric Ma)

Bug Fixes

  • Fix source text highlighting for multiline selections by correctly handling text node spacing, blockquote prefixes, and adding comprehensive tests (7cb221) (Eric Ma)

Deprecations

  • None

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