- Add import_api_key setting with auto-generate endpoint and settings UI
- Import job runner uses import API key when available, falls back to session
- Show ApiKeyGate empty state in both workflow and import pages when key missing
- Replace workflow API key warning popover with full gate overlay
- Redesign person cards: square avatar, hover action toolbar, cleaner layout
- Birthday field now uses popover with calendar + natural language input
- Fix autocomplete dropdown clipping inside overflow-hidden cards via portal
- People grid column slider persisted to localStorage (min 3, max 20)
Add delete with confirm dialog to asset lightbox (always visible, handles
deletion internally with local state update). Force dark theme on asset
info panel and fix text color inheritance. Add edge-to-edge image display
in lightbox by removing slide padding. Show open-in-immich link on hover
only. Add workflow page title breadcrumb. Add one-click workflow API key
generation that creates the key in Immich and saves it automatically.
Add beta badge to Workflows in the sidebar. Include settings page
improvements, workflow detail updates, profile info and sidebar
nav refinements, and validate-api-key endpoint.
Redesign import-shared with sticky import bar, dense gallery grid,
progress bar, and cleaner landing state. Add password-protected
shared link support - detects 401 "Password required" from Immich
and shows a password input. Also reduce asset grid spacing and
replace "Open in Immich" text with a link icon.
Replace raw fetch() in settings, share-key, and import-shared with
centralized API handlers via src/lib/api.ts. Also auto-create the data/
directory on startup so the SQLite db path is always valid.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Removed the additional tags for assets in the MissingLocationAssets component, returning only the sorted assets.
- Updated AssetGrid to include Immich link tags for each asset, utilizing the exImmichUrl from the configuration context.
- Enhanced the dependency array for the asset mapping effect to include exImmichUrl for proper updates.
- Introduced useMemo to separate known and unknown people based on their names.
- Enhanced rendering logic to display known and unknown people distinctly.
- Updated UI elements for better layout and usability, including search input and person rendering.
- Adjusted padding and spacing for a more consistent design across the component.
- Updated FindInput to accept value and onChange props for improved state management.
- Modified AssetGrid to support video assets by integrating Video plugin in Lightbox and adding isVideo property to asset objects.
- Enhanced LazyGridImage to display video duration and a play icon for video assets.
- Introduced humanizeDuration helper function to format video duration for better user experience.
- Updated search API to include download URL for video assets, ensuring consistent asset handling.
- Removed unused imports and components across various files to streamline the codebase.
- Simplified the structure of components such as AlbumImages, AlbumPeople, and others by eliminating unnecessary dependencies.
- Enhanced overall readability and maintainability of the code.
- Introduced search input to filter displayed people based on name in both AlbumPeople and PeopleList components.
- Updated .env.sample to include JWT_SECRET for authentication.
- Added SHARE_LINK_DOWNLOAD_PATH to routes and corresponding handler for downloading share links.