Skip to content

feat(client-workflow): watch-upload/watch-download, check-remote-exists, per-file progress (closes #39) - #42

Merged
dhcgn merged 5 commits into
mainfrom
feature/39-watch-upload-download
Sep 19, 2026
Merged

dhcgn merged 5 commits into
mainfrom
feature/39-watch-upload-download

Conversation

@dhcgn

@dhcgn dhcgn commented Sep 19, 2026 •

Copy link
Copy Markdown
Owner

Implements #39: polling folder watch in both directions, per-file byte progress on stderr, and the native bulk-upload-check command.

New commands

  • assets check-remote-exists (alias check-bulk-upload): POST /assets/bulk-upload-check as [FILE|DIR ...] with --json/--ids-only/--duplicates-only/--missing-only; strict accept→missing / reject+duplicate+assetId→uploaded / else unsupported. Read-only.
  • client-workflow watch-upload --watch-dir --mode flat|by-subfolder --tag-pattern "{yyyy-MM-dd}" --album-id|--album-name(opt-in) --interval 60s --stable-for 10s --once --dry-run --yes: stability gate (size+mtime, sidecar .immich-watch-upload.json), bulk-check-first, duplicates only linked. --once forces --stable-for 0s (uploads immediately); re-runs report already-done=N.
  • client-workflow watch-download (--album-id|--album-name|--tag-id|--tag-value) --target-dir --size --interval 300s --once --dry-run: loop around the sync manifest (now .immich-sync.json, migrates legacy .immich-album-sync.json), album or tag source.

Also

  • Streaming multipart upload (io.Pipe, no RAM buffering) + typed DuplicateUploadError.
  • Stdlib-only ByteProgress (TTY in-place bar, plain lines when piped/--json/--quiet) wired into upload, download-original/thumbnail, download-album/--sync, repair, both watches.
  • --interval <=0 means run once; per-interval one-line summaries; readable album-add errors (duplicate already-in-album is benign, same buckets as albums add-assets); README table 28/250 + SKILL.md regenerated.

Verify

  • go generate ./... && go build ./... && go test ./... && go vet ./... green (243 passed).
  • Preview binaries for testing are attached to the PR checks run as artifacts (see the preview-binaries comment / Actions → Artifacts), or gh run download.

@github-actions

github-actions Bot commented Sep 19, 2026 •

Copy link
Copy Markdown

Preview binaries (commit 09cf26b)

Download test executables for this PR (linux/darwin/windows + checksums.txt) from the run's Artifacts section (GitHub login required):
https://github.com/dhcgn/immich-admin-cli/actions/runs/35437687042#artifacts

Or with the CLI: gh run download 35437687042 -n immich-admin-pr-42 -R dhcgn/immich-admin-cli

@dhcgn
dhcgn merged commit 21da4da into main Sep 19, 2026
2 checks passed
@dhcgn
dhcgn deleted the feature/39-watch-upload-download branch September 19, 2026 10:42
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