Merge branch 'worktree-agent-a0098b40576d74cfd' into arch-review-remediation
This commit is contained in:
+42
@@ -22,6 +22,48 @@ public interface IDeploymentManagerRepository
|
||||
/// <returns>A read-only list of all deployment records.</returns>
|
||||
Task<IReadOnlyList<DeploymentRecord>> GetAllDeploymentRecordsAsync(CancellationToken cancellationToken = default);
|
||||
/// <summary>
|
||||
/// Database-side paged and filtered deployment query returning row summaries.
|
||||
/// Backs the <c>QueryDeployments</c> management command, which previously
|
||||
/// loaded the ENTIRE deployment-record table (insert-only, one row per deploy
|
||||
/// attempt for the life of the system) and ignored the page arguments the CLI
|
||||
/// was already sending.
|
||||
/// </summary>
|
||||
/// <param name="instanceId">Restrict to one instance's history, or <see langword="null"/> for all.</param>
|
||||
/// <param name="status">Restrict to one deployment status, or <see langword="null"/> for all.</param>
|
||||
/// <param name="instanceIdScope">
|
||||
/// When non-null, restrict to these instance ids. Used to apply a site-scoped
|
||||
/// user's permitted-site filter IN THE DATABASE rather than by loading every
|
||||
/// record and every instance and filtering in memory.
|
||||
/// </param>
|
||||
/// <param name="skip">Rows to skip; negative values are floored at 0.</param>
|
||||
/// <param name="take">Page size; non-positive or null returns every remaining row.</param>
|
||||
/// <param name="cancellationToken">A cancellation token that can be used to cancel the operation.</param>
|
||||
/// <returns>One page of deployment summaries, newest first.</returns>
|
||||
Task<IReadOnlyList<Types.Deployment.DeploymentRecordSummary>> QueryDeploymentSummariesAsync(
|
||||
int? instanceId,
|
||||
DeploymentStatus? status,
|
||||
IReadOnlyCollection<int>? instanceIdScope,
|
||||
int skip,
|
||||
int? take,
|
||||
CancellationToken cancellationToken = default);
|
||||
/// <summary>
|
||||
/// Deletes TERMINAL deployment records (<see cref="DeploymentStatus.Success"/> /
|
||||
/// <see cref="DeploymentStatus.Failed"/>) that completed before
|
||||
/// <paramref name="cutoffUtc"/>, in one bounded batch.
|
||||
///
|
||||
/// <para>
|
||||
/// Non-terminal rows are never touched: an <c>InProgress</c> record is what the
|
||||
/// query-before-redeploy reconciliation path reads to decide whether a prior
|
||||
/// deploy actually landed at the site, so purging one by age would silently
|
||||
/// disable that idempotency guard.
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="cutoffUtc">Records completing before this instant are eligible.</param>
|
||||
/// <param name="batchSize">Maximum rows deleted in this call.</param>
|
||||
/// <param name="cancellationToken">A cancellation token that can be used to cancel the operation.</param>
|
||||
/// <returns>The number of rows deleted; fewer than <paramref name="batchSize"/> means the sweep is complete.</returns>
|
||||
Task<int> PurgeTerminalDeploymentRecordsAsync(DateTimeOffset cutoffUtc, int batchSize, CancellationToken cancellationToken = default);
|
||||
/// <summary>
|
||||
/// Gets all deployment records for a specific instance.
|
||||
/// </summary>
|
||||
/// <param name="instanceId">The instance ID.</param>
|
||||
|
||||
+35
@@ -35,6 +35,41 @@ public interface ITemplateEngineRepository
|
||||
/// <returns>A task that resolves to a read-only list of all templates.</returns>
|
||||
Task<IReadOnlyList<Template>> GetAllTemplatesAsync(CancellationToken cancellationToken = default);
|
||||
/// <summary>
|
||||
/// Read-only, no-tracking variant of <see cref="GetAllTemplatesAsync"/> for the
|
||||
/// design-time ANALYSIS walks — acyclicity (<c>CycleDetector</c>), naming
|
||||
/// collisions (<c>CollisionDetector</c>) and canonical-name resolution
|
||||
/// (<c>TemplateResolver</c>). Script bodies are NOT loaded
|
||||
/// (<see cref="TemplateScript.Code"/> comes back empty) because no analysis
|
||||
/// consumer reads them; everything those walks do read — ids, parent and
|
||||
/// composition edges, member names and lock flags — is present.
|
||||
///
|
||||
/// <para>
|
||||
/// Do NOT use this for the inheritance reconciler or the flattener: the
|
||||
/// reconciler compares and copies script bodies and writes through tracked
|
||||
/// entities, and the flattener must observe rows an in-flight bundle import
|
||||
/// has staged on the shared change tracker. Both keep using
|
||||
/// <see cref="GetAllTemplatesAsync"/> / <see cref="GetTemplateWithChildrenAsync"/>.
|
||||
/// </para>
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">Cancellation token.</param>
|
||||
/// <returns>A task that resolves to a read-only list of all templates without script bodies.</returns>
|
||||
Task<IReadOnlyList<Template>> GetAllTemplatesForAnalysisAsync(CancellationToken cancellationToken = default);
|
||||
/// <summary>
|
||||
/// Database-side paged listing of templates as row summaries (child
|
||||
/// collections reduced to counts, no script bodies). Backs the
|
||||
/// <c>ListTemplates</c> management command, which previously materialised
|
||||
/// every template's full child graph and then paged the list in memory.
|
||||
/// </summary>
|
||||
/// <param name="skip">Number of rows to skip; negative values are floored at 0.</param>
|
||||
/// <param name="take">
|
||||
/// Page size. <see langword="null"/> or non-positive returns every remaining
|
||||
/// row (the historical unpaged behaviour); otherwise clamped to
|
||||
/// <see cref="Types.Templates.TemplateSummary.MaxPageSize"/>.
|
||||
/// </param>
|
||||
/// <param name="cancellationToken">Cancellation token.</param>
|
||||
/// <returns>A task that resolves to one page of template summaries, ordered by id.</returns>
|
||||
Task<IReadOnlyList<Types.Templates.TemplateSummary>> GetTemplateSummariesAsync(int skip, int? take, CancellationToken cancellationToken = default);
|
||||
/// <summary>
|
||||
/// Returns every template that contains a composition referencing
|
||||
/// <paramref name="composedTemplateId"/>. Each result is eager-loaded with
|
||||
/// its Attributes / Scripts / Compositions so the caller can build a
|
||||
|
||||
Reference in New Issue
Block a user