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
@@ -36,6 +36,7 @@ internal static class AlarmTriggerConfigJson
/// <c>"analysisKind":"Strict"</c>; null/"advisory"/anything else → Advisory default,
/// key omitted). Ignored for non-Expression trigger types.
/// </param>
/// <returns>The trigger-config JSON string, or <c>null</c> when no typed flags were supplied or the trigger type is unrecognized.</returns>
internal static string? Build(
string triggerType, string? attribute,
string? matchValue, bool notEquals,
@@ -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,
@@ -94,7 +94,7 @@ internal static class CommandHelpers
// Caller-supplied success handler short-circuits the default rendering — but
// the error path still routes through IsAuthorizationFailure so the documented
// exit-2 contract holds whether or not a custom handler is provided.
// exit code 2 contract holds whether or not a custom handler is provided.
if (onSuccess is not null)
{
if (response.JsonData is not null)
@@ -365,6 +365,15 @@ public static class TemplateCommands
/// The raw <paramref name="value"/> string is forwarded unchanged — for a List attribute it
/// is a JSON array, which the API/codec parses; the CLI does not reshape it.
/// </summary>
/// <param name="templateId">The template to add the attribute to.</param>
/// <param name="name">The attribute name.</param>
/// <param name="dataType">The attribute's data type.</param>
/// <param name="value">The raw attribute value, forwarded unchanged.</param>
/// <param name="description">An optional human-readable description.</param>
/// <param name="dataSource">An optional data source binding for the attribute.</param>
/// <param name="isLocked">Whether the attribute is locked from override in derived templates.</param>
/// <param name="elementType">The element type for a List-typed attribute; otherwise null.</param>
/// <returns>The command payload to send to the Management API.</returns>
internal static AddTemplateAttributeCommand BuildAddAttributeCommand(
int templateId, string name, string dataType, string? value,
string? description, string? dataSource, bool isLocked, string? elementType)
@@ -375,6 +384,15 @@ public static class TemplateCommands
/// The raw <paramref name="value"/> string is forwarded unchanged — for a List attribute it
/// is a JSON array, which the API/codec parses; the CLI does not reshape it.
/// </summary>
/// <param name="attributeId">The attribute to update.</param>
/// <param name="name">The attribute name.</param>
/// <param name="dataType">The attribute's data type.</param>
/// <param name="value">The raw attribute value, forwarded unchanged.</param>
/// <param name="description">An optional human-readable description.</param>
/// <param name="dataSource">An optional data source binding for the attribute.</param>
/// <param name="isLocked">Whether the attribute is locked from override in derived templates.</param>
/// <param name="elementType">The element type for a List-typed attribute; otherwise null.</param>
/// <returns>The command payload to send to the Management API.</returns>
internal static UpdateTemplateAttributeCommand BuildUpdateAttributeCommand(
int attributeId, string name, string dataType, string? value,
string? description, string? dataSource, bool isLocked, string? elementType)