Skip to content

Blog

Version 0.1.51

This release introduces a major improvement in query refinement by implementing structured generation with enhanced reliability and validation. It also includes important bug fixes related to module imports, scrolling behavior, and query handling, as well as documentation updates to enforce ES module usage and improve release note deployment.

New Features

  • Implement structured generation for query refinement using a Pydantic model to ensure consistent, validated JSON output and remove parsing errors. This adds multiple fallback layers and eliminates unwanted formatting or extra text in responses. (9d0757) (Eric Ma)
  • Add a regression test suite to verify that all core modules import correctly without relying on global window variables, preventing future module dependency issues. (f93178) (Eric Ma)

Bug Fixes

  • Prevent empty refined queries from overwriting original user queries in both search and research commands, ensuring user instructions are preserved and providing graceful fallback when refinements are empty. (4d4adc) (Eric Ma)
  • Replace all uses of window.layoutUtils with proper ES module imports to fix crashes (e.g., in the /note command) and improve module dependency management. (daf8a2) (Eric Ma)
  • Enable scrolling inside code nodes by updating event handlers and CSS styles, fixing issues where long code blocks could not be scrolled. (e1387a) (Eric Ma)
  • Fix blog post ordering by including full timestamps in release note frontmatter, ensuring correct chronological sorting even when multiple releases occur on the same day. (89efe8) (Eric Ma)
  • Trigger documentation deployment automatically after releases by adding manual workflow dispatch and updating GitHub Actions workflows to overcome security limitations. (ca9304) (Eric Ma)

Deprecations

  • Update architecture guide to mandate exclusive use of ES modules, removing outdated gradual migration advice and discouraging use of global window variables with clear refactoring guidance. (6d7fd9) (Eric Ma)

Version 0.1.50

This release focuses on enhancing the self-healing functionality with improved test coverage and code quality. It introduces comprehensive unit tests for self-healing code generation and refactors existing tests to follow DRY principles, improving maintainability and readability.

New Features

  • Added unit tests to verify self-healing code generation, including method bindings, node state rendering, and error handling logic (f9a73c) (Eric Ma)
  • Refactored self-healing tests by extracting common helpers, adding edge case coverage, and documenting self-healing behavior (4c714d) (Eric Ma)

Bug Fixes

  • None

Deprecations

  • None

Version 0.1.49

This release improves the AI code generation feature by ensuring that content from PDF nodes is properly included in the context sent to the language model. This results in more accurate and relevant code generation based on the content of PDF documents. Additionally, backend limits on message size and count have been removed to accommodate large PDF content.

New Features

  • Added test coverage to verify PDF nodes are included in code generation context with correct role mapping (1fb473) (Eric Ma)

Bug Fixes

  • Include PDF node content in the code generation context by updating ancestor context filters on the frontend and removing message truncation and limits on the backend (1fb473) (Eric Ma)

Deprecations

  • None

Version 0.1.48

This release improves the release notes management by migrating to a blog plugin for better organization and navigation. It also enhances the code-style workflow performance with caching, fixes a loading race condition in the SlashCommandMenu, and keeps dependency lock files in sync during releases.

New Features

  • Migrated release notes to use the MkDocs Material blog plugin, enabling auto-generated indexes, archive pages, pagination, and clean URLs for easier browsing of release history (6171fc) (Eric Ma)
  • Added caching to pre-commit hooks in the code-style workflow to speed up CI runs by avoiding reinstalling unchanged hooks (fed1df) (Eric Ma)

Bug Fixes

  • Fixed a race condition causing the SlashCommandMenu to fail loading on first access by adding an explicit script tag; also ensured pixi.lock is synchronized with pyproject.toml during auto-release (681d5f) (Eric Ma)

Deprecations

  • None

Version 0.1.47

This release introduces a major new plugin system that allows developers to extend the app with custom node types and slash commands, improving extensibility and user interaction. The codebase has been fully converted to ES modules for modern JavaScript standards, and the app's architecture has been refactored to use event-driven patterns for better maintainability. Additionally, comprehensive tests and developer documentation have been added to support plugin development and ensure stability.

New Features

  • Added a plugin system with configuration-based loading, enabling dynamic injection and registration of custom node types from external JavaScript modules. This allows developers to easily create and load plugins via a config file and CLI flags. (84dc2b) (Eric Ma)
  • Introduced slash command support in the plugin system, allowing plugins to register commands like /poll for natural and interactive node creation directly from the input. (223916) (Eric Ma)
  • Added app.createAndAddNode() helper method to simplify creating and rendering plugin nodes from the browser console or other sources. (80c3d9) (Eric Ma)
  • Refactored the app to use an event emitter pattern for graph changes, emitting events like nodeAdded and nodeRemoved to decouple graph logic from UI updates and improve maintainability. (8b37ad) (Eric Ma)
  • Implemented automatic canvas rendering on nodeAdded events, eliminating the need for manual render calls and preventing rendering bugs. (0146c7) (Eric Ma)
  • Converted the entire JavaScript codebase and tests to use ES module syntax exclusively, modernizing the code and improving module management. (db948c) (Eric Ma)
  • Added comprehensive tests for the plugin system, covering plugin loading, registration, and node behavior, along with updated developer documentation and testing instructions. (14458d) (Eric Ma)

