Commit Graph
16 Commits
Author SHA1 Message Date
MajoorWaldi 2fa41a0e76 feat: add useGridState and useVirtualGrid composables for asset management
- 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.
2026-04-03 11:04:55 +02:00
MajoorWaldi dc72be0139 feat: enhance JS testing and linting setup
- 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
2026-03-28 14:14:28 +01:00
MajoorWaldi 834ef1fef3 feat(docs): comprehensive AI features guide and new documentation
- 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
2026-03-06 12:43:46 +01:00
MajoorWaldi ad7678ccab feat: enhance WebGL video processing and output directory management
- Updated WebGL context creation to preserve the drawing buffer for frame export functionality.
- Added new CSS styles for sampler, scheduler, CFG, step, and genTime fields in the theme-comfy stylesheet.
- Implemented output directory override restoration on startup in the settings service.
- Introduced functions to collect distinct sampler configurations and checkpoints from multiple sinks and chained sampler passes.
- Enhanced prompt tracing and sampler name resolution to handle advanced sampler configurations.
- Added support for filtering by tags in the search functionality, including validation and sanitization of tag inputs.
- Updated search query sanitization to include tag handling and adjusted valid sort keys.
- Improved filesystem listing handlers to accommodate new workflow type filters and ensure proper filtering logic.
- Enhanced health check routes to manage output directory settings and cache invalidation.
- Added tests to verify new filtering capabilities and ensure functionality remains intact.
2026-03-01 20:08:43 +01:00
MajoorWaldi 08e07b5312 fix: replace silent catches with debug logging across multiple files
- 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.
2026-02-27 21:00:17 +01:00
MajoorWaldi e7c2443670 fix(security): improve API token handling and add server-side bootstrapping
- Move token from local to session storage on client side
- Set httpOnly cookie for server-side token on bootstrap/rotate
- Add token validation and auto-sanitization
- Implement retry logic for failed operations
- Add input validation for collection names
- Update toast durations and error handling
2026-02-27 10:09:44 +01:00
Your Name 5e5a50dfeb feat(sidebar): localize placeholder text in sidebar
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
2026-02-18 22:31:31 +01:00
Ewald da847f35f9 Add regression tests for route security guards
- Implement tests to ensure file paths are properly allowlisted in custom view and folder info handlers.
- Verify that collections mutations enforce CSRF protection and write access guards.
- Check that settings mutations require write access for specific routes.
2026-02-18 14:37:13 +01:00
Ewald 00d141ef8c Add tests and enhancements for browser navigation and asset management
- 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.
2026-02-18 08:11:14 +01:00
Your Name 0debbd53a2 feat: Enhance context and custom roots management
- Added resetBrowserHistory functionality to contextController for better state management.
- Improved handling of custom root states in customRootsController, including resetting labels and paths.
- Removed unused refreshCustomRoots from scopeController.
- Updated sidebarController to provide more context in asset status updates.
- Introduced new folder details section in the sidebar to display folder metadata.
- Created pinned folders popover view for better folder management.
- Implemented custom status dot themes for improved visual feedback in asset status.
- Added folder info endpoint in the backend to retrieve folder statistics and metadata.
2026-02-15 23:44:26 +01:00
Ewald b700149b2d feat: Enhance metadata handling and fallback mechanisms
- 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.
2026-02-13 16:37:44 +01:00
Ewald b6931d21a6 feat(grid): enhance keyboard navigation and selection handling
- 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.
2026-02-09 14:49:30 +01:00
Your Name 1646e2171b feat: Implement duplicate detection and similarity analysis features
- Added DuplicatesService for background duplicate analysis and similarity detection.
- Introduced endpoints for analyzing duplicates, checking status, and merging tags.
- Created utility functions for file hashing and perceptual hashing.
- Implemented watcher settings for runtime tuning of debounce and deduplication.
- Added database maintenance tools for resetting and deleting the database.
- Enhanced error handling with sanitization for client responses.
- Added tests for duplicates service and error handling.
- Updated ESLint configuration for better code quality checks.
- Introduced filename validation and logging utilities.
2026-02-08 15:11:17 +01:00
Ewald 640eccf422 chore: save workspace changes 2026-02-06 21:17:46 +01:00
Your Name 39a6d6c2b8 Refactor viewer buttons and update gitignore
- 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
2026-02-01 22:47:59 +01:00
Your Name 492cdb25da added context pills to panel for better asset management and improved UI/UX. 2026-01-15 22:25:49 +01:00