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
@@ -35,6 +35,8 @@ internal static class ConfigSecretScrubber
/// Replaces every secret-bearing string value (at any depth) with <see cref="Sentinel"/>.
/// Null/empty/parse-failure inputs are returned unchanged with hadSecrets=false.
/// </summary>
/// <param name="json">The connection-config JSON blob to scrub, or null/empty.</param>
/// <returns>The scrubbed JSON (or the original input if unchanged) and whether any secrets were found.</returns>
public static (string? scrubbed, bool hadSecrets) Scrub(string? json)
{
if (string.IsNullOrEmpty(json))
@@ -122,6 +124,9 @@ internal static class ConfigSecretScrubber
/// Sentinel is left in place — an update would store it verbatim, which is inert).
/// Null/empty/parse-failure inputs pass through unchanged.
/// </summary>
/// <param name="incoming">The client-submitted config JSON, possibly containing sentinel values.</param>
/// <param name="stored">The previously stored config JSON to source real secret values from.</param>
/// <returns>The incoming JSON with sentinel values replaced by the corresponding stored values.</returns>
public static string? MergeSentinels(string? incoming, string? stored)
{
if (string.IsNullOrEmpty(incoming))
@@ -190,6 +190,8 @@ public class ManagementActor : ReceiveActor
/// command is available to any authenticated user. Internal so the
/// authorization matrix can be asserted directly in tests.
/// </summary>
/// <param name="command">The management command to authorize.</param>
/// <returns>The set of roles that satisfy the authorization gate, or <c>null</c> if any authenticated user may issue the command.</returns>
internal static IReadOnlyList<string>? GetRequiredRoles(object command) => command switch
{
// Administrator operations