Bug Fixes

  • Fixed the poll plugin by adding missing event handlers for poll actions (voting, adding options, resetting votes), enabling full end-to-end functionality. (14f9b4) (Eric Ma)
  • Corrected the release process to create the Git tag before writing release notes, ensuring the correct version is used and preventing release note misplacement. (118be9) (Eric Ma)
  • Added missing canvas.renderNode() call in createAndAddNode() to ensure nodes are visually rendered after creation. (791333) (Eric Ma)
  • Fixed test method names to match actual App and ModalManager APIs, resolving test failures and improving test accuracy. (82728d) (Eric Ma)
  • Verified release notes file existence before creating GitHub release to prevent workflow failures due to missing files. (0fc95b) (Eric Ma)
  • Completed ES module conversion for all tests, removing legacy import patterns and ensuring consistent module usage. (3188f2) (Eric Ma)

Deprecations

  • Renamed CLI command from main to launch for clearer intent; the old main command remains as a deprecated alias with a warning. (b9cac2) (Eric Ma)

Version 0.1.47

This release focuses on major codebase refactoring for improved maintainability, enhanced test coverage for event binding safety, and workflow improvements to ensure atomic versioning and dependency updates. Several bug fixes address event listener issues after recent modularization.

New Features

  • Extracted major components from app.js into dedicated modules: UndoManager, SlashCommandMenu, modal handlers, and file upload handlers. This reduces the size of app.js by 16.5% and improves code organization and maintainability. (c3415d, Eric Ma)
  • Added integration tests to ensure event listeners are safely bound to methods, preventing undefined method references during refactoring. Introduced reusable test helpers and documented testing patterns. (c89aa7, Eric Ma)

Bug Fixes

  • Updated event listeners for node title, content, and code editing to correctly use methods from the new modal manager, fixing issues caused by recent refactoring. (ac1e7d, Eric Ma)
  • Refactored the auto-release workflow to combine version bump, release notes, and lockfile updates into a single commit, ensuring pyproject.toml and pixi.lock remain in sync and preventing pre-commit failures. (77e3f0, Eric Ma)

Deprecations

  • No deprecations in this release.

Version 0.1.46

This release focuses on improving the test suite by reorganizing and refactoring tests for better maintainability and clarity. It also includes documentation updates and minor formatting fixes.

New Features

  • Split the large test_utils.js file into multiple focused test files that mirror the source code structure, improving test organization and readability (e676ac) (Eric Ma)
  • Created a shared test environment setup file (test_setup.js) and an automatic test discovery script (run_tests.js) to streamline testing workflows (e676ac) (Eric Ma)

Bug Fixes

  • Fixed formatting issues in the test_flashcards.js file to improve code consistency (b8b41d) (Eric Ma)

Deprecations

  • None

Version 0.1.45

This release improves version management by making pyproject.toml the single source of truth and adds a fallback for version reading in Modal deployments. It also introduces a new documentation site with automated deployment, clarifies the code contribution policy, and fixes issues in the auto-release workflow.

New Features

  • Added a new MkDocs-based documentation site with Material theme, including CI/CD for automatic deployment and a Diataxis-based navigation structure. The docs link was added to the main README. (df2d5b) (Eric Ma)
  • Introduced a canvas-chat CLI command to display the current version, leveraging the new versioning system. (fb03de) (Eric Ma)
  • Added a code contribution policy to CONTRIBUTING.md, encouraging detailed feature requests via GitHub issues and recommending agentic coding tools with Plan Mode for exploration before posting. (519c5f) (Eric Ma)

Bug Fixes

  • Added a fallback to read the version from pyproject.toml directly in Modal deployments, which lack package metadata, and included pyproject.toml in the Modal image to support this. (9f31b4) (Eric Ma)
  • Fixed the auto-release workflow to stage pre-commit fixes before verification. (48b2a0) (Eric Ma)
  • Fixed trailing whitespace in the v0.1.44 release notes. (4b3b05) (Eric Ma)

Deprecations

  • Removed the .bumpversion.cfg configuration file and replaced bump2version with uv version --bump in the auto-release workflow, making pyproject.toml the single source of truth for version numbers. (fb03de) (Eric Ma)
  • Removed the PAGES_SETUP.md file as part of documentation restructuring. (217163) (Eric Ma)

Version 0.1.44

This release introduces a new modal-based code editor with convenient keyboard shortcuts, improving the user experience and workflow efficiency. It also includes several bug fixes to enhance canvas node rendering and ensure the model dropdown populates correctly when triggering code generation.

New Features

  • Replaced the inline CodeMirror overlay with a cleaner modal editor and added keyboard shortcuts for editing nodes, running code, and AI actions, improving usability and power user workflow (cc67fb) (Eric Ma)

Bug Fixes

  • Fixed the model dropdown not populating when opening code generation with Shift+A by properly passing the models array and current model (a79182) (Eric Ma)
  • Improved canvas node rendering to prevent double rendering, preserve selection state during animations, and eliminate visual stuttering for a smoother user experience (58dcf6) (Eric Ma)

Deprecations

  • None

Version 0.1.43

This release introduces enhanced flexibility for configuring endpoints in admin mode by allowing environment variable-based settings. This change simplifies managing different environments such as development, testing, and production without modifying the configuration file.

New Features

  • Support endpoint configuration via environment variables in admin mode, enabling the same config.yaml to be used across dev/test/prod environments by setting different endpoint values through environment variables (dd504a) (Eric Ma)

Bug Fixes

  • None

Deprecations

  • None