---
date: 2026-01-10 21:47:57
categories:
  - Releases
---

# 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)
