Skip to content

Blog

Version v0.1.76

This release introduces improved image generation features, including better visibility of prompts and models used, along with enhanced testing for the image generation plugin. Additionally, the continuous integration workflow has been made more robust by adding a PyPI version check to prevent duplicate publishing errors and switching to the httpx library for HTTP requests.

New Features

  • Added a HUMAN node to the /image command that displays the user's prompt and the model used for image generation, improving traceability and consistency with other features (c349fc) (Eric Ma)
  • Added comprehensive tests for the image generation plugin, covering plugin loading, command routing, lifecycle hooks, node creation, and edge connections (771151) (Eric Ma)
  • Added a PyPI version check step in the auto-release workflow to prevent publishing duplicate versions and avoid workflow failures due to partial previous runs (c788fe) (Eric Ma)

Bug Fixes

  • Fixed the PyPI version check script to use the httpx library instead of requests, resolving a ModuleNotFoundError in the auto-release workflow (bd674f) (Eric Ma)
  • Fixed the CI command to include the --with httpx option in the uvx command for the PyPI version check (334c7a) (Eric Ma)

Deprecations

  • None

Version 0.1.74

This release focuses on improving the reliability of event handling in collaborative graph sessions and clarifies the project's merge strategy for better development practices.

New Features

  • Added documentation specifying that pull requests should be merged using the default merge strategy (not --squash) to preserve commit history for debugging and attribution. (c4dacf, Eric Ma)

Bug Fixes

  • Fixed an issue where graph event listeners were not re-attached when creating new sessions, which previously caused the "New Canvas" bug. Refactored event listener setup into a dedicated method and added both static and runtime regression tests to prevent this bug from recurring. (aeeec2, Eric Ma)

Deprecations

  • None in this release.

Version v0.1.75

This release prepares the groundwork for version v0.1.75, following the improvements made in v0.1.74. It includes version bumps and updates to lock files to ensure consistency and reliability in dependencies.

New Features

  • No new features were added in this release.

Bug Fixes

  • No bug fixes were included in this release.

Deprecations

  • No deprecations were introduced in this release.

Version v0.1.73

This release introduces a new API endpoint to generate concise and descriptive session titles based on conversation content. It also includes updates to dependencies and adds tests to ensure the robustness of the new feature.

New Features

  • Added a new /api/generate-title endpoint that creates short, relevant, and well-formatted session titles from conversation data (e58911) (github-actions)

Bug Fixes

  • No bug fixes in this release.

Deprecations

  • No deprecations in this release.

Version v0.1.72

This release improves the text highlighting functionality by introducing a dedicated plugin to better manage highlight features and fixes a regression that broke the highlight and reply workflow.

New Features

  • Created a HighlightFeature plugin to encapsulate and manage text highlighting functionality (953006) (Eric Ma)

Bug Fixes

  • Fixed a regression where the highlight and reply workflow was broken due to a missing function error by moving highlightSourceTextInParent into the new plugin and properly registering event handlers (953006) (Eric Ma)

Deprecations

  • None

Version v0.1.71

This release introduces the ability to render images directly within the git repository node drawer. It supports a variety of image formats, including PNG, JPG, GIF, WebP, BMP, ICO, and SVG, enhancing the visual representation of image files in the file tree and output panels.

New Features

  • Render images in the git repo node drawer with support for multiple image formats, including resizing and sanitization for safe display (6542f0) (Eric Ma)

Bug Fixes

  • None

Deprecations

  • None

Version v0.1.70

This release introduces progressive TypeScript migration for the codebase, starting with converting tests and utility modules to TypeScript. The test runner now supports running both JavaScript and TypeScript test files seamlessly. Additionally, the event-driven tag system was improved to auto-apply tags to selected nodes and ensure proper re-rendering on tag changes. Documentation was updated to guide contributors on TypeScript usage and type checking requirements.

New Features

  • Converted tests to TypeScript with full type annotations and updated test runner to support .ts files using tsx, enabling incremental migration and better type safety (f69ae3) (Eric Ma)
  • Added TypeScript support for model-utils.ts with type-safe function signatures and updated test imports accordingly (e49a95) (Eric Ma)
  • Enhanced tag system to auto-apply new tags to selected nodes, preserve selection during tag operations, and trigger proper re-rendering on tag changes using an event-driven pattern (06f2c4) (Eric Ma)
  • Documented TypeScript type checking requirements for new .ts files in contributor guidelines (86d47a) (Eric Ma)

Bug Fixes

  • Reverted premature TypeScript conversion of model-utils.js to maintain test compatibility until test infrastructure supports .ts imports (0c3d5f) (Eric Ma)

Deprecations

  • None

Version v0.1.69

This release introduces comprehensive TypeScript type checking to the JavaScript codebase, improving code quality and developer experience. It includes tooling, documentation, and incremental migration guidance to facilitate a smooth transition towards stronger typing.

New Features

  • Added TypeScript as a development dependency and enabled strict type checking on JavaScript files using the checkJs option in tsconfig.json. This ensures better type safety without fully converting files to TypeScript. (26cfcb) (github-actions)
  • Introduced npm and pixi scripts (npm run typecheck, pixi run typecheck) to run the type checking process easily from the command line. (26cfcb) (github-actions)
  • Documented the type checking workflow, annotation patterns, and recommended migration order in AGENTS.md to guide contributors on incrementally migrating JavaScript files to TypeScript. (296fa9) (Eric Ma)
  • Added JSDoc type annotations to layout.js to improve type safety and IDE support while maintaining JavaScript syntax. (26cfcb) (github-actions)
  • Updated tests to use node objects with id fields, aligning with the new type definitions for consistency. (26cfcb) (github-actions)

