Commit Graph
32 Commits
Author SHA1 Message Date
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
Your Name 7d306e201d Enhance ExifTool and Custom Roots Functionality
- Added asynchronous wrappers for ExifTool read and write operations to improve performance.
- Implemented trusted directory validation for ExifTool binary resolution to enhance security.
- Improved error handling in ExifTool commands, including detailed return codes for better debugging.
- Introduced a canonical path key function in custom roots to handle duplicate detection across case/format variants.
- Enhanced the list_custom_roots function to include offline and invalid states for better user feedback.
- Updated the IndexScanner to handle batch processing more robustly, including fallback mechanisms for individual processing.
- Refactored filesystem browsing and asset listing to support new sorting options and improve performance.
- Added a new test for recursive file iteration to ensure symlinked files are included correctly.
2026-02-14 19:53:46 +01:00
Ewald 42bc855749 feat: Enhance asset management with browser mode and custom root support
- 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.
2026-02-14 02:03:59 +01:00
Ewald 77fc6ffdcf feat: Enhance asset management with improved rename handling and foreign key updates 2026-02-13 17:39:42 +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 00ee7806f7 feat: Add tool detection helpers for ExifTool and FFprobe
- Implemented caching for tool availability and versions.
- Added functions to check for ExifTool and FFprobe availability.
- Included version satisfaction checks against minimum required versions.
- Created utility functions for parsing boolean and float values from environment variables.
- Introduced shared utilities for error message sanitization and logging with emoji indicators.
- Established a Result pattern for error handling without exceptions.
- Added scan throttling helpers to manage background scans efficiently.
- Implemented time utilities for timestamps and performance measurement.
- Defined shared types, enums, and constants for consistent error handling and file classification.
- Created version management utilities to retrieve version information from pyproject.toml.
- Developed installation script for runtime dependencies.
- Added tests for ExifTool batch processing and various configuration scenarios.
- Implemented tests for version route aliases and runtime output root configuration.
2026-02-12 17:55:28 +01:00
Your Name 5747000562 feat(config): increase DB query timeout to 60 seconds
feat(config): extend watcher debounce time to 3000 ms and add backward-compatible aliases for file size settings

feat(enricher): modify enrichment queue to support priority and add method to get queue length

feat(scanner): adjust batch size logic to incorporate initial and minimum batch sizes

feat(service): add runtime status method to expose enrichment queue length

feat(watcher): implement methods to flush pending files and get pending count

feat(watcher_scope): restrict watcher scope to output only for safety

feat(health): add runtime status endpoint for diagnostics including DB connections and watcher status

feat(scan): create endpoint to flush watcher pending queue and ensure scope is output only

docs: update DB query timeout documentation to reflect new default of 60 seconds

docs: revise security and settings documentation for updated DB query timeout

feat(api): add runtime status API client method and endpoint

feat(settings): introduce runtime status dashboard in the UI for monitoring DB and watcher metrics

fix(grid): enhance error messaging for asset loading failures and attach grid metrics display

test: add tests for watcher scope enforcement and flush functionality
2026-02-12 07:29:24 +01:00
Ewald c1b1c92576 Untrack restored files and ignore them (AGENTS, ROADMAP, VERSION, eslint.config.js) 2026-02-10 11:11:53 +01:00
Ewald 86578cd53a feat: Implement database backup and restore functionality with UI integration 2026-02-09 17:44:25 +01:00
Ewald 7d53165a5b feat: Enhance audio metadata extraction and TTS integration
- Added ExifTool and FFmpeg installation in CI workflow for audio processing.
- Implemented robust JSON parsing for workflow and prompt extraction in audio metadata.
- Introduced TTS-specific metadata extraction and fallback handling in geninfo parser.
- Updated sidebar components to display TTS-related metadata including voice, language, and parameters.
- Enhanced status dot feature to include database health checks and indexing status.
- Improved unit tests for ExifTool and FFProbe with mock responses.
- Added integration tests for TTS audio workflows to validate metadata extraction.
2026-02-09 16:17:38 +01:00
Your Name 285e07518b feat: Enhance menu management and improve file path normalization 2026-02-08 23:53:17 +01:00
Your Name 825e93695a feat: Enhance grid management and asset loading
- 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.
2026-02-08 22:10:29 +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
Your Name 4c38513a1e feat: add API token setup and storage for write authorization; enhance settings and localization 2026-02-07 11:20:58 +01:00
Your Name ebd633bc87 commit nightly 2026-02-06 23:54:28 +01:00
Ewald 640eccf422 chore: save workspace changes 2026-02-06 21:17:46 +01:00
Your Name cf56e1d70f feat: implement hard reset functionality for database with enhanced safety checks and user options 2026-02-04 00:58:02 +01:00
Your Name 19d0c605e2 feat: Enhance media handling and improve sidebar functionality
- Added cleanupCardMediaHandlers to reset media event handlers for images and videos in Card.js.
- Refactored showAssetInSidebar in SidebarView.js to improve asset loading and metadata fetching with better abort handling.
- Introduced cleanupMinimapSections to clean up sidebar sections when assets are shown.
- Improved grid message handling in GridView.js to provide clearer user feedback for asset loading states.
- Optimized VirtualGrid.js for better resize handling and rendering performance.
- Implemented debounced state saving in panelState.js to reduce unnecessary storage writes.
- Enhanced popover management in popoverManager.js with improved event handling and cleanup.
- Fixed WebGL context management in videoProcessorWebGL.js to handle context loss and restoration more gracefully.
- Adjusted image processing chunk size in imageProcessor.js for better performance.
- Updated lifecycle.js to observe the correct target node for DOM changes.
2026-02-03 22:46:50 +01:00
Your Name 16e9eaad37 Refactor: Enhance native metadata extraction strategy and add settings toggle 2026-02-03 20:34:23 +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 9f90e1de7c patch update for custom root features 2026-01-29 11:27:07 +01:00
Your Name 892781074a Add utility functions for backend operations and improve error handling in core routes 2026-01-28 15:05:20 +01:00
Your Name 8ed51fbf39 make assets manager docs, license, and code improvements 2026-01-24 19:28:33 +01:00
Your Name 2e4c1d2457 Added viewer feature and database maintenance handler 2026-01-22 02:12:22 +01:00
Your Name d96ee2f96d Add aiosqlite as a dependency and implement async DB operations 2026-01-16 11:13:31 +01:00
Your Name 6204492c2f Add agenda filtering and assets count badge 2026-01-15 16:52:25 +01:00
Your Name 1f67ea7104 Add batch zip download feature and collection service tests and more 2026-01-15 14:33:04 +01:00
Ewald 8cbacc3270 add collections modules and context menu improvements 2026-01-13 11:54:31 +01:00
Your Name dc7e8f0ab4 Update security headers and improve search functionality 2026-01-11 19:11:03 +01:00
Your Name 49f493f559 bugfix: Resolve metadata extraction and graph traversal issues 2026-01-09 16:55:46 +01:00
Your Name 16f68348c7 Improvements to .gitignore and various backend and frontend files 2026-01-08 03:28:50 +01:00
Your Name 338c37bdfe v2.0 Architecture Refactor 2026-01-08 02:21:14 +01:00