# Changelog

All notable changes to this project are documented in this file.

## [Unreleased]

### New Features
- **Collect Files**: New right-click action and details-sidebar button that bundles an asset, its workflow JSON, the traced prompt text (positive/negative), and every media input referenced by the workflow into a `{asset}_collected.zip` created next to the file, with a manifest listing each input and model path. Falls back to `output/_mjr_collected/` when the asset folder is not writable. See `docs/COLLECT_FILES.md`.

### Fixed
- **Full-text search on prompts restored** (#175): since the v18/v19 tag-normalization migrations, the search index column `metadata_text` was never populated, so prompts, negative prompts, model/LoRA names, and Majoor GenInfo overrides (including custom info blocks) were not searchable. The indexer now persists this text on every metadata write, and migration v21 automatically backfills already-indexed assets on startup — no index reset required.
- **"Allow Remote Full Access" now effective with a configured token** (#167): an auto-generated API token always exists after first startup, which silently disabled the `Allow Remote Full Access` toggle — remote LAN clients without a token were blocked with "Write access is blocked" spam and no working opt-out. The toggle (and `MAJOOR_ALLOW_REMOTE_WRITE=1`) now permits tokenless remote writes even when a token is configured, unless `Require Token For All Writes` is enabled.
- **False-positive route collision warning** (#167): the startup warning `Potential route path collisions detected before registration: /embeddings` was caused by comparing ComfyUI's own core routes against themselves via the shared route table. Collision detection now only considers Majoor-owned route paths.

## [2.5.0] - 2026-07-09

### New Features
- **LTX Director and Ideogram 4 workflow metadata**: Added generation info support for LTX Director and Ideogram 4 workflows, including dedicated prompt extraction and sidebar display.
- **Viewer playback speeds**: Added 3x, 5x, and 10x playback speeds.
- **Generation source file actions**: Added a context menu for source files in the generation sidebar, with viewer, floating viewer, folder, and asset-loading actions.
- **Find Similar action menu**: Replaced the direct Find Similar button with a popover menu for Find Similar, Find Duplicate, Generated with same save node, and Generated from same workflow.
- **Experimental JPEG XL support**: Added optional `.jxl` indexing, previews, drag-and-drop, viewer support, MIME handling, and a persistent setting. JPEG XL support remains disabled by default.
- **Native subgraph support in Graph Map**: Added recursive expansion of nested ComfyUI subgraphs, including subgraphs that reference root-level definitions.
- **Extended file technical metadata**: Added bit depth, pixel format, encoder, and color-space information to the asset sidebar.

### Improved
- **Asset sidebar UI**: Polished the asset sidebar generation info layout and workflow metadata presentation.
- **Video viewer rendering**: Improved video viewer rendering behavior.
- **Toolbar active states**: Popover and settings buttons now highlight consistently while their menu/dialog is open, including Messages and updates, Find Similar, Filter, Sort, Collections, Pinned folders, and Settings.
- **Message history UX**: Automatically closes the Messages and updates history panel after an auto-opened tracked process completes, while preserving manually opened history panels.
- **Majoor Save metadata persistence**: Persisted Asset ID, Job ID, Source Node, Node Type, and Workflow ID in saved asset metadata alongside generation time.
- **Runtime metadata ingestion**: Outputs now receive prompt, workflow, GenInfo, job, and source-node metadata directly from ComfyUI history after execution.
- **Rodin 3D output grouping**: Rodin GLB packages and previews now inherit execution context and can be stacked by job.
- **Output color management**: Majoor Save images now include an sRGB ICC profile, while MP4 output is explicitly tagged as BT.709.
- **Generation prompt selection**: GenInfo prompts now take precedence over stale paths or denormalized prompt values.
- **LTX Director prompt extraction**: Global prompts are now extracted from timeline metadata.
- **Workflow thumbnail matching**: Matching now relies on workflow hashes instead of potentially ambiguous workflow IDs.
- **Top-bar Viewer integration**: Improved MFV button placement and compatibility checks for supported ComfyUI top-bar structures.
- **Graph Map navigation**: Added deeper zoom support for inspecting dense nested subgraphs.

### Fixed
- **Tags shortcuts**: Fixed tags shortcut behavior.
- **Viewer playback state**: Fixed playback speed persistence and arrow-key navigation.
- **Floating Viewer controls**: Fixed Floating Viewer mute/speed persistence and rating hotkeys. Thanks @Aivanis.
- **Generation prompt tracing**: Fixed a generation prompt tracing bug.
- **Generation source file viewer loading**: Fixed source file preview/viewer loading paths that could show "Failed to load image".
- **Filter popover dismissal**: Fixed the Filter popover not closing when clicking outside.
- **Viewer generation info stability**: Fixed intermittent Generation Info rendering in the viewer.
- **Open in folder action**: Fixed requests so they work with either a filepath or an asset ID.
- **Floating Viewer loading**: Fixed loader initialization and retry behavior covered by new regression tests.
- **Subgraph workflow parsing**: Prevented prompt nodes from being mixed with serialized subgraph UI nodes.
- **Generation information display**: Requested metadata rows now remain visible when their value is unavailable.

---

## [2.4.9] - 2026-06-25

### ✨ Improved
- **Graph Map UI and Parsing**: Improved Graph Map node UI and widget parsing for clearer node inspection and more reliable node details. See [docs/GRAPH_MAP.md](docs/GRAPH_MAP.md).
- **GenInfo Metadata Parsing**: Improved metadata parsing for GenInfo display accuracy and consistency. See [docs/VIEWER_FEATURE_TUTORIAL.md](docs/VIEWER_FEATURE_TUTORIAL.md) and [docs/MFV_GUIDE.md](docs/MFV_GUIDE.md).
- **Quick Media Filters**: Added direct filter shortcut buttons to quickly display Images, Videos, Audio, or 3D assets. See [docs/SEARCH_FILTERING.md](docs/SEARCH_FILTERING.md).
- **Drag and Drop Features**: Improved drag-and-drop behavior, node compatibility handling, and clean export workflow. See [docs/DRAG_DROP.md](docs/DRAG_DROP.md).

### 🎉 New Features
- **Configurable Workflow Roots**: Added a Settings option for Workflow tab roots and a Workflow-tab toolbar button to pick the saved workflow root directly beside the save/import actions. See [docs/WORKFLOWS.md](docs/WORKFLOWS.md) and [docs/SETTINGS_CONFIGURATION.md](docs/SETTINGS_CONFIGURATION.md).
- **Workflow Tab Library**: Added a dedicated Workflow tab guide and documented the full workflow library behavior: save/import current workflows, load them back into ComfyUI, inspect them in Graph Map, organize categories, set thumbnails, and edit workflow metadata. See [docs/WORKFLOWS.md](docs/WORKFLOWS.md).
- **Majoor GenInfo Override Node**: Added a new `Majoor GenInfo Override` node to inject custom/manual GenInfo data through Majoor Save nodes. See [docs/CUSTOM_NODES.md](docs/CUSTOM_NODES.md).

### Message Center
- **Workflow Tab Guide Announcement**: Added a built-in Message Center entry linking directly to the Workflow tab guide.

### 🔧 Refactoring, Code Quality & Fixes
- **Frontend TypeScript Refactor**: Continued major UI code refactoring to TypeScript to align with ComfyUI frontend evolution. See [docs/MIGRATION_TS_TRACKER.md](docs/MIGRATION_TS_TRACKER.md).
- **Easier AI Settings Access**: Improved access to AI settings via a dedicated button in the Assets Manager panel and in the Floating Viewer. See [docs/SETTINGS_CONFIGURATION.md](docs/SETTINGS_CONFIGURATION.md).
- **ComfyUI Frontend Integration**: Improved Majoor Assets Manager integration with the ComfyUI frontend for smoother interoperability and UI consistency. See [docs/FRONTEND_LIFECYCLE_CONVENTIONS.md](docs/FRONTEND_LIFECYCLE_CONVENTIONS.md).
- **Code Improvements and Bug Fixes**: General code improvements and multiple bug fixes across UI and integration layers.

---

## [2.4.8] - 2026-05-18

### Improvements & Code Quality
- **Code Corrections and Improvements**: Applied frontend code corrections, interaction cleanup, and targeted maintainability improvements across the Assets Manager UI.
- **Settings Access and Clarification**: Clarified settings behavior and improved access to settings from the panel gear icon and the Floating Viewer.

### Drag and Drop
- **Drag and Drop Bug Fixes and Clarifications**: Fixed regressions in drag-and-drop handling, clarified canvas/node drop behavior, staging behavior, visual feedback, and interaction with ComfyUI's native workflow drop handling.

### Graph Map & Floating Viewer
- **Workflow Inspection in Floating Viewer**: The Floating Viewer can now inspect embedded workflows without opening them on the canvas.
- **Graph Map Node Actions**: Added workflow graph inspection tools for copying nodes, copying node attributes, and transferring node attributes to a similar selected node on the ComfyUI graph canvas.

### 📚 Documentation
- **Graph Map Guide**: Added a dedicated Graph Map documentation page with screenshots, workflow map usage notes, and a focused explanation of node detail actions.
- **README Presentation**: Added Graph Map presentation content and screenshot references to the main README.

### 💬 Message Center
- **Graph Map Announcement**: Added a built-in Message Center entry linking directly to the Graph Map guide.

---

## [2.4.7] - 2026-05-01

### 🚀 Performance
- **Grid Performance Improvements**: Improved grid responsiveness, scrolling stability, and asset loading behavior for large libraries.

### 🎉 Major Features — Majoor Floating Viewer
- **MFV is now an advanced viewer**: The Floating Viewer is no longer a light viewer only; it now provides a richer workflow surface for inspecting, comparing, and controlling generation assets.
- **Node Stream**: Follow selected node previews directly inside the Floating Viewer, including supported live preview sources.
- **Node Parameters**: Open the workflow node sidebar from the viewer and inspect node parameters without leaving the MFV.
- **Edit Nodes from the Viewer**: Edit node widgets directly inside the Floating Viewer, including prompts and common workflow parameters.

### 🧰 Toolbox
- **New Toolbox Tools**: Added new tools to the toolbox for faster access to common asset and workflow operations.

### 🔧 Code Quality & Fixes
- **Code Corrections**: Applied code corrections and cleanup across the frontend/backend integration surface for better maintainability.

---

## [2.4.6] - 2026-04-20

### 🐛 Bug Fixes & Performance
- **Bug Fixes**: Various bug fixes
- **Performance and Fluidity**: Performance and fluidity improvements

### ✨ Improved
- **Concatenate Support**: Improved concatenate support for default and custom nodes — by Forsion07

### 🔌 API & Integrations
- **Api Node Helpers**: Add support helpers for Api Node
- **Ernie Image Helper**: Add support helper for Ernie Image

### ⚙️ Settings & Defaults
- **Live Stream disabled by default**: MFV Live Stream (green button) is now OFF by default; can be re-enabled permanently via Settings → Majoor Assets Manager › Viewer
- **Live Stream & KSampler Preview configurable by default**: Both toggles can be set as the default state via Settings → Viewer; when Live Stream is active, clicking a Load Image node or a generation end automatically opens the Floating Viewer

---

## [2.4.5] - 2026-04-10

### 🎉 New Features — Floating Viewer
- **Multi-Pin References (A/B/C/D)**: Pin up to 4 images simultaneously with toggle buttons; pinned slots hold their content while unpinned slots follow Live Stream
- **Node Parameters Sidebar**: View and edit workflow node widgets (prompts, seeds, samplers) directly inside the Floating Viewer
- **Run Button in Viewer**: Queue prompt from the viewer toolbar without switching back to the canvas
- **Expandable Text Areas**: Collapse/expand long text inputs with a toggle button
- **Sidebar Position Setting**: Choose right, left, or bottom placement for the Node Parameters sidebar via Settings; applies immediately without reload
- **Toolbar Layout**: Run and Node Parameters buttons placed at far right for ergonomic access
- **Topbar MFV Button**: New Viewer toggle button in the ComfyUI top action bar — open or close the Floating Viewer without opening the sidebar; highlights when the viewer is active

### 🎉 New Features — Custom Nodes
- **Majoor Save Image 💾**: Drop-in replacement for the built-in SaveImage node that persists `generation_time_ms` in PNG text chunks alongside prompt and workflow metadata; supports auto-detection of generation time from the prompt lifecycle
- **Majoor Save Video 🎬**: Save IMAGE batches or VIDEO inputs as MP4 (h264 via PyAV), GIF, or WebP; embeds `generation_time_ms`, prompt, and workflow directly in the MP4 container metadata; optional PNG sidecar for first frame; supports audio muxing and configurable CRF quality
- **Generation Time Extraction**: The metadata extraction pipeline now reads `generation_time_ms` from PNG text chunks and MP4 container format tags, so the value survives index resets and re-indexing

### ✨ Improved
- **MFV Gen Info Overlay Placement**: Keep Gen Info as the original overlay and automatically place it above the inline player controls when the player is visible
- **MFV Simple Player Keyboard Controls**: Support focused playback shortcuts with Space for play/pause and Left/Right for frame-by-frame stepping

### 🐛 Bug Fixes & Issue Resolutions
- **Realtime Vector Indexing**: Fixed newly generated assets not always entering automatic vector indexing after save/index events
- **Grid Reload Stability**: Fixed unnecessary full refreshes and parasitic reloads triggered by ambiguous settings sync and window events
- **Pagination Freeze at Bottom**: Fixed cases where scrolling could stall when a page returned results that were fully deduplicated or hidden
- **MFV Video Overlay Overlap**: Fixed Gen Info overlapping inline video player controls in simple player mode
- **GenInfo Pipeline Accuracy**: Fixed sampler pass deduping and rgthree Any Switch tracing so multi-pass workflow metadata stays in the correct order

---

## [2.4.4] - 2026-04-05

### ✨ Improved
- Refactor frontend in Vue to match ComfyUI frontend evolution

### 📚 Documentation
- Sync documentation with the current repository layout and commands
- Update published documentation and user guide to version 2.4.4
- Refresh plugin compatibility examples and reference material

---

## [2.4.3] - 2026-03-29

### ✨ Improved
- Improve assets metadata parsing
- Add Grid Compare capability in floating viewer up to 4 Assets
- Add ping pong loop in main Viewer player
- Add job id and stack id in DB for better assets management
- Stack assets generated from same workflow job with same job ID
- Code refactor for maintainability
- Various bug fixes
- Add generated feed feature
- Add lite version of grid in bottom tab

---

## [2.4.2] - 2026-03-17

### 🎉 Major Features

#### 3D Model Viewing Support
- **Basic 3D Model Thumbnail Rendering** — Implemented 3D model thumbnail rendering with fallback icon support
- **Viewer Mode Selection** — Updated viewer logic to handle 3D model assets
- **3D Model Interactions** — Added checks for 3D model interactions in the viewer
- **Drag & Drop Extension** — Extended drag & drop support to include 3D model assets

#### Toast History Tab
- **History Tab Implementation** — Added new history tab to message popover alongside messages and shortcuts
- **Recent Toast Notifications** — Display recent toast notifications in the history panel
- **Clear History** — Included clear button to remove toast history
- **Unread Indicator** — Added unread indicator to history tab when there are new entries
- **Layout Updates** — Updated message popover layout and styling to accommodate new tab

#### Enhanced Floating Viewer
- **Document Picture-in-Picture** — Implemented PiP for always-on-top secondary monitor support
- **Pop-out Functionality** — Enhanced with fallback to `window.open()` for compatibility
- **Transitions & Interactions** — Refined pop-in/out transitions and user interface interactions
- **Media Loading** — Optimized media loading and error handling for various scenarios
- **Keyboard Shortcuts** — Improved keyboard shortcut integration and behavior
- **CSS Animations** — Updated animations and z-index hierarchy for better visual presentation
- **Backend Logging** — Enhanced logging for request handling

### 🐛 Bug Fixes & Resilience

#### Stability Improvements
- **Card.js Timeout Leak** — Fixed potential timeout leak in Card.js
- **AssetsManagerPanel Reload** — Enhanced reload logic for better stability
- **FloatingViewer Drag** — Optimized drag interactions
- **Plugin Loader** — Refined plugin loader and manager for hot-reload safety
- **Registry Configuration** — Improved configuration handling
- **File Existence Checks** — Removed redundant file existence checks in assets_impl
- **Asset Renaming** — Implemented rate limiting for asset renaming

---

## [2.4.1] - 2026-03-09

### ✨ Added
- Added CLIP-based semantic search engine with AI toggle, prompt alignment scoring in GenInfo panel, smart collection suggestions, and auto-tagging pipeline
- Added support for rgthree and easy use custom node parsing
- Added shortcut guide tab to message popover in panel
- Added linked model entry function for upscaler model extraction

### 🐛 Fixed
- Fixed download form viewers issues
- Fixed workflow filter bugs
- Fixed MFV memory leaks and hot-reload listener accumulation
- Fixed SQL placeholder count unbounded in generation-time batch query (capped at 500)
- Fixed numpy array dtype consistency (float32) in vector operations

### 🚀 Improved
- Enhanced compare overlay functionality
- Improved text search performance and accuracy
- Enhanced geninfo extraction for upscalers and samplers
- Enhanced tag handling and agenda calendar functionality
- Refactored upscaler model extraction logic

### 📚 Documentation
- Added comprehensive AI features guide and new documentation

## [2.4.0] - 2026-02-28

### 🎉 Major Features

#### Majoor Floating Viewer (MFV) — NEW! 🎯
A lightweight floating viewer panel for real-time generation comparison:
- **Live Stream Mode** — Automatically follows new generations from Save/Load nodes
- **Compare Modes** — Simple, A/B Compare, and Side-by-Side views
- **Real-time Preview** — Watch generations as they complete
- **Node Tracking** — Click on LoadImage/SaveImage nodes to preview their content
- **Pan & Zoom** — Mouse wheel zoom and click-drag pan for detailed inspection
- **Gen Info Overlay** — Display prompt, seed, model, and LoRA for each generation
- **Draggable Panel** — Position anywhere on screen, resizable
- **Keyboard Shortcuts** — Quick mode switching and controls

### 🔧 Refactoring & Code Quality

#### Major Code Refactoring
- **Inline Styles → CSS Classes** — Moved all static inline styles to theme-comfy.css
- **Component Separation** — Better modularization of viewer components
- **Improved Error Handling** — Added proper error logging and user feedback
- **Code Cleanup** — Removed dead code, improved naming, added documentation
- **Performance Optimization** — Reduced redundant parsing, improved caching

### 🐛 Bug Fixes

#### Critical Fixes
- **CSS File Corruption** — Fixed null character corruption in theme-comfy.css
- **Gen Info Display** — Fixed field extraction and HTML escaping
- **Memory Leaks** — Fixed event listener cleanup in viewer components
- **Race Conditions** — Fixed async hydration in Floating Viewer
- **Duplicate CSS Rules** — Removed duplicate fullscreen rules

#### General Stability
- Multiple bug fixes across indexing and metadata parsing
- Fixed viewer overlay lifecycle management
- Fixed dropdown positioning and event handling
- Fixed cache invalidation issues

### 🐧 Linux Support

#### Cross-Platform Compatibility
- **Full Linux Support** — Tested on Ubuntu 22.04+, Fedora, Debian
- **Path Handling** — Fixed Windows-style path separators for Linux
- **File Permissions** — Proper handling of Linux file permissions
- **Case Sensitivity** — Fixed case-sensitive file system issues
- **Dependencies** — Updated requirements.txt for Linux compatibility

### 🧪 Test Coverage

#### New Test Suites
- **Unit Tests** — Added tests for geninfo parser, metadata extraction
- **Integration Tests** — Viewer component testing
- **Frontend Tests** — Vitest configuration for JavaScript testing
- **Backend Tests** — pytest for Python backend services
- **CI/CD** — GitHub Actions workflows for automated testing

#### Test Files Added
- `tests/parser/test_geninfo_flux.py` — GenInfo parser tests
- `tests/features/test_sampler_tracer_extra.py` — Sampler tracer tests
- `tests/features/test_role_classifier.py` — Role classifier tests
- `tests/metadata/test_extractors_helpers.py` — Metadata extractor tests
- `tests/database/test_schema_heal.py` — Database schema tests
- `vitest.config.mjs` — Frontend test configuration

### ⚙️ Technical Changes

#### Dependencies
- Added Vitest for frontend testing
- Updated mypy configuration for better type checking
- Added pre-commit hooks for code quality

#### Architecture
- Separated viewer concerns (FloatingViewer, floatingViewerManager, LiveStreamTracker)
- Improved metadata pipeline (genInfo.js hydration)
- Better event-driven architecture for viewer lifecycle

---

## [2.3.3] - 2026-02-13
### Added / Improved
- Enhanced metadata extraction for the AC-Step (Ace Step) custom node.
- Drag & Drop: stage dropped audio files to the node input (audio file staging).
- Added new filtering/sorting capabilities:
  - Filter by workflow type (I2I, I2V, T2I, T2V, V2V, FLF, UPSCL, INPT, TTS, A2A).
  - Filter by file size (weight).
  - Filter by image resolution/size.
- Added a settings option to configure the output path directly from the UI.
- Added grid settings to configure video preview behavior.
- Refactored frontend/backend integration paths for better ComfyUI compatibility.
### Fixed
- Fixed drag & drop issues for images and videos.
- Enhanced index status functionality and various bug fixes.
- Fixed multiple UI/filtering issues and improved overall stability.

---

## [2.3.2] - 2026-02-09
### Added / Improved
- Added language support for Chinese, Korean, Russian, Hindi, Spanish, French, and English. 🌍
- Added audio support for workflows such as AC-STEP, Stable Audio, and TTS. 🎵
- Improved metadata extraction. 🧠
- Improved UI design. 🎨
- Added database management. 🗄️

### Fixed
- Fixed multiple bugs across the extension. 🐛

---

## [2.3.1] - 2026-02-07
### Added / Improved
- UI parameters for **API token** and remote access: added settings in the UI to configure an API token and enable remote access to the Assets Manager (secure-by-default). 🔐

### Notes
- This is a non-breaking, minor patch focused on remote access configuration and UI exposure of token settings.

---

## [2.3.0] - 2026-02-07
### Added / Improved
- Improved GenInfo display in the Viewer: side-by-side generation info panel and clearer parameter presentation. 🔧
- Improved metadata parsing for complex workflows (better handling for nested/custom node graphs). 🧩
- Viewer enhancements: side-by-side generation info and better workflow minimap rendering. 👀
- Added "Reset Index" action to re-scan and rebuild the index. ✅
- Configurable settings for card display and grid layout (card size, density, details). ⚙️

### Fixed
- Multiple bug fixes across indexing, metadata parsing, and viewer interactions. 🐛

---

For previous history, see earlier tags/releases on GitHub.
