- Implemented LiveStreamTracker in LiveStreamTracker-DEOsWH5q.js to manage media loading and saving events.
- Introduced functions for handling image and video inputs, including URL parsing and widget integration.
- Added event listeners for new generation outputs to facilitate real-time updates.
- Created entry point in entry-DJOMRGDR.js to support the new tracking functionality.
- Implemented useGridState to manage grid state, including asset selection and loading states.
- Created useVirtualGrid to centralize virtualization helpers for improved performance.
- Added createVueApp for isolated Vue 3 + Pinia application instances.
- Introduced Vite configuration for building the ComfyUI-Majoor-AssetsManager with external dependencies.
- Implemented entry UI registration for the Assets Manager, including sidebar and bottom panel integration.
- Created real-time listeners for execution events, asset updates, and enrichment status.
- Developed execution runtime controller to manage job tracking, asset buffering, and indexing.
- Introduced lazy initialization for vector services to optimize resource usage.
- Added HTTP handlers for plugin management, enabling listing, enabling, and reloading of plugins.
- Added coverage reporting for Vitest with configuration in vitest.config.mjs
- Updated package.json to include new scripts for JS coverage, linting, and formatting
- Modified run_quality_gate.py to allow skipping ESLint and Prettier checks
- Introduced .prettierrc for consistent code formatting
- Created .prettierignore to exclude specific files and directories from formatting
- Improved URL parameter handling in `appendAssetFilterQueryParams` for better readability and maintainability.
- Added error handling for performance marks in `startTimer` to prevent potential issues.
- Enhanced `setRuntimeStatePatch` to avoid modifying blocked keys in the runtime state.
- Introduced hard caps on recent file and execution start tracking to prevent memory growth.
- Reduced workflow cache size to limit memory usage.
- Implemented safe escaping for asset IDs in `findAssetElement` to mitigate XSS risks.
- Ensured proper grid reference invalidation during asset manager panel cleanup.
- Enhanced debounce utility with cancel and flush methods for better control.
- Updated SQLite facade to improve error handling and schema population.
- Simplified custom roots store error messages for clarity.
- Added validation for upload filenames to prevent reserved names and control characters.
- Improved path resolution logic to avoid race conditions with symlinks.
- Enhanced health check routes with raw socket peer IP validation for security.
- Added collision handling in staging file resolution to prevent infinite loops.
- Updated tests to reflect changes in query building and validation logic.
- Implement tag deduplication and improve tag normalization
- Add toggle behavior for agenda calendar day selection
- Display asset count badges on agenda calendar days
- Extend agenda calendar API to support additional filters
- Adjust grid controller to use semantic filter options
- Update backend scanner to notify about asset updates
- Added new AI_FEATURES.md guide covering all AI-powered capabilities
- Updated DOCUMENTATION_INDEX.md to include new AI features guide
- Added AI Features section to README.md with overview and models used
- Improved backfill warning information in README.md
- Updated reset index / delete DB procedures in DB_MAINTENANCE.md
- Added configuration options for AI features in README.md
- Add AI alignment score display to asset metadata
- Implement image description fallback for non-workflow image assets
- Improve AI captioning UI and UX
- Optimize AI tagging suggestions with bootstrap generation
- Refactor collections controller to support AI toggling
- Enhance error handling and retry logic for asset indexing
- Added a new POST route for caption generation at /mjr/am/vector/caption/{asset_id}.
- Enhanced result hydration in search to include AI-related metadata such as has_ai_info, has_ai_vector, has_ai_auto_tags, and has_ai_enhanced_caption.
- Updated deduplication logic in search results to ensure accurate total counts.
- Improved test coverage for database maintenance routes, including force delete and backup functionalities.
- Introduced new tests for hybrid search routes to validate scope filtering and ensure correct behavior with invalid inputs.
- Added functionality to bypass list gate in background scan initiation.
- Enhanced error handling and response validation in various search and scan routes.
- Introduced functions to manage HuggingFace tokens in settings, including retrieval and updates.
- Added asynchronous routes for getting and setting HuggingFace token information.
- Implemented operation gates for delete, rename, and move operations in custom routes.
- Enhanced vector service with quiet encoding to suppress output during model encoding.
- Added retry logic for text embeddings to handle length constraints.
- Implemented vector backfill job management with status tracking and history pruning.
- Improved error handling in vector search routes and added logging for failures.
- Added tests for new HuggingFace settings routes and operation gate enforcement in database maintenance.
- Created tests for vector alignment and search routes, ensuring proper handling of exceptions and invalid inputs.
- Implemented library audit route to surface assets based on completeness and quality scores.
- Created hybrid search route combining FTS and semantic search with inline filter parsing.
- Developed vector search routes for semantic search, find-similar, and alignment score retrieval.
- Added auto-clustering utility for grouping assets by visual similarity using K-Means.
- Enhanced vector search capabilities with support for AI auto-tags and clustering suggestions.
- Updated delete collection button title to use translation.
- Updated agenda calendar cell title for no assets to use translation.
- Updated asset manager panel titles and tooltips for various buttons and actions to use translations.
- Updated sidebar asset refresh tooltip to use translation.
- Updated status dot delete database button title to use translation.
- Updated floating viewer button titles to use translations for close, live stream, and capture view.
- Updated viewer toolbar button titles and tooltips to use translations for various modes and actions.
- Added performance metrics utility for tracking rendering and search query durations.
- Enhanced toast styling to include icons and improved layout.
- Updated error handling in videoProcessor.js, videoProcessorWebGL.js, videoSync.js, viewerInstanceManager.js, and various utility files to log caught exceptions using console.debug.
- Introduced a new script to automate the replacement of silent catch blocks with logging statements.
- Enhanced safety checks in the database schema and transaction manager to prevent SQL injection vulnerabilities.
- Added regex patterns for validating column definitions and executable names in the ExifTool adapter.
- Improved error handling in health and filesystem routes to ensure better feedback on invalid inputs.
- Added tests to cover new error handling and validation logic.
- Make all error toasts persistent and group them for mass dismissal
- Add fallback mechanism for error toast dismissal in case of ComfyUI extension absense
- Remove auto-removal of error toasts, requiring manual dismissal
- Adjust success toasts to remove grouped error toasts (if ComfyUI extension present)
- Added `splitNameExt` function to separate filename and extension.
- Implemented `normalizeRenameFilename` to preserve extensions during renaming.
fix: improve error handling in search queries
- Added checks for malformed match errors in `IndexSearcher`.
- Enhanced FTS query sanitization to remove reserved tokens and normalize case.
feat: implement security token management
- Introduced API token generation, hashing, and rotation in `AppSettings`.
- Added endpoints for rotating and bootstrapping security tokens.
fix: enforce write access across various routes
- Integrated `_require_write_access` checks in multiple route handlers to ensure proper authorization.
test: add unit tests for search query sanitization
- Created tests for sanitizing FTS queries, ensuring reserved tokens are removed and terms are lowercased.
feat(generation): remove unnecessary checks for width and height
feat(grid): add max width and height filters to grid view
feat(panel): integrate resolution comparison in assets manager panel
feat(panel): update context controller to handle max width and height
feat(panel): enhance filters controller with resolution comparison
feat(panel): update grid controller to include max width and height in state
feat(panel): persist max width and height in panel state
feat(panel): update context pills view to reflect resolution filters
feat(panel): enhance filter popover view with resolution comparison options
feat(panel): improve search view with localized placeholder and title
feat(backend): extend filesystem browser to support max width and height filters
feat(backend): update searcher to handle max width and height in filters
feat(backend): normalize visual dimensions in metadata extraction
feat(backend): enhance metadata service to ensure width and height are set
feat(backend): add max width and height handling in search routes
test: add tests for version route aliases registration
- Implemented size filters in the filesystem browser and added tests to ensure correct application of size constraints.
- Updated write access guard tests to reflect changes in handling forwarded remote requests.
- Introduced a new browser navigation controller to manage folder navigation and breadcrumb rendering.
- Added regression tests to ensure proper binding order for asset manager and back navigation functionality.
- Created tests to validate the absence of double reloads on folder context opening and the use of single folder keys in browser state.
- Added various regression tests to ensure database integrity, asset metadata handling, and viewer functionality.
- Enhanced tests for media filters and search scope to ensure correct behavior and data handling.
- Introduced browser mode for file operations, allowing users to interact with arbitrary file paths without prior indexing.
- Added functionality to resolve file paths from request bodies, supporting both asset IDs and direct file paths.
- Implemented new service methods for listing visible subfolders and filesystem entries, enhancing directory navigation.
- Updated asset routes to accommodate new file path handling, improving error responses and validation.
- Created a new FolderCard component for better UI representation of folders in the frontend.
- Added tests for browser service functionalities to ensure robustness and correctness.
- Introduced fallback readers for metadata extraction when ExifTool/ffprobe are unavailable, utilizing Pillow and hachoir for images and media files respectively.
- Added settings for metadata fallback preferences, allowing users to toggle image and media fallback options.
- Implemented route collision logging to prevent overlapping API paths.
- Added middleware for authentication on sensitive routes, ensuring secure access.
- Updated API documentation to reflect new endpoints and settings.
- Enhanced unit tests for metadata handling, case sensitivity in file paths, and fallback mechanisms.
- Removed compatibility shims for shared modules, consolidating imports under mjr_am_shared.
- Implemented functions to retrieve all assets and grid columns dynamically.
- Added keyboard navigation support for arrow keys and Home/End keys with Shift for range selection.
- Improved asset selection logic and scrolling to selected asset.
- Integrated selection state management with grid container.
- Updated rating shortcuts to be conditionally active based on hotkey state.
feat(panel): enhance Assets Manager and sidebar functionality
- Introduced summary bar disposal mechanism for better resource management.
- Added sidebar refresh logic to update active asset details.
- Improved settings change handling to selectively refresh grid and sidebar.
- Enhanced grid reload mechanism to prevent concurrent reloads.
feat(viewer): add FPS detection for video assets
- Implemented functions to parse and emit detected FPS from asset metadata.
- Attached FPS detection to video elements during metadata loading and runtime.
style(theme): update theme variables and styles
- Added new CSS variables for card hover, selection, rating, and tag colors.
- Enhanced asset card styles for selection and hover states.
- Improved badge colors for better visibility and consistency.
fix(status): improve status indicator feedback
- Added status highlight function to provide visual feedback based on status tone.
- Updated status dot and section styles to reflect current status accurately.
refactor(context): streamline context controller actions
- Added badge CSS variable application to keep UI consistent with live settings.
- Introduced a delay in registering major settings to ensure proper asset loading.
- Added `prepareGridForScopeSwitch` function to handle context switching more effectively by aborting in-flight requests and clearing the grid state.
- Updated asset loading functions to utilize the new preparation method during resets.
- Implemented a debounce mechanism for grid refresh events to improve performance.
- Enhanced the `renderAssetsManager` function to support abortable operations and prevent stale data during rapid context switches.
- Modified the `updateStatus` function to accept an abort signal for better control over HTTP requests.
- Improved event listener management in the `AssetsManagerPanel` to ensure cleanup and prevent memory leaks.
- Refactored grid controller and scope controller to support new lifecycle management features.
- Updated audio visualizer functions to improve naming consistency and maintainability.
- Updated Card.js to improve generation time handling and display logic.
- Simplified SidebarView.js by removing unnecessary timeout logic and added event dispatching on close.
- Enhanced collectionsController.js with localized strings for collection management dialogs and messages.
- Removed auto scan trigger from AssetsManagerPanel.js and improved scroll restoration logic.
- Added localization support in customRootsController.js for folder management prompts and messages.
- Updated gridController.js to include localized messages for grid interactions.
- Enhanced sidebarController.js to persist sidebar open/close state.
- Improved sortController.js to use localized sort option labels.
- Added sidebar open state management in panelState.js.
- Enhanced customPopoverView.js and filterPopoverView.js with localized labels and button texts.
- Updated headerView.js to include version information and link to GitHub repository.
- Improved statusDot.js with localized tool capabilities and status messages.
- Create js/components/buttons.js specific for shared UI elements
- Refactor toolbar.js and Viewer.js to use shared buttons
- Fix viewer overlay theme variable inheritance
- specific ignore patterns added to .gitignore