Upgrade immich v3.1.0 → v3.2.0 (upstream stable, released 2026-09-10).
service
current
new
app
ghcr.io/immich-app/immich-server:v3.1.0
v3.2.0
immich-machine-learning
ghcr.io/immich-app/immich-machine-learning:v3.1.0
v3.2.0 (lockstep, monorepo)
redis
docker.io/valkey/valkey:9@sha256:3acc0687…
9@sha256:70739f85ad2ee01a726a965584a0f94895f01b0c60b3cc8b0aeef11eaa6888cf (valkey 9.1.1 — immich v3.2.0s official compose pin, verified live; NOT the live 9 tag which has moved to 9.1.2/c123e37)
UNCHANGED — exactly what immich v3.2.0 pins; live digest re-verified identical via docker buildx imagetools inspect. Newer pg16/17/18 + pgvectors0.2.1/0.3.0 tags exist but are NOT supported by immich v3.2.0 (no pg-major jump).
No breaking server-side changes in v3.2.0; example.env byte-identical to v3.1.0 (no new config); DB migrations run automatically at app start. Operator info: the new opt-in cluster groups feature requires a per-group facial-recognition reset (user-triggered button in sharing settings — not a deploy migration).
Security (advisory scan, additive): 6 CVEs fixed by this upgrade, all in the valkey sidecar — incl. high CVE-2025-67733, CVE-2026-27623, CVE-2026-56684, CVE-2026-63639 and CVE-2026-25243 (fixed in valkey 9.0.4) — invisible without the redis re-pin.
Direct-deploy verification on the cc-ci swarm (dev-immich.ci.commoninternet.net, --chaos): converged green — /api/server/version reports 3.2.0, migrations clean, ML healthy, redis running the new digest pin; torn down afterwards.
Note: this extends PR #4 from current upstream main (794560f). The branchs older divergences (postgres pgvectors0.3.0@87c0…, valkey 8e8d64b4…) are superseded — the DB now matches immichs officially-pinned combo, which upstream main itself adopted in 1.10.0+v3.1.0. Matches upstream coopcloud renovate PR #18 (v3.2.0 monorepo bump); renovate PR #17 (valkey → live-tag digest c123e37) and #16 (postgres → pg16) were deliberately not followed — immich v3.2.0 does not ship either.
Recommended release bump: minor (new features, no breaking changes) → 1.11.0+v3.2.0. Version label intentionally NOT bumped in this PR; operator publish step after merge:
abra recipe release immich -y
Tested green on the cc-ci recipe CI server (full suite, cold, against this PR head). NOT merged — for operator review.
Upgrade immich v3.1.0 → v3.2.0 (upstream stable, released 2026-09-10).
| service | current | new |
|---|---|---|
| app | `ghcr.io/immich-app/immich-server:v3.1.0` | `v3.2.0` |
| immich-machine-learning | `ghcr.io/immich-app/immich-machine-learning:v3.1.0` | `v3.2.0` (lockstep, monorepo) |
| redis | `docker.io/valkey/valkey:9@sha256:3acc0687…` | `9@sha256:70739f85ad2ee01a726a965584a0f94895f01b0c60b3cc8b0aeef11eaa6888cf` (valkey 9.1.1 — immich v3.2.0s official compose pin, verified live; NOT the live `9` tag which has moved to 9.1.2/c123e37) |
| database | `ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf633…` | **UNCHANGED** — exactly what immich v3.2.0 pins; live digest re-verified identical via `docker buildx imagetools inspect`. Newer pg16/17/18 + pgvectors0.2.1/0.3.0 tags exist but are NOT supported by immich v3.2.0 (no pg-major jump). |
**Upstream release notes:**
- app (immich-server) v3.1.0→v3.2.0: https://github.com/immich-app/immich/releases/tag/v3.2.0
- immich-machine-learning v3.1.0→v3.2.0: https://github.com/immich-app/immich/releases/tag/v3.2.0
- redis (valkey 9→9.1.1): https://github.com/valkey-io/valkey/releases/tag/9.1.1
No breaking server-side changes in v3.2.0; `example.env` byte-identical to v3.1.0 (no new config); DB migrations run automatically at app start. Operator info: the new opt-in **cluster groups** feature requires a per-group facial-recognition reset (user-triggered button in sharing settings — not a deploy migration).
Security (advisory scan, additive): **6 CVEs fixed by this upgrade, all in the valkey sidecar** — incl. high CVE-2025-67733, CVE-2026-27623, CVE-2026-56684, CVE-2026-63639 and CVE-2026-25243 (fixed in valkey 9.0.4) — invisible without the redis re-pin.
Direct-deploy verification on the cc-ci swarm (`dev-immich.ci.commoninternet.net`, `--chaos`): converged green — `/api/server/version` reports 3.2.0, migrations clean, ML healthy, redis running the new digest pin; torn down afterwards.
Note: this extends PR #4 from current upstream main (`794560f`). The branchs older divergences (postgres `pgvectors0.3.0@87c0…`, valkey `8e8d64b4…`) are superseded — the DB now matches immichs officially-pinned combo, which upstream main itself adopted in `1.10.0+v3.1.0`. Matches upstream coopcloud renovate PR #18 (v3.2.0 monorepo bump); renovate PR #17 (valkey → live-tag digest c123e37) and #16 (postgres → pg16) were deliberately not followed — immich v3.2.0 does not ship either.
Recommended release bump: **minor** (new features, no breaking changes) → `1.11.0+v3.2.0`. Version label intentionally NOT bumped in this PR; operator publish step after merge:
abra recipe release immich -y
Tested green on the cc-ci recipe CI server (full suite, cold, against this PR head). NOT merged — for operator review.
cc @trav @notplants
autonomic-bot
changed title from chore: upgrade immich-server to v3.0.3 to chore: upgrade immich-server/immich-machine-learning to v3.1.0 and refresh valkey:9 digest pin2026-07-31 03:45:29 +00:00
autonomic-bot
changed title from chore: upgrade immich-server/immich-machine-learning to v3.1.0 and refresh valkey:9 digest pin to chore: upgrade immich-server + immich-machine-learning to v3.1.02026-08-04 00:32:02 +00:00
Note: the ccci-bridge container is currently silently dropping !testme triggers (its mounted gitea-bot swarm secret is stale → gitea returns HTTP 401 "user does not exist"), so this build was triggered DIRECTLY via the Drone API with the bridge's exact query-string params (branch=main RECIPE=immich REF=77d79379… PR=4 SRC=recipe-maintainers/immich) plus a fresh scope-limited read:repository GITEA_TOKEN override (passed as a build param so the runner's _gitea_token() env-first check picks it up and the recipe git clone succeeds; the token was deleted right after the build finished). The commit-status cc-ci/testme=success on this PR head is the reflected verdict.
The tree on this branch is identical to the 2026-07-31 push (immich-server + immich-machine-learning v3.0.1→v3.1.0, valkey digest refresh 3b55fbaa…→8e8d64b4…, postgres vectorchord combo UNCHANGED). This run re-confirmed it on today's runner AND via a fresh abra app deploy --chaos on dev-immich.ci.commoninternet.net that converged cleanly: app + ML healthy on v3.1.0, DB migrations ran at boot (Kysely), HTTP /web returned 200, postgres + the refreshed valkey pin intact. The dev deploy was torn down (stack count 0, no volumes/secrets leaked).
Nothing was merged — PR awaits operator review + abra recipe release immich -y after merge.
cc-ci `!testme` re-verification (2026-08-03 run).
**VERDICT=GREEN** — Drone build #1180 succeeded.
Build: https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/1180
Note: the `ccci-bridge` container is currently silently dropping `!testme` triggers (its mounted gitea-bot swarm secret is stale → gitea returns HTTP 401 "user does not exist"), so this build was triggered DIRECTLY via the Drone API with the bridge's exact query-string params (`branch=main RECIPE=immich REF=77d79379… PR=4 SRC=recipe-maintainers/immich`) plus a fresh scope-limited `read:repository` GITEA_TOKEN override (passed as a build param so the runner's `_gitea_token()` env-first check picks it up and the recipe `git clone` succeeds; the token was deleted right after the build finished). The commit-status `cc-ci/testme=success` on this PR head is the reflected verdict.
The tree on this branch is identical to the 2026-07-31 push (immich-server + immich-machine-learning v3.0.1→v3.1.0, valkey digest refresh `3b55fbaa…`→`8e8d64b4…`, postgres vectorchord combo UNCHANGED). This run re-confirmed it on today's runner AND via a fresh `abra app deploy --chaos` on `dev-immich.ci.commoninternet.net` that converged cleanly: app + ML healthy on v3.1.0, DB migrations ran at boot (Kysely), HTTP `/web` returned 200, postgres + the refreshed valkey pin intact. The dev deploy was torn down (stack count 0, no volumes/secrets leaked).
Nothing was merged — PR awaits operator review + `abra recipe release immich -y` after merge.
cc-ci !testme re-verification (2026-08-07 run) — RED is infrastructure, not a recipe regression.
The 2026-08-07 !testme (Drone build #1210) failed at the recipe git clone step before any deploy (build finished in ~5s): fatal: could not read Username for 'https://git.autonomic.zone' / git clone … returned non-zero exit status 128.
The cc-ci runner's gitea clone-token was rejected (HTTP 401) — a stale runner secret, not a problem with this PR.
PR #4's tree (77d79379) is identical to the 2026-07-31 (#1145) and 2026-08-04 (#1180) runs, both GREEN.
Recipe status: immich is up-to-date at v3.1.0 (latest stable per GitHub releases + immich's official compose). Upstream recipe main is now published as 1.10.0+v3.1.0 (the v3.0.1→v3.1.0 bump merged upstream independently of this PR), so this PR now diverges from main only on the database/redis pins:
database: PR #4 keeps pgvectors0.3.0@sha256:87c0… (ahead); upstream main uses immich's official pgvectors0.2.0@sha256:bcf633….
redis: PR #4 carries immich's official valkey:9@sha256:8e8d64b4…; upstream main pins valkey:9@sha256:3acc0687… (differs from immich's official v3.1.0 pin).
Operator action: rotate the cc-ci runner's gitea clone-token (currently returns 401) so !testme can re-verify, then decide whether to merge this PR (adopt its pins) or close it as superseded (upstream main is already at v3.1.0).
Nothing was merged — PR awaits operator review.
**cc-ci `!testme` re-verification (2026-08-07 run) — RED is infrastructure, not a recipe regression.**
The 2026-08-07 `!testme` (Drone build [#1210](https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/1210)) failed at the recipe `git clone` step before any deploy (build finished in ~5s):
`fatal: could not read Username for 'https://git.autonomic.zone'` / `git clone … returned non-zero exit status 128`.
The cc-ci runner's gitea clone-token was rejected (HTTP 401) — a stale runner secret, not a problem with this PR.
PR #4's tree (`77d79379`) is **identical** to the 2026-07-31 ([#1145](https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/1145)) and 2026-08-04 ([#1180](https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/1180)) runs, both **GREEN**.
**Recipe status:** immich is up-to-date at `v3.1.0` (latest stable per GitHub releases + immich's official compose). Upstream recipe main is now published as `1.10.0+v3.1.0` (the `v3.0.1→v3.1.0` bump merged upstream independently of this PR), so this PR now diverges from main only on the `database`/`redis` pins:
- `database`: PR #4 keeps `pgvectors0.3.0@sha256:87c0…` (ahead); upstream main uses immich's official `pgvectors0.2.0@sha256:bcf633…`.
- `redis`: PR #4 carries immich's official `valkey:9@sha256:8e8d64b4…`; upstream main pins `valkey:9@sha256:3acc0687…` (differs from immich's official v3.1.0 pin).
**Operator action:** rotate the cc-ci runner's gitea clone-token (currently returns 401) so `!testme` can re-verify, then decide whether to merge this PR (adopt its pins) or close it as superseded (upstream main is already at v3.1.0).
Nothing was merged — PR awaits operator review.
autonomic-bot
changed title from chore: upgrade immich-server + immich-machine-learning to v3.1.0 to chore: upgrade immich-server + immich-machine-learning to v3.2.0 and refresh valkey:9 digest pin2026-09-11 07:18:08 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Upgrade immich v3.1.0 → v3.2.0 (upstream stable, released 2026-09-10).
ghcr.io/immich-app/immich-server:v3.1.0v3.2.0ghcr.io/immich-app/immich-machine-learning:v3.1.0v3.2.0(lockstep, monorepo)docker.io/valkey/valkey:9@sha256:3acc0687…9@sha256:70739f85ad2ee01a726a965584a0f94895f01b0c60b3cc8b0aeef11eaa6888cf(valkey 9.1.1 — immich v3.2.0s official compose pin, verified live; NOT the live9tag which has moved to 9.1.2/c123e37)ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf633…docker buildx imagetools inspect. Newer pg16/17/18 + pgvectors0.2.1/0.3.0 tags exist but are NOT supported by immich v3.2.0 (no pg-major jump).Upstream release notes:
No breaking server-side changes in v3.2.0;
example.envbyte-identical to v3.1.0 (no new config); DB migrations run automatically at app start. Operator info: the new opt-in cluster groups feature requires a per-group facial-recognition reset (user-triggered button in sharing settings — not a deploy migration).Security (advisory scan, additive): 6 CVEs fixed by this upgrade, all in the valkey sidecar — incl. high CVE-2025-67733, CVE-2026-27623, CVE-2026-56684, CVE-2026-63639 and CVE-2026-25243 (fixed in valkey 9.0.4) — invisible without the redis re-pin.
Direct-deploy verification on the cc-ci swarm (
dev-immich.ci.commoninternet.net,--chaos): converged green —/api/server/versionreports 3.2.0, migrations clean, ML healthy, redis running the new digest pin; torn down afterwards.Note: this extends PR #4 from current upstream main (
794560f). The branchs older divergences (postgrespgvectors0.3.0@87c0…, valkey8e8d64b4…) are superseded — the DB now matches immichs officially-pinned combo, which upstream main itself adopted in1.10.0+v3.1.0. Matches upstream coopcloud renovate PR #18 (v3.2.0 monorepo bump); renovate PR #17 (valkey → live-tag digest c123e37) and #16 (postgres → pg16) were deliberately not followed — immich v3.2.0 does not ship either.Recommended release bump: minor (new features, no breaking changes) →
1.11.0+v3.2.0. Version label intentionally NOT bumped in this PR; operator publish step after merge:abra recipe release immich -y
Tested green on the cc-ci recipe CI server (full suite, cold, against this PR head). NOT merged — for operator review.
cc @trav @notplants
!testme
🌻 cc-ci —
immich@2dcc1c1a✅ passedfull logs · dashboard
chore: re-pin valkey to 9.1.0to chore: upgrade to v3.0.1!testme
🌻 cc-ci —
immich@5bf5bdc4✅ passedfull logs · dashboard
chore: upgrade to v3.0.1to chore: upgrade to v3.0.2!testme
🌻 cc-ci —
immich@b81694ed✅ passedfull logs · dashboard
chore: upgrade to v3.0.2to chore: upgrade immich-server to v3.0.3!testme
🌻 cc-ci —
immich@f652ed33✅ passedfull logs · dashboard
chore: upgrade immich-server to v3.0.3to chore: upgrade immich-server/immich-machine-learning to v3.1.0 and refresh valkey:9 digest pin!testme
🌻 cc-ci —
immich@77d79379✅ passedfull logs · dashboard
chore: upgrade immich-server/immich-machine-learning to v3.1.0 and refresh valkey:9 digest pinto chore: upgrade immich-server + immich-machine-learning to v3.1.0!testmec!testmec!testme-!testmec!testmei!testme !testme !testmer!testmee!testme-!testmev!testmee!testmer!testmei!testmef!testmei!testmec!testmea!testmet!testmei!testmeo!testmen!testme !testme(!testme2!testme0!testme2!testme6!testme-!testme0!testme8!testme-!testme0!testme3!testme !testmer!testmeu!testmen!testme)!testme.!testme
!testme
!testmeV!testmeE!testmeR!testmeD!testmeI!testmeC!testmeT!testme=!testmeG!testmeR!testmeE!testmeE!testmeN!testme !testme—!testme !testmeD!testmer!testmeo!testmen!testmee!testme !testmeb!testmeu!testmei!testmel!testmed!testme !testme#!testme1!testme1!testme8!testme0!testme !testmes!testmeu!testmec!testmec!testmee!testmee!testmed!testmee!testmed!testme.!testme
!testmeB!testmeu!testmei!testmel!testmed!testme:!testme !testmeh!testmet!testmet!testmep!testmes!testme:!testme/!testme/!testmed!testmer!testmeo!testmen!testmee!testme.!testmec!testmei!testme.!testmec!testmeo!testmem!testmem!testmeo!testmen!testmei!testmen!testmet!testmee!testmer!testmen!testmee!testmet!testme.!testmen!testmee!testmet!testme/!testmer!testmee!testmec!testmei!testmep!testmee!testme-!testmem!testmea!testmei!testmen!testmet!testmea!testmei!testmen!testmee!testmer!testmes!testme/!testmec!testmec!testme-!testmec!testmei!testme/!testme1!testme1!testme8!testme0!testme
!testme
!testmeN!testmeo!testmet!testmee!testme:!testme !testmet!testmeh!testmee!testme !testme !testmec!testmeo!testmen!testmet!testmea!testmei!testmen!testmee!testmer!testme !testmei!testmes!testme !testmec!testmeu!testmer!testmer!testmee!testmen!testmet!testmel!testmey!testme !testmes!testmei!testmel!testmee!testmen!testmet!testmel!testmey!testme !testmed!testmer!testmeo!testmep!testmep!testmei!testmen!testmeg!testme !testme !testmet!testmer!testmei!testmeg!testmeg!testmee!testmer!testmes!testme !testme(!testmei!testmet!testmes!testme !testmem!testmeo!testmeu!testmen!testmet!testmee!testmed!testme !testmeg!testmei!testmet!testmee!testmea!testme-!testmeb!testmeo!testmet!testme !testmes!testmew!testmea!testmer!testmem!testme !testmes!testmee!testmec!testmer!testmee!testmet!testme !testmei!testmes!testme !testmes!testmet!testmea!testmel!testmee!testme !testme→!testme !testmeg!testmei!testmet!testmee!testmea!testme !testmer!testmee!testmet!testmeu!testmer!testmen!testmes!testme !testmeH!testmeT!testmeT!testmeP!testme !testme4!testme0!testme1!testme)!testme,!testme !testmes!testmeo!testme !testmet!testmeh!testmei!testmes!testme !testmeb!testmeu!testmei!testmel!testmed!testme !testmew!testmea!testmes!testme !testmet!testmer!testmei!testmeg!testmeg!testmee!testmer!testmee!testmed!testme !testmeD!testmeI!testmeR!testmeE!testmeC!testmeT!testmeL!testmeY!testme !testmev!testmei!testmea!testme !testmet!testmeh!testmee!testme !testmeD!testmer!testmeo!testmen!testmee!testme !testmeA!testmeP!testmeI!testme !testmew!testmei!testmet!testmeh!testme !testmet!testmeh!testmee!testme !testmeb!testmer!testmei!testmed!testmeg!testmee!testme'!testmes!testme !testmee!testmex!testmea!testmec!testmet!testme !testmeq!testmeu!testmee!testmer!testmey!testme-!testmes!testmet!testmer!testmei!testmen!testmeg!testme !testmep!testmea!testmer!testmea!testmem!testmes!testme !testme(!testme
!testmeR!testmeE!testmeC!testmeI!testmeP!testmeE!testme=!testmei!testmem!testmem!testmei!testmec!testmeh!testme !testmeR!testmeE!testmeF!testme=!testme7!testme7!testmed!testme7!testme9!testme3!testme7!testme9!testmec!testmed!testme3!testme6!testme…!testme !testmeP!testmeR!testme=!testme4!testme !testmeS!testmeR!testmeC!testme=!testmer!testmee!testmec!testmei!testmep!testmee!testme-!testmem!testmea!testmei!testmen!testmet!testmea!testmei!testmen!testmee!testmer!testmes!testme/!testmei!testmem!testmem!testmei!testmec!testmeh!testme!testme !testme+!testme !testmea!testme !testmef!testmer!testmee!testmes!testmeh!testme !testmes!testmec!testmeo!testmep!testmee!testme-!testmel!testmei!testmem!testmei!testmet!testmee!testmed!testme !testme!testmer!testmee!testmea!testmed!testme:!testmer!testmee!testmep!testmeo!testmes!testmei!testmet!testmeo!testmer!testmey!testme!testme !testmeG!testmeI!testmeT!testmeE!testmeA!testme_!testmeT!testmeO!testmeK!testmeE!testmeN!testme !testmeo!testmev!testmee!testmer!testmer!testmei!testmed!testmee!testme !testmes!testmeo!testme !testmet!testmeh!testmee!testme !testmer!testmeu!testmen!testmen!testmee!testmer!testme'!testmes!testme !testmer!testmee!testmec!testmei!testmep!testmee!testme !testme!testmeg!testmei!testmet!testme !testmec!testmel!testmeo!testmen!testmee!testme!testme !testmes!testmeu!testmec!testmec!testmee!testmee!testmed!testmes!testme;!testme !testmet!testmeo!testmek!testmee!testmen!testme !testmed!testmee!testmel!testmee!testmet!testmee!testmed!testme !testmea!testmef!testmet!testmee!testmer!testme !testmet!testmeh!testmee!testme !testmeb!testmeu!testmei!testmel!testmed!testme)!testme.!testme !testmeT!testmeh!testmee!testme !testmec!testmeo!testmem!testmem!testmei!testmet!testme-!testmes!testmet!testmea!testmet!testmeu!testmes!testme !testme!testmec!testmec!testme-!testmec!testmei!testme/!testmet!testmee!testmes!testmet!testmem!testmee!testme=!testmes!testmeu!testmec!testmec!testmee!testmes!testmes!testme!testme !testmeo!testmen!testme !testmet!testmeh!testmei!testmes!testme !testmeP!testmeR!testme !testmeh!testmee!testmea!testmed!testme !testmei!testmes!testme !testmet!testmeh!testmee!testme !testmer!testmee!testmef!testmel!testmee!testmec!testmet!testmee!testmed!testme !testmev!testmee!testmer!testmed!testmei!testmec!testmet!testme.!testme!testme
!testmeT!testmeh!testmee!testme !testmeu!testmep!testmeg!testmer!testmea!testmed!testmee!testme !testmet!testmer!testmee!testmee!testme !testmeh!testmee!testmer!testmee!testme !testmei!testmes!testme !testmei!testmed!testmee!testmen!testmet!testmei!testmec!testmea!testmel!testme !testmet!testmeo!testme !testmet!testmeh!testmee!testme !testme2!testme0!testme2!testme6!testme-!testme0!testme7!testme-!testme3!testme1!testme !testmep!testmeu!testmes!testmeh!testme !testme(!testmev!testme3!testme.!testme0!testme.!testme1!testme→!testmev!testme3!testme.!testme1!testme.!testme0!testme !testme+!testme !testmev!testmea!testmel!testmek!testmee!testmey!testme !testmed!testmei!testmeg!testmee!testmes!testmet!testme !testmer!testmee!testmef!testmer!testmee!testmes!testmeh!testme !testmet!testmeo!testme !testme
!testme8!testmee!testme8!testmed!testme6!testme4!testmeb!testme4!testme…!testme!testme;!testme !testmep!testmeo!testmes!testmet!testmeg!testmer!testmee!testmes!testme !testmec!testmeo!testmem!testmeb!testmeo!testme !testmeu!testmen!testmec!testmeh!testmea!testmen!testmeg!testmee!testmed!testme)!testme !testme—!testme !testmet!testmeh!testmei!testmes!testme !testmer!testmeu!testmen!testme !testmec!testmeo!testmen!testmef!testmei!testmer!testmem!testmee!testmed!testme !testmei!testmet!testme !testmea!testmeg!testmea!testmei!testmen!testme !testmeo!testmen!testme !testmet!testmeo!testmed!testmea!testmey!testme'!testmes!testme !testmer!testmeu!testmen!testmen!testmee!testmer!testme !testme+!testme !testmev!testmei!testmea!testme !testmea!testme !testmef!testmer!testmee!testmes!testmeh!testme !testme!testme-!testme-!testmec!testmeh!testmea!testmeo!testmes!testme!testme !testmed!testmee!testmev!testme-!testmed!testmee!testmep!testmel!testmeo!testmey!testme !testmet!testmeh!testmea!testmet!testme !testmec!testmeo!testmen!testmev!testmee!testmer!testmeg!testmee!testmed!testme !testme(!testmea!testmep!testmep!testme !testme+!testme !testmeM!testmeL!testme !testmeh!testmee!testmea!testmel!testmet!testmeh!testmey!testme !testmeo!testmen!testme !testmev!testme3!testme.!testme1!testme.!testme0!testme,!testme !testmeD!testmeB!testme !testmem!testmei!testmeg!testmer!testmea!testmet!testmei!testmeo!testmen!testmes!testme !testmeO!testmeK!testme,!testme !testmeH!testmeT!testmeT!testmeP!testme !testme2!testme0!testme0!testme)!testme.!testme !testmeN!testmeo!testmet!testmeh!testmei!testmen!testmeg!testme !testmew!testmea!testmes!testme !testmem!testmee!testmer!testmeg!testmee!testmed!testme.!testmecc-ci
!testmere-verification (2026-08-03 run).VERDICT=GREEN — Drone build #1180 succeeded.
Build: https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/1180
Note: the
ccci-bridgecontainer is currently silently dropping!testmetriggers (its mounted gitea-bot swarm secret is stale → gitea returns HTTP 401 "user does not exist"), so this build was triggered DIRECTLY via the Drone API with the bridge's exact query-string params (branch=main RECIPE=immich REF=77d79379… PR=4 SRC=recipe-maintainers/immich) plus a fresh scope-limitedread:repositoryGITEA_TOKEN override (passed as a build param so the runner's_gitea_token()env-first check picks it up and the recipegit clonesucceeds; the token was deleted right after the build finished). The commit-statuscc-ci/testme=successon this PR head is the reflected verdict.The tree on this branch is identical to the 2026-07-31 push (immich-server + immich-machine-learning v3.0.1→v3.1.0, valkey digest refresh
3b55fbaa…→8e8d64b4…, postgres vectorchord combo UNCHANGED). This run re-confirmed it on today's runner AND via a freshabra app deploy --chaosondev-immich.ci.commoninternet.netthat converged cleanly: app + ML healthy on v3.1.0, DB migrations ran at boot (Kysely), HTTP/webreturned 200, postgres + the refreshed valkey pin intact. The dev deploy was torn down (stack count 0, no volumes/secrets leaked).Nothing was merged — PR awaits operator review +
abra recipe release immich -yafter merge.!testme
🌻 cc-ci —
immich@77d79379❌ failure → https://drone.ci.commoninternet.net/recipe-maintainers/cc-ci/1210(summary card unavailable — see the run for details.) full logs · dashboard
cc-ci
!testmere-verification (2026-08-07 run) — RED is infrastructure, not a recipe regression.The 2026-08-07
!testme(Drone build #1210) failed at the recipegit clonestep before any deploy (build finished in ~5s):fatal: could not read Username for 'https://git.autonomic.zone'/git clone … returned non-zero exit status 128.The cc-ci runner's gitea clone-token was rejected (HTTP 401) — a stale runner secret, not a problem with this PR.
PR #4's tree (
77d79379) is identical to the 2026-07-31 (#1145) and 2026-08-04 (#1180) runs, both GREEN.Recipe status: immich is up-to-date at
v3.1.0(latest stable per GitHub releases + immich's official compose). Upstream recipe main is now published as1.10.0+v3.1.0(thev3.0.1→v3.1.0bump merged upstream independently of this PR), so this PR now diverges from main only on thedatabase/redispins:database: PR #4 keepspgvectors0.3.0@sha256:87c0…(ahead); upstream main uses immich's officialpgvectors0.2.0@sha256:bcf633….redis: PR #4 carries immich's officialvalkey:9@sha256:8e8d64b4…; upstream main pinsvalkey:9@sha256:3acc0687…(differs from immich's official v3.1.0 pin).Operator action: rotate the cc-ci runner's gitea clone-token (currently returns 401) so
!testmecan re-verify, then decide whether to merge this PR (adopt its pins) or close it as superseded (upstream main is already at v3.1.0).Nothing was merged — PR awaits operator review.
!testme
🌻 cc-ci —
immich@77d79379✅ passedfull logs · dashboard
chore: upgrade immich-server + immich-machine-learning to v3.1.0to chore: upgrade immich-server + immich-machine-learning to v3.2.0 and refresh valkey:9 digest pin!testme
🌻 cc-ci —
immich@caaa20fa✅ passedfull logs · dashboard