Bug Fixes

  • None in this release.

Deprecations

  • None in this release.

Version v0.1.68

This release introduces a new feature flag to control GitHub Copilot integration in the chat, enhancing security and configurability. It also improves environment variable management by using secrets, adds documentation to prevent direct deployment to Modal, and fixes a test related to model loading.

New Features

  • Add a feature flag CANVAS_CHAT_ENABLE_GITHUB_COPILOT to enable or disable GitHub Copilot in the chat, including backend checks, frontend UI updates, and API support for feature flags (7e573f) (Eric Ma)
  • Use modal.Secret for managing the CANVAS_CHAT_ENABLE_GITHUB_COPILOT environment variable to improve security and manageability over .env() usage (d59e45) (Eric Ma)
  • Add a rule in documentation to never deploy directly to Modal, improving deployment safety (e83b9c) (Eric Ma)

Bug Fixes

  • Fix test setup by correctly setting copilotEnabled to ensure the loadModels test passes (40d1b7) (Eric Ma)

Deprecations

  • None

Version v0.1.67

This release introduces significant improvements to plugin architecture, user experience enhancements like auto-zoom on node creation, and better modularization of features and endpoints. It also includes numerous bug fixes, enhanced testing coverage, and documentation updates to support these changes.

New Features

  • Plugins now automatically trigger auto-zoom when adding nodes by wrapping graph.addNode, simplifying plugin development and improving UX (3d4c0a) (Eric Ma)
  • Added addUserNode() helper and _userNodeCreation flag to track user-initiated node creation and trigger auto-zoom in various node creation flows (6feab6) (Eric Ma)
  • CodeFeature is now fully self-contained, registering its modal and event handlers internally with support for Shift+A shortcut for AI code generation (e31c67) (Eric Ma)
  • CSV nodes implement an analyze() method to create linked Code nodes directly, moving CSV→Code coupling into the node protocol (dad055) (Eric Ma)
  • Feature plugins (Matrix, Committee, Factcheck, Flashcard) now register their modal event handlers internally, removing tight coupling with App.js (97de39) (Eric Ma)
  • ModalManager adds setupCanvasEventListeners() to handle modal-related canvas events, further modularizing event handling (944f85) (Eric Ma)
  • FeatureRegistry gains getAllFeatures() method to return all registered features for bulk operations (7311fc) (Eric Ma)
  • Extracted model utilities (getApiKeyForModel, getBaseUrlForModel) into model-utils.js for better plugin reusability and separation of concerns (48191a) (Eric Ma)
  • Added Clear All button to matrix evaluation UI to reset all cells, with guards to prevent double-generation bugs (cd861a) (Eric Ma)
  • Extracted /api/generate-code and /api/parse-two-lists endpoints into dedicated Python plugins for cleaner app.py and better modularity (3fcf74, 1158ba) (Eric Ma)
  • Added regression and unit tests for auto-zoom, canvas event handler registration, and SSE stream parsing to improve test coverage and prevent regressions (405f78, 36bdc6, e75678, 89fd63) (Eric Ma)

Bug Fixes

  • Fixed Generate button and Enter key event handlers in Code node AI modal to correctly trigger code generation (d99078, 7b4b86, 7b4b86, 7b4b86) (Eric Ma)
  • Fixed duplicate canvas event handler registrations causing duplicate flashcard generation and double matrix fills by removing redundant calls (b9546d, 8b5708) (Eric Ma)
  • Fixed handleSend to generate AI responses when sending messages in chat, matching reply behavior (25c0e6) (Eric Ma)
  • Fixed lazy initialization of graph.addNode wrapper to avoid errors when app.graph is not yet initialized (02c860) (Eric Ma)
  • Fixed chat.sendMessage() to properly call onChunk, onDone, and onError callbacks to unblock callers (05a31e) (Eric Ma)
  • Fixed missing /api/matrix/fill endpoint registration with SSE streaming support and removed duplicate MatrixFillRequest class (c135b0) (Eric Ma)
  • Fixed normalizeText bug in SSE parsing that mishandled spaces after apostrophes (e.g., "don ' t" → "don't") (89fd63) (Eric Ma)
  • Fixed import aliasing and NodeType references, restored missing onLoad method in SimpleTestPlugin, and added JSDoc @returns annotations to improve code quality (1d3ac7) (Eric Ma)
  • Fixed factcheck.js to use chat.sendMessage() instead of non-existent sendMessageNonStreaming (732e8a) (Eric Ma)
  • Fixed committee persona suggestions to add cancel button with AbortController and proper spinner UI (cdea19) (Eric Ma)

Deprecations

  • Removed typed feature getters from App class in favor of accessing features via FeatureRegistry to ensure single-instance usage and eliminate dual-instance bugs (a2111d) (Eric Ma)
  • Removed registerFeatureCanvasHandlers() method and its calls to prevent redundant event handler registrations (b9546d, 8b5708) (Eric Ma)