Commit Graph
22 Commits
Author SHA1 Message Date
Ewald 97649c9887 perf/test: audit backlog — lazy viewer imports, structured logging, perf budget + unit tests
- ViewerRuntime.js: convert 6 heavy static imports (abCompare, sideBySide,
  model3d, scopes, genInfo, frameExport) to dynamic lazy imports with
  _prewarmViewerModules(); all 8 call sites updated with optional chaining
- logging.js: add mjrDbg() export (gated by APP_CONFIG.DEBUG_VERBOSE_ERRORS);
  replace labeled console.debug() calls in bootstrap.js, useGridLoader.js,
  entry.js
- ttlCache.vitest.mjs: add 4 LRU edge-case tests (10k flood, re-set order,
  post-expiry pruning)
- grid_perf_budget.vitest.mjs: new CI perf-budget suite — 5 tests at 10k+
  assets (budget 400ms, actual ~40ms)
- backfill_jobs.py: new route module extracted from db_maintenance handler
- test_backfill_jobs.py: 61 direct unit tests covering all public functions
- test_db_corruption_recovery.py: new recovery scenario tests
- auth/fetch test suites: auth_refresh_race, client_auth_token, fetch_utils
- js_dist rebuilt

Tests: 393 JS passed, 1428 Python passed, 2 skipped
2026-04-11 11:56:01 +02:00
Ewald 39b55380db feat(output): support path strings in extractOutputFiles
- Add support for string paths in addition to object arrays
- Implement new buildKey function for generating unique keys
- Introduce SUPPORTED_PATH_EXT_RE regex for valid file extensions
- Update pushItem and addItems functions to handle string inputs
- Add new pushPathString function for processing string paths
2026-04-08 09:45:50 +02:00
Ewald 082a6db57b feat: add LiveStreamTracker module for enhanced live streaming capabilities
- Implemented LiveStreamTracker with functionalities for tracking and managing live stream events.
- Introduced event listeners for new generation outputs and preview blobs.
- Added utility functions for handling image and video inputs and outputs.
- Established hooks for canvas node selection and changes.
- Created entry point for the LiveStreamTracker in entry-DSb73AW-.js.
2026-04-07 12:16:38 +02:00
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 0124a8f6d5 feat: enhance asset management with job finalization logic, improve coverage thresholds, and update documentation for AI/vector features 2026-03-28 15:35:28 +01: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 e198c46e0d feat: Implement asset stacks service and API endpoints
- Added StacksService to manage asset stacks, including CRUD operations and automatic stacking based on job_id and workflow_hash.
- Created API routes for stacks, including listing, retrieving by job_id, managing stack members, setting cover assets, dissolving stacks, merging stacks, and triggering automatic stacking.
- Introduced new ColorSpaces and Volume classes in the three.js addon for enhanced color management and volume rendering capabilities.
2026-03-27 15:06:41 +01:00
MajoorWaldi cb171e826d feat: Add runtime bootstrap helpers and search request normalization
- Introduced runtime bootstrap helpers in `mjr_am_backend.features.runtime` for dependency initialization.
- Implemented `apply_startup_settings` to handle various startup configurations.
- Added search request normalization helpers in `mjr_am_backend.features.search` including `SearchRequestContext` and `parse_search_request` for better query handling.
- Created audit logging helpers in `mjr_am_backend.routes.core.audit_log` for state-changing route handlers.
- Developed a quality gate script in `scripts/run_quality_gate.py` to enforce code quality checks.
- Added comprehensive tests for audit routes, scan consistency, vendor routes, and code quality metrics.
2026-03-26 20:42:51 +01:00
MajoorWaldi c7f93f0eab Refactor and optimize various components
- 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.
2026-03-21 16:20:26 +01:00
MajoorWaldi 459b12ac39 feat(viewer): add 3D model viewing support
- Implement basic 3D model thumbnail rendering with fallback icon
- Update viewer mode selection logic to handle 3D models
- Add checks for 3D model interactions in the viewer
- Extend drag & drop support to include 3D model assets
2026-03-16 23:47:08 +01:00
MajoorWaldi fecfa0eb56 feat(panel): add shortcut guide tab to message popover
- Implement new tabbed interface in message popover
- Add shortcut guide tab alongside messages tab
- Update MFV toggle button to use new tooltip format
- Enhance scroll handling for open popovers
- Adjust search input to display keyboard shortcuts
- Update Floating Viewer buttons with new tooltip format
- Add keyboard shortcut for toggling MFV (Ctrl/Cmd+V)
2026-03-06 19:21:51 +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 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 75261d636c Add comprehensive tests for SQLite facade, metadata extractors, and security helpers
- Introduced unit tests for SQLite facade helpers, including schema validation, query building, and async operations.
- Added integration tests for basic SQLite queries and transaction handling.
- Implemented additional tests for metadata extraction functions, focusing on dimension handling, EXIF data, and video metadata.
- Created tests for security core helpers, covering environment variable checks, IP validation, and CSRF protection.
- Included compatibility tests for route exports to ensure proper functionality.
2026-02-26 07:01:43 +01:00
Your Name 966cf86f28 chore: commit current AssetsManager fixes 2026-02-19 16:36:55 +01:00
Your Name 657ddc4c8e feat: enhance filename handling and sanitization
- 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.
2026-02-19 11:19:13 +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 f8898e964c Release 2.2.2: i18n support + viewer/minimap improvements 2026-01-30 03:37:28 +01:00
Your Name 8ed51fbf39 make assets manager docs, license, and code improvements 2026-01-24 19:28:33 +01:00
Your Name 338c37bdfe v2.0 Architecture Refactor 2026-01-08 02:21:14 +01:00