fix(deployment): detach each instance's settled rows from the bulk deploy's shared unit of work after Finalize (review 2026-10-21 04/M3)

This commit is contained in:
Joseph Doherty
2026-10-22 06:48:28 -04:00
parent 32e63eaa96
commit 7aacc49043
6 changed files with 100 additions and 1 deletions
@@ -466,4 +466,17 @@ public interface IDeploymentManagerRepository
/// </summary>
/// <returns>The number of tracked entries detached (0 when nothing was pending).</returns>
int DetachPendingChanges();
/// <summary>
/// Stops tracking the SETTLED deployment rows of one instance — its
/// <see cref="PendingDeployment"/>, <see cref="DeployedConfigSnapshot"/> and
/// <see cref="DeploymentRecord"/> entries in the <c>Unchanged</c> state. A bulk site deploy
/// shares one scoped unit of work across every instance; without this, each finalised
/// instance's config JSON (staged copy, old and new snapshot) stays tracked for the rest of
/// the batch and every later <c>SaveChanges</c> re-scans it. Entries with pending writes are
/// left alone.
/// </summary>
/// <param name="instanceId">The instance whose settled rows to stop tracking.</param>
/// <returns>The number of entries detached.</returns>
int DetachSettledDeploymentRows(int instanceId);
}