fix: include recipients in artifact deployment and load shared scripts on startup
NotificationRepository.GetAllNotificationListsAsync() was missing .Include(Recipients), causing artifact deployments to push empty recipient lists to sites. Also load shared scripts from SQLite on DeploymentManager startup so they're available before Instance Actors compile their scripts.
This commit is contained in:
@@ -147,6 +147,9 @@ public class DeploymentManagerActor : ReceiveActor, IWithTimers
|
||||
return;
|
||||
}
|
||||
|
||||
// Load and compile shared scripts from SQLite before creating Instance Actors
|
||||
LoadSharedScriptsFromStorage();
|
||||
|
||||
var enabledConfigs = msg.Configs.Where(c => c.IsEnabled).ToList();
|
||||
_totalDeployedCount = msg.Configs.Count;
|
||||
_logger.LogInformation(
|
||||
@@ -449,6 +452,29 @@ public class DeploymentManagerActor : ReceiveActor, IWithTimers
|
||||
}
|
||||
}
|
||||
|
||||
// ── Shared Script Loading ──
|
||||
|
||||
private void LoadSharedScriptsFromStorage()
|
||||
{
|
||||
try
|
||||
{
|
||||
var scripts = _storage.GetAllSharedScriptsAsync().GetAwaiter().GetResult();
|
||||
var compiled = 0;
|
||||
foreach (var script in scripts)
|
||||
{
|
||||
if (_sharedScriptLibrary.CompileAndRegister(script.Name, script.Code))
|
||||
compiled++;
|
||||
}
|
||||
_logger.LogInformation(
|
||||
"Loaded {Compiled}/{Total} shared scripts from SQLite",
|
||||
compiled, scripts.Count);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Failed to load shared scripts from SQLite");
|
||||
}
|
||||
}
|
||||
|
||||
// ── Debug View routing ──
|
||||
|
||||
private void RouteDebugViewSubscribe(SubscribeDebugViewRequest request)
|
||||
|
||||
Reference in New Issue
Block a user