Skip to content

Blog

Version v0.1.86

This release improves URL fetching by sanitizing HTML to markdown and enhancing security with CSS-safe node classes. It also refactors DuckDuckGo (DDG) search and research endpoints into a plugin with better source capping per iteration. Additionally, new end-to-end Cypress tests have been added for DDG search and research functionality.

New Features

  • Refactor DuckDuckGo search and research endpoints into a plugin and add a per-iteration source cap to allow all 4 iterations to run (cdfb19) (Eric Ma)
  • Add Cypress end-to-end tests for DuckDuckGo search and research, including happy and error paths with stubbed API responses and SSE streams (7ff71e) (Eric Ma)

Bug Fixes

  • Sanitize fetched URLs to markdown using html2text, strip unsafe style/script tags, add CSS-safe kebab-case node classes, and add related tests to prevent raw HTML/CSS exposure (741bf5) (Eric Ma)
  • Remove trailing whitespace in v0.1.85 release notes (e1b58c) (Eric Ma)

Deprecations

  • None

Version v0.1.85

This release introduces a comprehensive PowerPoint (PPTX) integration featuring a new node type with slide navigation, captioning, and narrative weaving capabilities powered by AI. The backend now supports robust PPTX upload handling and structured slide text extraction with improved rendering fallbacks. The UI has been enhanced for a smoother user experience with tooltips and action bars. Additionally, the PPTX functionality has been modularized for better maintainability. Several bug fixes and dependency updates are also included.

New Features

  • Added a new PowerPoint node UI with slide drawer, slide navigation, slide extraction to image nodes, and user-triggered captioning and narrative actions (c71c6e) (Eric Ma)
  • Added backend PPTX upload handler that extracts slide text/titles using python-pptx and renders slide images via LibreOffice with robust rendering fallbacks (c33e39) (Eric Ma)
  • Added structured backend endpoints for PPTX caption and title generation, replacing vision-based streaming with structured {title, caption} outputs (32edf7) (Eric Ma)
  • Added a PowerPoint narrative weaving action that combines slide titles and captions into a narrative summary streamed into a new AI node (6bfe5d) (Eric Ma)
  • Added a configurable PPTX narrative weaving modal with AI-suggested style presets, controls, backend endpoint for preset generation, and static fallback; updated Cypress spec to validate modal flow (eca1a5) (Eric Ma)
  • Added backend unit tests, plugin harness tests, and Cypress spec with fixture for PPTX upload and navigation (658405) (Eric Ma)
  • Added python-pptx dependency and installed LibreOffice with baseline fonts in Modal image for server-side PPTX slide rendering (cd86bb) (Eric Ma)
  • Moved PPTX request/response models and /api/pptx endpoints into a dedicated plugin module registered at app startup; added python-slugify for preset ID normalization and documentation (b826b1) (Eric Ma)

Bug Fixes

  • Fixed PowerPoint drawer flashing on interactions by patching node body and output panel DOM in-place to avoid full re-render and focus loss (a66302) (Eric Ma)
  • Fixed Modal image builds on Debian bookworm by switching from libwebp6 to libwebp7 to ensure LibreOffice and Pillow WebP support install cleanly (cf0b2b0) (Eric Ma)

Deprecations

  • None in this release

Version v0.1.84

This version introduces a new feature that improves navigation by allowing users to zoom directly to a node when it is selected from a search, enhancing the user experience.

New Features

  • Added the ability to zoom to a node upon search selection, similar to using the 'z' key (b90da0) (Eric Ma)

Bug Fixes

  • None

Deprecations

  • None

Version v0.1.83

This release improves the tag removal experience by fixing an issue where removing a tag required a double-click. It also enhances the undo/redo functionality related to tags and adds comprehensive end-to-end tests to ensure tag system reliability.

New Features

  • Added comprehensive Cypress end-to-end tests covering tag creation, assignment to single and multiple nodes, tag highlighting, tag removal, and tag deletion (d7eef0) (Eric Ma)

Bug Fixes

  • Fixed tag removal requiring double-click by removing redundant rendering and improving event handling (d7eef0) (Eric Ma)
  • Corrected undo/redo behavior for tag changes by updating how snapshots are read and fixing undoManager API usage (d7eef0) (Eric Ma)

Deprecations

  • None

Version v0.1.82

This release focuses on improving the code feature by migrating it into a dedicated plugin for better modularity and maintainability. It also enhances the testing environment by increasing the Cypress viewport size and cleaning up placeholder tests. Additionally, minor fixes were made to previous release notes formatting.

