Skip to content

Manage#1341

Open
theryecatcher wants to merge 3 commits into
simulot:developfrom
theryecatcher:manage
Open

Manage#1341
theryecatcher wants to merge 3 commits into
simulot:developfrom
theryecatcher:manage

Conversation

@theryecatcher

Copy link
Copy Markdown

Summary

  • Adds a new manage CLI command and people-album-sync subcommand that syncs people to albums based on a YAML config
  • Resolves people by name or Immich UUID, creates albums if missing, and adds only photos not already in the album
  • Allows multiple modes of addition
  • All operations are strictly additive — no deletes or removals from albums

Tests

  • Unit tests for YAML config parsing and validation
  • Tests for verifying only missing assets are added
  • Test verifying albums are created when missing
  • Safety test verifying no destructive (DELETE) API calls are made
  • Full project test suite passes with no regressions

PS: Please do let me know if this is unnecessary and unwelcome if the project is just to manage takeouts. I just found the library well structured and had a good foundation for these management CLI commands which I could build on top of.

Adds a new `manage` CLI command as a parent for manage subcommands.

The first subcommand `people-album-sync` reads a YAML config mapping
albums to people and ensures each album contains all photos of its
mapped people. The command is additive only, it never removes or deletes
anything. Config is structured per subcommand for extensibility.
Adds a per-album `mode` field to control whether photos must contain
all listed people together ("all", default) or any one of them ("any").
In "any" mode, each person is searched individually and results are
unioned, so solo shots are included.
@theryecatcher theryecatcher requested a review from simulot as a code owner April 9, 2026 03:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant