github rhoopr/kei v0.13.1

latest release: v0.13.2
7 hours ago

Added

  • --reconcile-every-n-cycles N CLI flag and KEI_RECONCILE_EVERY_N_CYCLES env var. Mirror the existing [watch] reconcile_every_n_cycles TOML key so docker and systemd users can enable the periodic local-vs-state reconciliation walk without editing a config file. Resolution order: CLI > TOML > unset. The walk is read-only and only meaningful in watch mode; single-shot runs ignore it. (#334)
  • kei config setup covers smart folders, bandwidth limit, filename excludes, XMP, and periodic reconcile. The "additional options" branch now prompts for [filters] smart_folders, [download] bandwidth_limit (validated live), [filters] filename_exclude, [download] embed_xmp / xmp_sidecar (under the xmp feature), and [watch] reconcile_every_n_cycles. The Live Photos prompt is a 4-way LivePhotoMode select (both / image-only / video-only / skip) instead of a yes/no toggle. (#334)

Fixed

  • kei config setup no longer generates v0.13-deprecated TOML. The wizard was emitting [filters] library (singular), [filters] skip_live_photos, and [auth] cookie_directory, so every fresh config tripped deprecation warnings on its first sync. It now writes [filters] libraries = [...] (array form), [photos] live_photo_mode = "skip", and top-level data_dir. The "specific albums" branch asks whether to enable the unfiled pass and always emits unfiled explicitly, so the v0.13 implicit-unfiled warning never fires for wizard-generated configs. Album input loops per line instead of comma-splitting (an album literally named "Foo, Inc." was being silently broken into two filters). The deprecated [metrics] section is gone from wizard output and replaced by [server]. Existing configs keep working unchanged. (#334)
  • kei config setup validates user input at the prompt, not on the next sync. Numeric prompts (watch interval, threads, max retries, recent count, reconcile cycles) now reject values outside the runtime's accepted range and re-prompt instead of accepting bad input and silently failing later. Date inputs (skip_created_before / skip_created_after) parse with the same parse_date_or_interval the runtime uses, so a typo like 2024-13-99 is caught immediately. The password prompt asks for a confirmation re-entry to catch typos. (#334)
  • kei config setup rearranges the flow for new users. The data directory prompt moved from the "additional options" branch into Step 2 next to the photos directory, since it's a fundamental filesystem path, not an advanced setting. The TOML preview now ends with a Write / Show again / Cancel select (instead of a single yes/no confirm), so users on small terminals can re-read the generated config before approving. Album and smart-folder selection prompts now spell out case-sensitivity and, for smart folders, list the exact 10 names kei recognises (sourced from icloud::photos::smart_folders so the hint can't drift). The "load credentials" snippet at the end detects $SHELL and prints a fish-compatible bash -c '... exec fish' wrapper for fish users instead of always emitting bash-only set -a; source .... (#334)
  • kei config setup's "also include unfiled photos?" prompt now matches kei's runtime default. The post-album-selection prompt previously preselected "no" while the runtime's [filters].unfiled default is true, so a user who hit Enter at the prompt silently inverted what kei does without a config. The prompt now sources its default from config::unfiled_default() so the wizard stays truthful to the runtime; users picking specific albums who don't want everything else can still pick "no" explicitly. (#334)

Full changelog: CHANGELOG.md

Don't miss a new kei release

NewReleases is sending notifications on new releases.