New Features

  • Migrated all code-related handlers and logic into a dedicated CodeFeature plugin, improving code organization and plugin modularity (ed8cb0) (Eric Ma)
  • Updated Cypress tests to reflect changes in the code feature and improved output panel selectors (ed8cb0) (Eric Ma)

Bug Fixes

  • Fixed PyodideRunner API calls to use the correct instance within the CodeFeature plugin (ed8cb0) (Eric Ma)
  • Corrected output panel display by properly setting outputExpanded and output fields (ed8cb0) (Eric Ma)
  • Fixed code editor modal routing to use direct modal calls instead of nodeEditContent events (ed8cb0) (Eric Ma)
  • Removed trailing whitespace in the v0.1.81 release notes file (18a245) (Eric Ma)

Deprecations

  • Removed placeholder test from code_node.cy.js to clean up test suite (4eb3c2) (Eric Ma)

Version v0.1.81

This release focuses on improving caching and performance in CI workflows, fixing permission and duplication issues with Ollama model caching, enhancing test coverage for the Generate UI workflow, and resolving several bugs related to the CodeFeature plugin and Cypress tests.

New Features

  • Added tests for the interactive Generate UI on code nodes, including showing, canceling via button or Escape key, and generating code with mocked responses (50705f) (Eric Ma)
  • Enabled npm dependency caching in Cypress workflows to speed up CI by avoiding repeated npm installs (404267) (Eric Ma)

Bug Fixes

  • Fixed permission errors by caching only the Ollama models directory instead of the entire .ollama directory, preventing access issues with sensitive files (39837b) (Eric Ma)
  • Prevented duplicate Ollama model pulls in CI by checking if a model already exists before pulling, reducing redundant downloads (2413c3) (Eric Ma)
  • Improved Ollama cache setup with explicit directory creation and enhanced logging for cache hits/misses and directory sizes (161910) (Eric Ma)
  • Updated test_app_init to reflect CodeFeature migration by removing methods moved to the CodeFeature plugin, fixing CI test failures (07f71d) (Eric Ma)
  • Fixed multiple CodeFeature issues including syntax errors, command registration, API usage, null checks, micropip loading, and Cypress test selectors to ensure stability and correctness (32332d) (Eric Ma)

Deprecations

  • Removed duplicated /code command from BUILTIN_SLASH_COMMANDS as it is now managed by the CodeFeature plugin (32332d) (Eric Ma)

Version v0.1.80

This release focuses on improving the matrix plugin by fully encapsulating undo/redo logic within the plugin architecture, enhancing test coverage with new end-to-end tests, and refactoring clipboard copy functionality to be self-contained. Additionally, it introduces better plugin support for custom undo/redo handlers and improves test reliability and documentation.

New Features

  • Added plugin action handler registration to the undo manager, allowing plugins to own their undo/redo logic and handlers, with full integration in the matrix plugin (0be33c) (Eric Ma)
  • Added Cypress end-to-end tests for the matrix copy-to-clipboard keyboard shortcut, verifying copy functionality and guard conditions (2544a6) (Eric Ma)
  • Documented Cypress E2E test files and running patterns for UI and keyboard interaction testing in AGENTS.md (19ced7) (Eric Ma)
  • Refactored matrix undo/redo Cypress tests for improved determinism and reliability by mocking APIs and simplifying test cases (7c16e0) (Eric Ma)

Bug Fixes

  • Added Ollama health check step in the Cypress AI workflow to prevent test timeouts caused by service unavailability (0be33c7) (Eric Ma)

Deprecations

  • Removed matrix undo/redo logic from the core app.js, fully migrating it to the matrix plugin to follow plugin architecture principles (d643a1) (Eric Ma)
  • Removed legacy streamingMatrixCells state and external clipboard formatting utilities, replacing them with self-contained methods in the MatrixNode class (eaf6a8) (Eric Ma)

Version v0.1.79

This release focuses on improving the matrix plugin's undo/redo functionality by fully encapsulating its logic within the plugin architecture. It introduces a new plugin action handler registration mechanism in the UndoManager, refactors matrix undo/redo handling to use this mechanism, and enhances test reliability and determinism. Additionally, a fix was made to the Cypress AI workflow to ensure Ollama service readiness and prevent test timeouts.

