docs(xml): fill missing XML doc comments + strip task-tracking refs across src (fixdocs)

Add missing <summary>/<param>/<returns>/<typeparam> tags and switch
interface implementations to <inheritdoc/> across 106 files; strip
project bookkeeping identifiers (Task NN, #05-TNN, PLAN-04, StoreAndForward-0NN)
from shipped code comments while preserving the descriptive rationale.
Comment-only: zero code-logic lines changed; solution builds 0/0.

Claude-Session: https://claude.ai/code/session_01MtdgwpEeCUn6cUA5f1LMPj
This commit is contained in:
Joseph Doherty
2026-07-10 08:23:56 -04:00
parent 75007b9edd
commit 5a878b78d4
106 changed files with 580 additions and 180 deletions
@@ -22,14 +22,49 @@ public sealed class AuditTreeArgs
/// </summary>
internal sealed class AuditTreeNodeDto
{
/// <summary>
/// The execution ID (GUID) identifying this node in the tree.
/// </summary>
public Guid ExecutionId { get; init; }
/// <summary>
/// The execution ID of the spawning run, or <c>null</c> for a root node.
/// </summary>
public Guid? ParentExecutionId { get; init; }
/// <summary>
/// The number of audit log rows contributed by this execution.
/// </summary>
public int RowCount { get; init; }
/// <summary>
/// The set of audit channels touched by this execution.
/// </summary>
public string[] Channels { get; init; } = Array.Empty<string>();
/// <summary>
/// The set of distinct row statuses recorded for this execution.
/// </summary>
public string[] Statuses { get; init; } = Array.Empty<string>();
/// <summary>
/// The site identifier the execution originated from, or <c>null</c> if not site-scoped.
/// </summary>
public string? SourceSiteId { get; init; }
/// <summary>
/// The instance identifier the execution originated from, or <c>null</c> if not instance-scoped.
/// </summary>
public string? SourceInstanceId { get; init; }
/// <summary>
/// The timestamp (UTC) of the earliest audit row for this execution, if any.
/// </summary>
public DateTime? FirstOccurredAtUtc { get; init; }
/// <summary>
/// The timestamp (UTC) of the latest audit row for this execution, if any.
/// </summary>
public DateTime? LastOccurredAtUtc { get; init; }
}
@@ -124,6 +159,8 @@ public static class AuditTreeHelpers
/// <summary>
/// Renders the nodes as pretty-printed JSON to <paramref name="output"/>.
/// </summary>
/// <param name="nodes">The tree nodes to render.</param>
/// <param name="output">The output writer for results.</param>
internal static void WriteJson(AuditTreeNodeDto[] nodes, TextWriter output)
{
output.WriteLine(JsonSerializer.Serialize(nodes, JsonWriteOptions));
@@ -135,6 +172,9 @@ public static class AuditTreeHelpers
/// two spaces per depth level. The queried/entry-point node is marked
/// with <c> [*]</c>.
/// </summary>
/// <param name="nodes">The tree nodes to render.</param>
/// <param name="queriedExecutionId">The execution ID originally queried, used to mark the entry-point node.</param>
/// <param name="output">The output writer for results.</param>
internal static void WriteTable(
AuditTreeNodeDto[] nodes,
Guid queriedExecutionId,