From bc4857a72f620a6a76c4fd7d8186d38e829a5eea Mon Sep 17 00:00:00 2001 From: Alexandre de Souza Date: Fri, 7 Nov 2025 10:33:05 -0300 Subject: [PATCH] Fix bug with non-teams app specs --- lib/livebook/apps/manager.ex | 15 +++++++++++---- lib/livebook_web/live/apps_live.ex | 2 +- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/lib/livebook/apps/manager.ex b/lib/livebook/apps/manager.ex index b1477134d..c1fcbb201 100644 --- a/lib/livebook/apps/manager.ex +++ b/lib/livebook/apps/manager.ex @@ -185,10 +185,14 @@ defmodule Livebook.Apps.Manager do reduce: {state, [], false} do {state, up_to_date_app_specs, schedule_sync?} -> case fetch_app(app_spec.slug) do - {:ok, _state, app} - when app.app_spec.version == app_spec.version and - app.app_spec.app_folder_id == app_spec.app_folder_id -> - {state, [app_spec | up_to_date_app_specs], schedule_sync?} + {:ok, _state, app} when app.app_spec.version == app_spec.version -> + if changed_app_folder?(app.app_spec, app_spec) do + ref = redeploy(app, app_spec) + state = track_deployment(state, app_spec, ref) + {state, up_to_date_app_specs, schedule_sync?} + else + {state, [app_spec | up_to_date_app_specs], schedule_sync?} + end {:ok, :reachable, app} -> ref = redeploy(app, app_spec) @@ -340,4 +344,7 @@ defmodule Livebook.Apps.Manager do deployment.ref == ref && deployment end) end + + defp changed_app_folder?(%{app_folder_id: id}, %{app_folder_id: id2}), do: id != id2 + defp changed_app_folder?(_, _), do: false end diff --git a/lib/livebook_web/live/apps_live.ex b/lib/livebook_web/live/apps_live.ex index 496dec1db..45574f8e3 100644 --- a/lib/livebook_web/live/apps_live.ex +++ b/lib/livebook_web/live/apps_live.ex @@ -257,7 +257,7 @@ defmodule LivebookWeb.AppsLive do grouped_apps = filtered_apps - |> Enum.group_by(& &1.app_spec.app_folder_id) + |> Enum.group_by(&get_in(&1.app_spec.app_folder_id)) |> Enum.map(fn {nil, apps} -> {"Ungrouped apps", "ungrouped-apps", "asterisk", apps}