Acceptance: load/fault tier — 16/32/64 clients, burst, churn, handoff-under-load (#15) (#24)

* Acceptance: add the load/fault tier (16/32/64 clients, burst, churn, handoff)

Extend the end-to-end harness (issue #15), harness-only — no server change.
Uses the existing ServerTuning seam to widen the local connect budget and
capacity so many clients can run over a single loopback IP.

- 16/32/64 clients across distinct cells: unique server-owned ids and no
  cross-cell transform spam (generalized from the prior 16-client case)
- burst transform traffic engages the rate limiter without tearing sessions
  down, and the server still relays a fresh transform afterward
- reconnect churn (12 cycles): ids stay monotonic and never reused, and each
  disconnect leaves no stale active session
- authority handoff stays deterministic under churn: retiring the current
  authority repeatedly hands off to the next lowest id with strictly
  increasing epochs

Packet loss/reorder on snapshot traffic is inherently an unreliable-transport
(GNS) property and stays deferred with the GNS sections (blocked on #2).

26/26 pass on real sockets, deterministic across repeated runs.

* Strip verbose comments from the acceptance harness and ServerTuning

Remove the prose/narration comments across the end-to-end harness (keeping only
section dividers) and the ServerTuning header block, matching the repo's terse
comment style.
This commit is contained in:
Nomads_Reach
2026-08-16 20:24:16 -04:00
committed by GitHub
parent 098cf34355
commit ece634450b
2 changed files with 110 additions and 66 deletions
-3
View File
@@ -4,9 +4,6 @@ using System.Text.Json.Nodes;
namespace CommonwealthOnline.Server;
// Runtime limits with the shipped production defaults. Injected only so tests can
// shorten timeouts and widen the local connect budget; ServerRuntime constructs
// the server without it, so production behavior is unchanged.
internal sealed record ServerTuning
{
public int MaxPacketsPerSecond { get; init; } = 120;