fix: include requested package in startup roster

This commit is contained in:
codex
2026-08-10 10:10:03 +03:00
parent 514302b966
commit 7025ce0a46
+7 -1
View File
@@ -33,8 +33,14 @@ public static class StartupRosterPreflight
foreach (var root in additionalRoots ?? DiscoverKnownRoots())
if (!string.IsNullOrWhiteSpace(root) && Directory.Exists(root)) roots.Add(Path.GetFullPath(root));
var entries = new List<StartupRosterEntry>();
foreach (var root in roots) DiscoverRoot(root, requested, entries);
var requestedPath = Path.Combine(Path.GetFullPath(requestedPackageRoot), requested.EntryAssembly);
var requestedHash = requested.Files.FirstOrDefault(f => f.Path.Equals(requested.EntryAssembly, StringComparison.OrdinalIgnoreCase))?.Sha256;
if (File.Exists(requestedPath))
entries.Add(new("RequestedPackage", requested.Startup.Type + ":" + requested.Startup.Command, requested.PackageId, requested.Version,
requested.EntryAssembly, requestedPath, Convert.ToHexString(SHA256.HashData(File.ReadAllBytes(requestedPath))), true, "before-netload"));
else entries.Add(new("RequestedPackage", requested.Startup.Type + ":" + requested.Startup.Command, requested.PackageId, requested.Version,
requested.EntryAssembly, null, requestedHash, false, "before-netload"));
foreach (var root in roots) DiscoverRoot(root, requested, entries);
var eligible = entries.Where(e => e.Eligible).ToArray();
StartupRosterCandidateStatus status;
if (entries.Any(e => e.EntryPath is null || e.EntrySha256 is null)) status = StartupRosterCandidateStatus.UnresolvedStartupEntry;