Skip to content

Blog

Version 0.1.36

This release includes new keyboard shortcuts to improve navigation and zooming within the viewport, along with documentation updates to better organize and map the codebase.

New Features

  • Added keyboard shortcuts to zoom the viewport to selected nodes ('z') and to zoom out to fit all content ('Shift+Z'), enhancing navigation efficiency. Also introduced helper functions for bounding box calculation and smooth viewport animation. (d78bc1) (Eric Ma)

Bug Fixes

  • No bug fixes in this release.

Deprecations

  • No deprecations in this release.

Version 0.1.34

This release focuses on significant refactoring and improvements to the codebase, enhancing developer experience and code quality. It introduces comprehensive type annotations for better IDE support and restructures the UI code with modern tooling and patterns.

New Features

  • Added detailed JSDoc type annotations across core JavaScript modules to improve IDE support and code clarity, including new types like Node, Edge, ChatMessage, and more. Also introduced a new factory function createFlashcardNode for graph node creation. (e1b371) (Eric Ma)
  • Implemented UI engineering improvements by adding ESLint and Prettier for consistent code quality, modularizing CSS into multiple files, and replacing canvas callbacks with an EventEmitter pattern for better event handling. Also removed dead code and legacy feature flags to streamline the codebase. (3b1044) (Eric Ma)

Bug Fixes

  • Fixed missing CSS variables and removed duplicate CSS rules to ensure consistent styling across the application. (3b1044) (Eric Ma)

Deprecations

  • Removed the USE_CRDT_GRAPH feature flag as it was always enabled, simplifying the codebase. (3b1044) (Eric Ma)

Version 0.1.33

This release introduces improved navigation shortcuts and a major enhancement to node management with collapsible child nodes for better canvas organization. It also includes new unit tests and code cleanup for more reliable and maintainable graph operations.

New Features

  • Added j/k keyboard shortcuts to navigate parent and child nodes intuitively, improving user navigation both in the main view and popover selections. The help modal was updated to document these new shortcuts. (d30ef5) (Eric Ma)
  • Introduced collapsible child nodes with collapse/expand buttons on all node types, enabling users to clean up the canvas view. This feature persists collapsed states across page reloads and correctly handles merge nodes visibility. (c084d0) (Eric Ma)

Bug Fixes

  • Added unit tests for collapse graph methods and removed debug logging to improve code quality and maintainability. Also cleaned up node visibility logic. (45ba38) (Eric Ma)

Deprecations

  • No deprecations in this release.

Version 0.1.35

This release delivers a major refactoring of the frontend codebase, splitting the monolithic app.js into dedicated feature modules for better maintainability and developer experience.

Refactoring

  • Split app.js into six dedicated feature modules using dependency injection pattern:
  • utils.js (402 lines): Pure utility functions
  • flashcards.js (775 lines): FlashcardFeature class
  • committee.js (528 lines): CommitteeFeature class
  • matrix.js (846 lines): MatrixFeature class
  • factcheck.js (691 lines): FactcheckFeature class
  • research.js (348 lines): ResearchFeature class
  • Reduced app.js from ~8,479 to 5,503 lines (35% reduction). (d1c6221) (Eric Ma)

Technical Details

  • All feature modules use lazy initialization via getters in App class
  • Feature modules are reset when graph changes to ensure fresh state
  • All 55 JS tests and 48 Python tests pass

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