From d5ef45731a6fe43856c76d8a17f6f19c7445113e Mon Sep 17 00:00:00 2001 From: archipelago Date: Sun, 21 Jun 2026 08:07:08 -0400 Subject: [PATCH] fix(immich): restore canonical app_id "immich" (title + icon) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After the manifest migration the launcher installed as "immich-server" (app_id), which has no catalog entry → showed the raw id and no icon. Rename the server manifest app_id immich-server→immich so it matches the catalog/curated "immich" entry (title "Immich", icon immich.png) and is recognised as a known launcher app (APP_CATEGORY_MAP) → stays in My Apps. immich_stack_app_ids now installs [immich-postgres, immich-redis, immich]; orchestrator.install bypasses package routing so there's no recursion with the "immich"→stack-installer mapping. Co-Authored-By: Claude Opus 4.8 (1M context) --- apps/immich/manifest.yml | 5 +++-- core/archipelago/src/api/rpc/package/stacks.rs | 7 +++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/apps/immich/manifest.yml b/apps/immich/manifest.yml index 23596ba4..b2ca3c98 100644 --- a/apps/immich/manifest.yml +++ b/apps/immich/manifest.yml @@ -1,10 +1,11 @@ app: - id: immich-server + id: immich name: Immich version: "2.7.4" description: Self-hosted photo and video backup with mobile apps and search. - # Named by app_id (immich-server); connects to its siblings by their app_id + # app_id "immich" = the user-facing launcher (matches the catalog entry's title + # + icon). Container is named "immich"; it reaches its backends by their app_id # aliases on archy-net (see DB_HOSTNAME / REDIS_HOSTNAME below). container: diff --git a/core/archipelago/src/api/rpc/package/stacks.rs b/core/archipelago/src/api/rpc/package/stacks.rs index 89c8dba4..2d410c88 100644 --- a/core/archipelago/src/api/rpc/package/stacks.rs +++ b/core/archipelago/src/api/rpc/package/stacks.rs @@ -689,8 +689,11 @@ fn mempool_stack_app_ids() -> &'static [&'static str] { } fn immich_stack_app_ids() -> &'static [&'static str] { - // Install order = dependency order: db + cache before the server. - &["immich-postgres", "immich-redis", "immich-server"] + // Install order = dependency order: db + cache before the server. The server + // app_id is the user-facing "immich" (canonical name + icon); its install is + // handled here (not recursively) since orchestrator.install bypasses the + // package.install routing that maps "immich" → this stack installer. + &["immich-postgres", "immich-redis", "immich"] } const REGISTRY: &str = "146.59.87.168:3000/lfg2025";