fix(deployment): pending-updates tick uses a slim instance projection, hash-only flatten, one untracked mismatch snapshot read and a per-tick secret lookup memo (review 2026-10-21 04/P2)

This commit is contained in:
Joseph Doherty
2026-10-22 06:39:45 -04:00
parent 971a9886b8
commit df67fabe68
17 changed files with 443 additions and 128 deletions
@@ -383,6 +383,17 @@ public interface IDeploymentManagerRepository
IReadOnlyList<PendingDeployment> candidates, DateTimeOffset nowUtc,
CancellationToken cancellationToken = default);
/// <summary>
/// Lists every instance that is not <see cref="Types.Enums.InstanceState.NotDeployed"/> as a
/// slim, untracked projection — only <c>Id</c>, <c>UniqueName</c>, <c>SiteId</c>,
/// <c>TemplateId</c> and <c>State</c> are populated; override and binding collections are
/// empty. For the pending-updates sweep, which needs only identity, site and state, and
/// used to load every instance with all four override collections, tracked.
/// </summary>
/// <param name="cancellationToken">A cancellation token that can be used to cancel the operation.</param>
/// <returns>The deployed (Enabled or Disabled) instances, as slim projections.</returns>
Task<IReadOnlyList<Instance>> GetDeployedInstanceSummariesAsync(CancellationToken cancellationToken = default);
// Instance lookups for deployment pipeline
/// <summary>
/// Gets an instance by ID.