From b64c8041dc56b5198b1ef4f817ecf06ba7a93724 Mon Sep 17 00:00:00 2001 From: Erik Date: Tue, 18 Aug 2026 17:02:15 +0200 Subject: [PATCH] docs: close r3 test cleanup --- .../2026-08-18-r3-test-truth-ledger.md | 62 +++++++++++++++++-- 1 file changed, 58 insertions(+), 4 deletions(-) diff --git a/docs/reviews/2026-08-18-r3-test-truth-ledger.md b/docs/reviews/2026-08-18-r3-test-truth-ledger.md index 76e7c722..00bbff12 100644 --- a/docs/reviews/2026-08-18-r3-test-truth-ledger.md +++ b/docs/reviews/2026-08-18-r3-test-truth-ledger.md @@ -1,6 +1,6 @@ # R3 test-truth and cleanup ledger -Status: **active** +Status: **complete** Branch: `codex/release-stabilization` @@ -38,12 +38,12 @@ pwsh ./tools/audit-test-inventory.ps1 The generated JSON lives under ignored `artifacts/test-audit/`; it is not a second 6.8 MB checked-in source of truth. The script and this reviewed ledger are durable, while paths and line numbers regenerate after every batch. The -inventory refreshed through Batch X reports: +final closeout inventory at implementation commit `14d371a0` reports: | Syntax signal | Current count | |---|---:| | Tracked/parsed C# test files | 1,254 / 1,254 | -| Attributed test methods (not expanded theory cases) | 11,417 | +| Attributed test methods (not expanded theory cases) | 11,414 | | Exact duplicate-data rows | 0 | | Reviewed body-equivalent groups / methods | 11 / 27 | | Methods containing at least one empty `return;` | 138 | @@ -56,7 +56,7 @@ inventory refreshed through Batch X reports: | Methods directly using `Thread.Sleep` / `Task.Delay` | 15 / 14 | | Cancellable-infinite-only / elapsed-time methods | 5 / 24 | | Methods directly reading environment variables | 47 | -| Methods directly / through same-file helpers reading `.cs` source text | 57 / 92 | +| Methods directly / in total reading `.cs` source text | 21 / 22 | The three remaining prerequisite-return candidates are all reviewed branch false positives: the two Windows/Linux factory assertions and the launcher's @@ -1538,3 +1538,57 @@ Verification follows the proportionate R3 policy: source-pin comment in the affected tests. With this batch, all 85 approved replacements are implemented; final inventory reconciliation and the one complete Release gate follow next. + +## R3 closeout + +R3 closes on implementation commit `14d371a0`. The final Roslyn inventory and +the one complete Release gate both ran from that clean commit; this closeout is +the only later documentation change. + +The final inventory parses all 1,254 tracked C# test files and attributes +11,414 test methods. It finds 21 direct source readers and 22 readers in total. +Those 22 reconcile exactly to the approved retained boundary: + +| Retained disposition | Methods | Reconciled owners | +|---|---:|---| +| Whole-tree architecture policy | 17 | `LinuxPlatformBoundaryTests` (5), `RenderSceneArchitectureTests` (2), `RuntimePhysicsOwnershipTests` (4), `RuntimeEntityOwnershipTests` (2), and one each in `RuntimeActionOwnershipTests`, `RuntimeMovementOwnershipTests`, `RuntimeWorldTransitOwnershipTests`, and `RuntimeDatAccessArchitectureTests` | +| Cross-artifact source/project contract | 5 | `ParticleBindlessInstanceTests` (1), `PerformanceToolsTests` (1), and `LauncherProjectBoundaryTests` (3) | + +The original corrected inventory's equation therefore closes without an +unclassified reader: 107 source readers = 85 replaced implementation/test- +model freezes + 17 retained architecture policies + 5 retained cross-artifact +contracts. Three of the 85 replacements removed a redundant test because an +existing stronger behavioral oracle already covered the claim; the other 82 +kept a test and changed its evidence seam. + +The other approved boundaries also reconcile: + +- Batch V deleted exactly 28 attributed self-tests: 17 widget-recorder tests, + nine main-menu-recorder tests, and two positional-record tests. All three + approved files remain absent. +- `FakePanelRenderer` remains. The retained behavior boundary is exactly 23 + attributed methods and 29 expanded cases: 22 `ChatPanel` layout/input/focus + methods plus the `ChatVMCombatTests` render-path method. +- The issue taxonomy remains descriptive: 47 `Issue###...Tests.cs` files and + all 155 attributed methods remain, with every filename carrying a behavior + suffix after its issue number. + +R3 changed no product behavior. A diff from starting commit `8e884679` contains +eight `src/` paths, all previously reviewed testability/documentation seams: +two comment-only test-name updates; deterministic clock injection for input and +streaming whose public production construction still selects the same system +clock; nullable launcher contention callbacks that production leaves unset; +and one test-assembly `InternalsVisibleTo`. No shipping default, ownership, +algorithm, protocol, or presentation path changes. + +Final verification at clean implementation commit `14d371a0`: + +- locked Release restore and build: 44 projects, zero warnings, zero errors; +- complete hermetic Release gate: 14,346 passed, zero skipped, zero failed, + across all 12 default test assemblies; and +- durable ignored evidence: `artifacts/test-audit/test-inventory.json` and + `artifacts/release-gate/release-gate-summary.json`, with logs, TRX files, + environment capture, and SHA-256 manifest beside the gate summary. + +Every R3 decision is now represented by the batch ledger above, the final +inventory agrees with every approved count, and no cleanup item remains open.