The backend setters Album.SetTitle and Label.SetName silently truncate
with an ellipsis once the input exceeds 160 chars and still return 2xx,
so the three remaining "create new" surfaces showed a green success
against an entity the user did not intend. Refuse the save client-side
when the typed name exceeds the per-entity MaxLength: the Add-to-Album
combobox in component/photo/album/dialog.vue, the Albums + Labels chip
selectors in component/photo/batch-edit.vue (gated through a new
max-length prop on component/input/chip-selector.vue), and the Labels
tab combobox in component/photo/edit/labels.vue all surface a "Name is
too long" error instead of dispatching the request.
Drops the stray second colon at the end of the "Only starts if … profile
is specified:" comment block in compose.nvidia.yaml and the three
setup/docker compose files. Pure cosmetic cleanup so all gated services
use identical phrasing across the dev and end-user compose variants.
Compose reads COMPOSE_PROFILES from .env automatically (no --profile flag
needed on every invocation), so adding it to .env.example lets developers
opt into the new "postgres" profile (or any other) once and forget about
it. Drive-by trims "Only starts this service if..." to "Only starts if..."
across compose.yaml, compose.nvidia.yaml, and the three setup/docker
compose files so all gated services use the same shorter phrasing.
The default development stack runs on MariaDB (PHOTOPRISM_DATABASE_DRIVER
is "mysql", and the photoprism service depends_on only "mariadb"), so the
postgres container should not start on a plain "docker compose up". Add
profiles: [ "all", "postgres" ] so users opt in via --profile postgres,
align every gated service to the same image / comment / profiles /
stop_grace_period shape, add the missing per-block "docker compose
--profile X up -d" examples, fix pre-existing "::" typos, and correct
"qsql" to "psql" in the photoprism service environment comments across
compose.yaml, compose.intel.yaml, and compose.nvidia.yaml.
libheif 1.21 renamed the CLI binaries: heif-convert is now a symlink to
heif-dec and heif-thumbnailer is no longer shipped at all. Updating the
header and inline comments in install-libheif.sh and build-libheif.sh
to match what the scripts actually produce on current libheif releases.