Release Notes - v0.29.0
This release brings powerful new filtering capabilities for the from-immich command and configuration file support, making it easier to manage complex migration scenarios.
✨ New Features
-
Advanced asset filtering for
from-immich- Filter your Immich library with precision using:--from-people- Filter by people/faces in photos--from-tag- Filter by tags--from-album,--from-no-album- Filter by albums, including assets not in any album--from-city,--from-country,--from-state- Geographic filtering--from-make,--from-model- Camera make and model filtering with validation--from-archived,--from-trashed,--from-favorite- Filter by asset state--from-minimal-rating- Filter by minimum rating--from-partners- Exclude partner's shared photos--from-date-range- Filter by a date range (dates, date, year)--from-include-extensions,--from-exclude-extensions- Include/exclude file extensions (e.g., include.jpgbut exclude.bmp)--from-include-type- Select only videos or only photos
Example:
immich-go from-immich [server parameters] --from-people="John" --from-date=2024 --from-favorite -
Configuration file support - Create YAML/TOML configuration files to manage settings across projects
Configuration values can come from files, environment variables, or command-line flags, with clear logging of which source is used.
Check the documentation for supported formats and usage at /docs/configuration.md.
🚀 Improvements
-
Renamed
--server-errorsto--on-errors- More consistent flag naming across commands for error handling behavior -
Better upload logging - Upload events now show asset details instead of just filenames, making it easier to track progress during large migrations
-
Enhanced configuration visibility - The application now logs:
- Which configuration file is being used (if any)
- Where each setting comes from (file, environment, or command-line)
- All active flags and parameters at startup for easier debugging
-
Streamlined CLI structure:
- Concurrency settings (e.g.,
--concurrent-upload) now available from the root command - Clearer separation between
upload,archive, andfrom-*commands - Simplified
from-foldercommand usage
- Concurrency settings (e.g.,
-
Date range validation - Automatically prevents invalid date ranges where "before" is after "after"
-
Comprehensive documentation - New guides for installation, usage examples, migration scenarios, and performance tuning
💥 Breaking Changes
-
Asset copy API change - If you use the API directly:
ReplaceAssetmethod is deprecated in favor ofCopyAsset, which uses theassets/copyendpoint -
API key permissions update - API keys must now include
asset.copyandasset.deletepermissions in addition to previously required permissions. Please update your API keys accordingly.
🔧 Internal Changes
-
Complete E2E testing infrastructure - Comprehensive automated testing with Linux and Windows clients, ensuring reliability across platforms
-
Improved CI/CD - Smarter test execution (skips E2E tests for documentation-only changes), updated GitHub Actions, unified workflow
-
Code quality - Updated to Immich API 2.0.0, better code organization, enhanced debugging capabilities
-
Developer tools - VS Code tasks for common operations, automated release workflow, development branch now named
develop
What's Changed
- Update branch naming and validation rules in CONTRIBUTING.md by @simulot in #1075
- Update branch naming and validation rules in CONTRIBUTING.md by @simulot in #1076
- Fix visibility handling for archived Google Photos uploads by @simulot in #1078
- Fixes completion by @simulot in #1080
- Enhance asset filtering and retrieval features by @simulot in #1081
- Implement httptrace package for enhanced request/response logging by @simulot in #1082
- docs: Comprehensive documentation restructuring and improvement by @simulot in #1084
- Add comprehensive documentation for Immich-Go by @simulot in #1085
- refactor: makes the linter happy by @simulot in #1086
- feat: add vstask for runing linter and prepare PR by @simulot in #1087
- Add Immich API Monitor Script to check OpenAPI specifications by @simulot in #1088
- feat: add interactive script for deleting local Git branches by @simulot in #1089
- refactor: improve concurrency handling in dumpReader and update trace logging methods by @simulot in #1090
- Refactor configuration management and enhance documentation by @simulot in #1097
- feat(scripts): remove deprecated pre-release scripts and update publish script for improved versioning by @simulot in #1098
- Feature/from-immich-options by @simulot in #1100
- Feature/global-errors-flag by @simulot in #1103
- reafactoring cobre CLI management by @simulot in #1117
- Feature/e2etests by @simulot in #1127
- Feature/move_test_immich by @simulot in #1154
- Feature/implement api change by @simulot in #1162
- Feature/release-note-generation by @simulot in #1163
Full Changelog: v0.28.0...v0.29.0