9.5 KiB
Changelog
This changelog is maintained from git history plus the published Gitea release series. Future releases should update this file and publish matching release notes on the release page.
v0.9.4
Doctor release.
- Add
doctorto check Photos access and optional backup health. - Add
doctor --out <dir>to report backup directory, manifest entries, and failure count. - Add
doctor --jsonfor scriptable diagnostics.
v0.9.3
Cleanup release.
- Add
cleanup --out <dir>to remove files not referenced by the manifest. - Add
cleanup --dry-runto preview orphaned files before deletion. - Preserve manifest/log/failure files,
.photoscli, and sidecars for manifest-referenced media.
v0.9.2
Manifest repair release.
- Add
manifest repair --out <dir>to fill missing manifest size metadata from files on disk. - Add
manifest repair --checksum sha256to fill missing manifest checksums. - Add
manifest repair --dry-runto preview repairs without writing manifest updates.
v0.9.1
Deep checksum verification release.
- Add
verify --deepto recompute SHA-256 checksums for manifest entries that have checksum metadata. - Report
checksum-mismatchwhen disk contents differ from the manifest checksum. - Keep normal
verifyunchanged unless--deepis selected.
v0.9.0
Manifest checksum release.
- Add opt-in
--checksum sha256to store SHA-256 file checksums in JSONL and SQLite manifests. - Add SQLite migration support for the manifest
checksumcolumn. - Keep checksum collection disabled by default with
--checksum none.
v0.8.7
JSON sidecar release.
- Add
--sidecar jsonfor structured JSON metadata sidecars. - Add
--sidecar xmp,jsonto write both XMP and JSON sidecars from the same metadata. - Keep
--sidecar noneas the default.
v0.8.6
XMP keyword and rating controls release.
- Add
--xmp-keywords album-path|album|nonefor generated sidecars. - Add
--xmp-rating favorite|nonefor generated sidecars. - Keep existing keyword/rating behavior as defaults with
album-pathandfavorite.
v0.8.5
XMP privacy controls release.
- Add
--xmp-privacy keep|strip-location|strip-addressfor generated sidecars. - Keep existing XMP location/address behavior as the default with
keep. - Allow GPS coordinates to be kept while reverse-geocoded address fields are omitted with
strip-address. - Allow both GPS coordinates and address fields to be omitted with
strip-location.
v0.8.4
Strict XMP sidecar verification release.
- Add
verify --sidecar --strictto require photoscli XMP schema metadata, sidecar generator metadata, and matching exported filename metadata. - Keep existing
verify --sidecarbehavior unchanged for backup-wide existence, readability, and asset-ID checks.
v0.8.3
XMP sidecar inspection release.
- Add
sidecar inspect <file.xmp>to print key photoscli metadata from generated XMP sidecars. - Add
sidecar inspect <file.xmp> --jsonfor scriptable inspection output.
v0.8.2
Metadata-only XMP refresh release.
- Add
--metadata-onlyfor manifest-based XMP sidecar generation without re-exporting media files. - Support metadata-only refresh for both
exportandbackup-allwhen used with--sidecar xmp. - Require a manifest for metadata-only mode so existing media paths are resolved safely.
- Keep media files untouched while overwriting/regenerating generated XMP sidecars.
- Support
--reverse-geocodeduring metadata-only sidecar refresh.
v0.8.1
XMP standards and sidecar verification release.
- Add XMP schema version metadata for generated sidecars.
- Add standard XMP fields for rating, metadata date, creation date, Photoshop date created, and EXIF GPS coordinates.
- Add
dc:subjectkeywords from album/folder context. - Add sidecar generator and generated timestamp metadata.
- Add
verify --sidecarto check missing, zero-byte, unreadable, and asset-ID mismatched XMP sidecars.
v0.8.0
Rich PhotoKit metadata and reverse-geocoded XMP release.
- Expand asset metadata from public PhotoKit fields: modification date, hidden state, media subtypes, source type, playback style, burst data, GPS coordinates, adjustment state, adjustment info, and richer resource metadata.
- Expand XMP sidecars with duration, hidden/adjustment state, modification date, structured media subtype/burst/resource lists, GPS coordinates, and adjustment metadata.
- Add opt-in
--reverse-geocodeusing Apple reverse geocoding APIs to add address metadata for GPS assets. - Cache reverse-geocode results under
.photoscli/geocode-cache.jsonlso repeated exports do not repeatedly query Apple geocoding. - Keep Vision/Core ML people, animal, object, and scene analysis out of this release; that remains future work.
v0.7.0
XMP sidecar metadata release.
- Add
--sidecar none|xmpwith defaultnone. - Add config support for
sidecar = "xmp". - Write XMP sidecars next to exported files using basename
.xmpfilenames. - Include asset ID, filenames, album, manifest path, media type, dimensions, favorite state, cloud state, export mode, photoscli version, exported timestamp, size, and creation date in XMP.
- Write XMP files atomically.
- Treat sidecar write failure as asset failure when XMP sidecars are explicitly requested.
v0.6.0
Backup integrity and recovery release.
- Add manifest-relative paths for exported files so tree backups can be verified accurately.
- Add SQLite manifest migration for the new
pathcolumn. - Upgrade
verifyto report missing files, zero-byte files, and size mismatches by default. - Add atomic staging export writes with per-asset temporary directories before final rename.
- Deduplicate
failures.jsonlentries by asset ID and track attempts plus latest failure time. - Add
failures listandfailures clearcommands. - Add
retry-failed --clear-on-success. - Add
statuscommand with text and JSON output. - Update release workflow to publish release notes from
RELEASE_NOTES.md. - Rename release zip assets to include
macos-arm64and document Apple Silicon-only releases. - Add
AGENT.mdwith the minimal project/release rules for future agents. - Keep
CHANGELOG.mdas the canonical release history.
v0.5.0
Manifest, filtering, logging, and documentation release.
- Add JSONL and SQLite manifests with resumable skip tracking.
- Add automatic conversion between JSONL and SQLite manifests.
- Add structured export logging to
export.logor SQLitelogstable. - Add explicit exit codes: success, error, partial failure, and access denied.
- Add
--qualityfor JPEG preview compression. - Add
--concurrencywith progress slot cap. - Add
--exclude-albumwith exact/glob matching. - Add
--sincedate filtering. - Add
--dry-run. - Add
--retry. - Add
--only-favorites. - Add
--media photos|videos|all. - Add
--jsoncommand summaries. - Add
--verifyintegration. - Add
--format jpeg|heic|pngvalidation/hint. - Add
--min-sizeand--max-sizeestimated pixel-count filters. - Add
--date-templatefolder layout support. - Add
report,diff,verify, andretry-failedcommands. - Add failure tracking in
failures.jsonl. - Add config-file defaults via
~/.photoscli.tomlorPHOTOSCLI_CONFIG. - Add album name collision handling for duplicate sibling album names.
- Expand
README.mdand verbose CLI help. - Add 100% test coverage for the CLI and manifest/photos packages.
v0.4.1
Documentation and release asset follow-up after v0.5.0.
- Add
USERGUIDE.mdas a practical end-user manual. - Link the user guide from
README.md. - Add release zip packaging with binary, README, USERGUIDE, and CHANGELOG.
- Attach
USERGUIDE.mdand the macOS zip package to thev0.5.0release.
v0.4.0
Progress and backup-all usability release.
- Add scroll log for completed exports: copied, downloaded, skipped, and failed.
- Add worker status lines with live download progress bars for cloud files.
- Add color-gradient progress bars from red to yellow to green.
- Add disk skip for files already present during
backup-all. - Add parallel export with multiple workers for
backup-all. - Increase progress slot support in the bridge.
- Improve progress rendering for large export sessions.
v0.3.x
Published on Gitea as v0.3.0 through v0.3.5. These releases are not represented by local git tags in the current clone, so the exact per-release commit mapping is unavailable here.
Known purpose of this series:
- Iterative release packaging and Gitea release workflow improvements.
- Continued progress display and backup/export polish between
v0.2.5andv0.4.0. - Preparation for the larger
v0.4.0progress/backup release.
v0.2.6
Published on Gitea but not represented by a local git tag in the current clone.
- Post-
v0.2.5maintenance release in the progress/export series.
v0.2.5
- Add Unicode progress bar rendering.
- Add cloud download speed display.
v0.2.4
- Stop export loop on Ctrl+C instead of flooding failures.
- Improve graceful cancellation behavior after interrupt.
v0.2.3
- Fix export write failures.
- Fix Ctrl+C cancellation behavior.
v0.2.2
No local tag is present for this version in the current clone.
v0.2.1
- Add status messages during export.
- Fix parallel export progress display.
v0.2.0
- Add semaphore timeouts.
- Add export error logging.
- Remove dead code.
- Add parallel exports.
Pre-release
- Initial
applephotosCLI with progress, cloud status, and per-asset export. - Add
.gitignoreand remove build artifacts from tracking. - Rename
applephotostophotoscli. - Update module path to
gitea.k3s.k0.nu/tools/photocli. - Add version flag.
- Add Gitea release targets and release pipeline.