New Features

  • Added plugin action handler registration to the UndoManager, allowing plugins to register and manage their own undo/redo handlers, and updated the MatrixFeature to use this mechanism directly for undo actions (760968) (Eric Ma)
  • Refactored matrix undo/redo logic by moving it from app.js into the matrix plugin, including new undo/redo handlers, removal of matrix-specific cases from core app code, added unit and Cypress tests, and updated documentation to reflect the plugin-based undo/redo pattern (73c30e) (Eric Ma)

Bug Fixes

  • Fixed Cypress AI workflow by adding an explicit health check for Ollama before pulling the model, preventing test timeouts due to Ollama service unavailability (eb952c) (Eric Ma)

Deprecations

  • Removed matrix undo/redo handling from app.js, delegating all related logic to the matrix plugin to follow the plugin architecture principle (73c30e) (Eric Ma)

Version v0.1.78

This release introduces comprehensive end-to-end testing for matrix creation and AI chat features using Cypress, along with significant improvements to the Cypress CI workflow and test infrastructure. The matrix functionality code has been refactored for better modularity and maintainability by moving it into a dedicated plugin. Several fixes enhance the reliability of the CI environment, including improved server readiness checks and streamlined dev server management. Additionally, numerous new Cypress test suites have been added to cover UI interactions such as undo/redo, settings modal, help modal, auto-layout, keyboard shortcuts, and canvas clearing, achieving full test coverage for core features.

New Features

  • Added comprehensive Cypress end-to-end tests for matrix creation, including UI interactions and semantic zoom behavior, using Ollama LLM calls tagged with @ai (c8d8ef) (Eric Ma)
  • Added Cypress E2E tests for AI chat interactions with Ollama gemma3n:e4b model, including multi-turn conversations and streaming (d3cb61) (Eric Ma)
  • Added Cypress test suites for undo/redo functionality, settings modal, help modal, auto-layout button, keyboard interactions (Enter and Shift+Enter), and new canvas clearing (f49be1, d81072, ea15bf, a2ced4, a842dc4, 388d18a) (Eric Ma)
  • Established Cypress E2E testing infrastructure with GitHub Actions workflow, localStorage and IndexedDB clearing, and basic canvas interaction tests (cba03a) (Eric Ma)

Bug Fixes

  • Refactored matrix-specific code from app.js into MatrixFeature plugin to eliminate duplication and improve separation of concerns (c14869) (Eric Ma)
  • Fixed Cypress CI failures by replacing fixed sleep with dynamic server health check, ensuring server readiness before tests run (f49be1) (Eric Ma)
  • Fixed Cypress CI by letting Cypress action manage dev server lifecycle, preventing premature server termination (b5e76e) (Eric Ma)
  • Fixed pixi installation in CI by switching to official GitHub Action, improving reliability (2af8344) (Eric Ma)
  • Fixed Cypress test selectors and interaction issues for stable test execution (6294ef2) (Eric Ma)
  • Updated Cypress workflow to specify explicit test spec files instead of config patterns, ensuring correct test execution (e77555) (Eric Ma)
  • Updated Cypress tests to use new Ollama model gemma3n:e4b for CI consistency (0694c6) (Eric Ma)
  • Improved Cypress workflow Docker setup by mounting Ollama volume and switching model pull to HTTP API (244f49) (Eric Ma)

Deprecations

  • Removed duplicate and unnecessary matrix formatting code from app.js and canvas.js in favor of utility imports (c14869) (Eric Ma)

Version v0.1.77

This release introduces support for Ollama image generation with local models, enhanced test coverage, improved documentation and JSDoc usage, and various code style and import fixes. It also refines the pre-commit hooks and clarifies type checking practices in the project.

New Features

  • Add support for generating images using local Ollama models via the /image slash command, including direct API calls, streaming JSON response parsing, and frontend model selector integration (b9ed67) (Eric Ma)
  • Add property-based unit tests and integration tests for Ollama image generation feature, including reusable fixtures and API contract validation (0d999a) (Eric Ma)
  • Add .jsdoc.json configuration file for JSDoc linter to enable new pre-commit hook (09a72b) (Eric Ma)

Bug Fixes

  • Fix incorrect import path for AppContext in image-generation plugin (e2f576) (Eric Ma)
  • Resolve multiple TypeScript errors in image-generation.js by fixing imports, removing incompatible type assertions, and cleaning up JSDoc comments (17e591) (Eric Ma)

Deprecations

  • Remove TypeScript type checking and JSDoc linter from pre-commit hooks and pixi tasks, leaving only JSDoc documentation generation (fc48a9) (Eric Ma)