Skip to content

Blog

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

Version 0.1.42

This release includes important fixes to improve local development experience by correcting static file paths and setting appropriate base paths.

New Features

  • No new features were added in this release.

Bug Fixes

  • Fixed static file paths in index.html to use relative paths for better compatibility during local development (3453b1) (Eric Ma)

Deprecations

  • No deprecations in this release.

Version 0.1.41

This version introduces support for deploying the application behind load balancers or reverse proxies that use base path prefixes. It ensures that all API calls and static asset loading correctly respect these base paths, improving flexibility in various hosting environments.

New Features

  • Added utility functions to detect and handle base paths, enabling API endpoints and static assets to work correctly when deployed behind load balancers or reverse proxies with path prefixes (1c78d2) (Eric Ma)

Bug Fixes

  • N/A

Deprecations

  • N/A

Version 0.1.40

This release includes an important bug fix to improve the reliability of running multiple research tasks in parallel.

New Features

  • No new features were added in this release.

Bug Fixes

  • Prevent parallel research tasks from interfering with each other by capturing necessary variables in closure constants before handling SSE streams. This resolves an issue where starting a second research task would cause the first one to display 'empty research instructions'. (0ed50f) (Eric Ma)

Deprecations

  • No deprecations in this release.

Version 0.1.39

This release introduces a new DuckDuckGo fallback for the research command, adds stop and continue controls for research nodes, and improves documentation and tests to reflect recent changes.

New Features

  • Added a DuckDuckGo fallback search option for the /research command, enabling iterative search loops with parallel fetching, relevance filtering, retry logic, and error handling. The frontend now automatically uses this fallback when the Exa API key is missing, and the provider is shown in the slash command autocomplete. (4e3f13) (Eric Ma)
  • Added STOP and CONTINUE buttons to research nodes, allowing users to stop and resume research. The model used is displayed in the research node header, and the continue functionality restarts research on the same node using stored original instructions and context. (10474a) (Eric Ma)

Bug Fixes

  • Fixed the DDGResearchRequest test to correctly reflect that the api_key field is optional, ensuring only instructions and model are required. (50c9a0) (Eric Ma)
  • Updated deep-research documentation formatting to comply with markdownlint and corrected information to indicate that research can now be stopped and resumed, removing outdated statements. (393cde) (Eric Ma)

Deprecations

  • None in this release.