- v3.2.0 renamed asset_face.personId to personGroupId and dropped person.id
in favour of a (ownerId, personGroupId) key, breaking every face/person
query.
- Updated albumColumns and AlbumThumbnail components to display placeholder when no thumbnail is available.
- added album_user table (album ownership moved here, role='owner')
- drop asset.deviceId/deviceAssetId and albums.ownerId
- asset.duration varchar -> integer (milliseconds)
- removed isArchived instead use visibility
- Updated importJobs schema to include 'ente' as a valid platform.
- Enhanced import-shared API to handle Ente shared links, including detection and fetching of albums.
- Introduced new ente.ts module for Ente-specific decryption and API interactions.
- Implemented thumbnail and video handling for Ente assets in import-shared API.
- Created EnteSharedLinkProcessor for processing Ente shared links during import jobs.
- Updated asset interfaces to accommodate Ente-specific encryption artifacts.
- Registered EnteSharedLinkProcessor in the import processors registry.
- Added necessary dependencies (bs58, libsodium-wrappers-sumo) to package.json and bun.lock.
- Updated FindInput component to use rc-mentions for better performance and flexibility.
- Removed unused styles related to react-mentions and added new styles for rc-mentions in globals.scss.
- Enhanced search functionality to handle mentions and clear input more effectively.
- Updated FindPage to manage searched queries and loading state.
- Implemented Nextcloud shared link detection and processing in the import workflow.
- Created a new processor for handling Nextcloud shared links, including asset downloading and uploading to Immich.
- Enhanced existing import functionality to support platform differentiation between Immich and Nextcloud.
- Added utility functions for parsing file names and guessing content types.
- Updated thumbnail and video endpoints to accommodate Nextcloud's API structure.
- Modified the import shared page to handle Nextcloud URLs and passwords.
- Refactored asset upload logic to streamline the process for both platforms.
- Added ESLint configuration file with Next.js and Remotion settings.
- Removed experimental instrumentationHook from next.config.mjs.
- Updated package.json scripts to use ESLint directly and enabled turbopack for development.
- Bumped various dependencies including Next.js, React, and Radix UI components.
- Changed searchTimer initialization to use undefined for better clarity in multiple components.
- Implemented `upload.ts` for handling the upload of shared assets, including validation and error handling.
- Created `video.ts` for proxying video playback requests from shared assets.
- Developed `import-shared.tsx` page for importing shared albums, including UI for asset selection and album creation options.
- Updated album asset schema to use more descriptive field names (`albumId` and `assetId`).