docs: complete XML doc comments via fixdocs (2757 to 131 findings)

Add missing <returns>/<param>/<summary>/<typeparam> tags and clean up
misused inheritdoc across 481 files so the documented API surface is
complete. Documentation-only (zero code lines changed). The 131 remaining
findings are inheritdoc-style warnings deliberately left to preserve
hand-written implementation rationale (plan-decision notes, race-condition
explanations).
This commit is contained in:
Joseph Doherty
2026-06-03 12:34:34 -04:00
parent c6d9b20d9f
commit bd6c0b4d3d
481 changed files with 2550 additions and 1668 deletions
@@ -35,6 +35,7 @@ public sealed class PollGroupEngineTests
}
/// <summary>Verifies that the initial poll forces an event for every subscribed tag.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Initial_poll_force_raises_every_subscribed_tag()
{
@@ -54,6 +55,7 @@ public sealed class PollGroupEngineTests
}
/// <summary>Verifies that unchanged values are only raised once.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Unchanged_value_raises_only_once()
{
@@ -72,6 +74,7 @@ public sealed class PollGroupEngineTests
}
/// <summary>Verifies that value changes raise new events.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Value_change_raises_new_event()
{
@@ -92,6 +95,7 @@ public sealed class PollGroupEngineTests
}
/// <summary>Verifies that unsubscribe halts the polling loop.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Unsubscribe_halts_the_loop()
{
@@ -113,6 +117,7 @@ public sealed class PollGroupEngineTests
}
/// <summary>Verifies that intervals below the configured floor are clamped.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Interval_below_floor_is_clamped()
{
@@ -134,6 +139,7 @@ public sealed class PollGroupEngineTests
}
/// <summary>Verifies that multiple subscriptions operate independently.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Multiple_subscriptions_are_independent()
{
@@ -165,6 +171,7 @@ public sealed class PollGroupEngineTests
}
/// <summary>Verifies that reader exceptions do not crash the polling loop.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Reader_exception_does_not_crash_loop()
{
@@ -195,6 +202,7 @@ public sealed class PollGroupEngineTests
}
/// <summary>Verifies that unsubscribing an unknown handle returns false.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Unsubscribe_unknown_handle_returns_false()
{
@@ -206,6 +214,7 @@ public sealed class PollGroupEngineTests
}
/// <summary>Verifies that the active subscription count tracks lifecycle changes.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task ActiveSubscriptionCount_tracks_lifecycle()
{
@@ -225,6 +234,7 @@ public sealed class PollGroupEngineTests
}
/// <summary>Verifies that disposing the engine cancels all active subscriptions.</summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task DisposeAsync_cancels_all_subscriptions()
{
@@ -253,6 +263,7 @@ public sealed class PollGroupEngineTests
/// must fire only the initial change event, not a spurious event on every tick, even
/// when the driver produces a fresh array instance on each read.
/// </summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Array_valued_tag_unchanged_contents_raises_only_once()
{
@@ -289,6 +300,7 @@ public sealed class PollGroupEngineTests
/// Core.Abstractions-001: an array-valued tag whose contents change between polls
/// must fire a change event for each distinct set of contents.
/// </summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Array_valued_tag_changed_contents_raises_event()
{
@@ -320,6 +332,7 @@ public sealed class PollGroupEngineTests
/// violates the documented contract. The engine must throw a descriptive exception
/// rather than silently stalling.
/// </summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Reader_short_result_list_raises_descriptive_exception_and_loop_continues()
{
@@ -366,6 +379,7 @@ public sealed class PollGroupEngineTests
/// must continue to swallow exceptions (backward compatible). When an error callback IS
/// supplied, every exception caught during a poll cycle must be routed to it.
/// </summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Reader_exception_is_reported_to_onError_callback()
{
@@ -401,6 +415,7 @@ public sealed class PollGroupEngineTests
/// must also be routed to the error callback so the driver health surface can observe
/// repeated contract violations.
/// </summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task Reader_contract_violation_routes_to_onError_callback()
{
@@ -433,6 +448,7 @@ public sealed class PollGroupEngineTests
/// that itself throws — otherwise a buggy health-surface forwarder would crash the poll
/// loop and silently stall the subscription, defeating the whole point of the callback.
/// </summary>
/// <returns>A task that represents the asynchronous operation.</returns>
[Fact]
public async Task OnError_handler_that_throws_does_not_crash_loop()
{
@@ -463,7 +479,7 @@ public sealed class PollGroupEngineTests
private sealed record DummyHandle : ISubscriptionHandle
{
/// <summary>Gets a diagnostic identifier for this handle.</summary>
/// <inheritdoc />
public string DiagnosticId => "dummy";
}