acdream/tests
Erik 356545c530 fix(chargen): Campaign CC CC5 re-review residuals R1-R5 + nits — REVIEW-CLOSED
The narrow re-review of fix commits 0c8e1e7d+2d4168f9 found every code fix
oracle-verified but returned NOT CLOSED on five test/doc residuals plus
three nits and a follow-up filing. All fixed:

- R1: the claimed "external-change->user-commit->SetName" regression test
  for F1 (the deleted _suppressNextFieldEvent latch) never existed — the
  Runtime-layer randomize test doesn't touch the page. Added
  CharacterCreationUiControllerTests.SummaryNameField_RealCommitAfter
  ExternalRefreshWhileUnfocused_StillReachesSetName: drives Refresh with a
  revision bump + changed snapshot.Name while the field is unfocused (the
  programmatic SetText path that used to arm the latch), THEN performs a
  real user commit (field.SetText + field.Submit(), the actual event path),
  asserting SetName receives the player's typed text.
- R2: RetailSkillFormula.CalculateChargenScore and ChargenSkillScoreResolver
  had zero direct coverage (the F12(d) test substitutes skillId*10). Added
  a Untrained/Trained(+5)/Specialized(+10) theory, the divisor-zero skip
  path, and a six-way AttributeId theory (Str=1..Self=6) to
  RetailSkillFormulaTests.cs.
- R3: RetailSkillFormula.cs's doc comment claimed "no retail-authored skill
  sets MinLevel above Untrained=1" without ever reading the field — ACE's
  own SkillBase.cs hedges the same field "// 1-2?". MEASURED (not assumed)
  against the installed EoR dat's global SkillTable
  (CharacterCreationLiveDatTests.SkillTable_MinLevelDistribution_
  NeverExceedsTrained): 23 skills at MinLevel 1, 15 at MinLevel 2, zero
  above 2, of 38 priced skills. ACE's hedge was right; the doc comment now
  states the measured fact and leans on the structural argument (the gate
  holds for Trained/Specialized under any MinLevel in {1,2}) as load-
  bearing, not the unverified data claim.
- R4: filed AP-228 — the Summary/Skills skill-row KEY sources from
  ItemAppraisalTextFormatter.SkillName's hardcoded English switch, where
  retail's own key is DAT-sourced (SkillBase->_name via %hs,
  0x0047b90f-0x0047b915) — same divergence class as AP-226 filed the same
  round, reversed polarity, also present at CC4's Skills page. Softened
  AP-224's "ported exactly, not simplified" claim: it only ever covered the
  row's VALUE/template, never its KEY.
- R5: this commit corrects 0c8e1e7d's gate claim. "Release build zero
  warnings" was false: a clean `dotnet build -c Release -t:Rebuild` shows
  25 pre-existing warnings (18 in tests/AcDream.Core.Tests, 7 in
  tests/AcDream.App.Tests — Composition/HostInputCameraCompositionTests.cs,
  Composition/WorldRenderCompositionTests.cs,
  UI/Layout/OptionsPanelLiveMountProbeTests.cs), none in any file this
  campaign or its residual round touched. History is not amended; this is
  the correction.

Nits: the ChargenPreviewController ctor doc now also cites
gmCGSummaryPage::Update @0x0047baa0 (the per-heritage re-derive site — 0xc
Olthoi/0xd OlthoiAcid/else — not just the one-shot InitializePage seed) as
the stronger justification for why Rebuild re-derives the zoomed-out eye
per heritage on every change. RuntimeCharacterCreationState's F2 comment
("Finish becoming a permanent no-op") reworded: the same unconditional
_verificationPending = false assignment ran pre-fix too, so Finish was
never blocked — only the response FEEDBACK vanished (no dialog, no created
character, nothing), not the request itself. Filed #404 for
ChargenSkillScoreResolver's own independent SkillTable read alongside
ChargenTableReader's (cleanup follow-up, out of this round's scope).

Ledger: CC5 flipped REVIEW-CLOSED in the campaign plan (dual-lens
architectural PASS-with-items / retail-fidelity FAIL -> F1-F14 fix round
0c8e1e7d -> narrow re-review: all code oracle-verified, residuals R1-R5
test/doc -> this commit; re-reviewer pre-authorized lead diff-check close).
This commit's own sha is recorded by a follow-up ledger-only commit,
matching 2d4168f9's own pattern.

Gates: Release build 0 errors (25 pre-existing warnings, unrelated to this
round — see R5 above); App suite 5257/3 skips (was 5242/3), 0 failed;
Runtime suite 1726/0 (unchanged); the three new/measured tests (R1, R2's
ten cases, R3) all pass individually.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-16 01:57:07 +02:00
..
AcDream.App.Tests fix(chargen): Campaign CC CC5 re-review residuals R1-R5 + nits — REVIEW-CLOSED 2026-08-16 01:57:07 +02:00
AcDream.Bake.Tests fix(launcher): harden installer transactions 2026-08-14 20:36:11 +02:00
AcDream.Cli.Tests perf(diag): complete trustworthy Slice A capture tooling 2026-07-24 12:46:51 +02:00
AcDream.Content.Tests fix(chargen): Campaign CC CC6a review fix round — F1-F12 2026-08-15 17:51:14 +02:00
AcDream.Core.Net.Tests CC2 review fix round: latch scope narrowed, AD-100, creationFailed reason key 2026-08-15 13:10:24 +02:00
AcDream.Core.Tests feat(chargen): Campaign CC slice CC6b-PRE — idle loop, rotation, zoom (mount-independent half) 2026-08-15 19:05:56 +02:00
AcDream.Core.Tests.Fixtures.HelloPlugin feat(core): add PluginLoader with collectible ALC 2026-04-10 09:51:16 +02:00
AcDream.Headless.Tests fix(app,headless): Campaign CC slice CC4 re-review round — R1 arbiter + R2-R4 2026-08-15 19:04:04 +02:00
AcDream.Launcher.Core.Tests CC2 review fix round: latch scope narrowed, AD-100, creationFailed reason key 2026-08-15 13:10:24 +02:00
AcDream.Launcher.Core.Tests.Fixtures.ConsolelessSupervisorParent feat(launcher): prepare Campaign LA11 user gate 2026-08-14 23:42:30 +02:00
AcDream.Launcher.Core.Tests.Fixtures.ConsoleSignalChild feat(launcher): prepare Campaign LA11 user gate 2026-08-14 23:42:30 +02:00
AcDream.Launcher.Core.Tests.Fixtures.InstallLeaseHolder fix(launcher): harden Campaign LA11 gate evidence 2026-08-15 01:08:41 +02:00
AcDream.Launcher.Tests fix(launcher): Campaign LA gate-round-1 review findings F1-F6 + hardening 2026-08-15 08:19:23 +02:00
AcDream.Platform.Tests fix(platform): Campaign LA LA0 review fixes — CI Linux lanes, arch doc, self-guard 2026-08-14 15:30:04 +02:00
AcDream.Plugin.Tests.Fixtures.HostPlugin fix(plugins): close LA5 ownership races 2026-08-14 19:28:14 +02:00
AcDream.Runtime.Tests fix(chargen): Campaign CC CC5 review fix round — F1-F14 2026-08-16 01:13:52 +02:00
AcDream.UI.Abstractions.Tests feat(runtime): share chat commands and run login sequence 2026-08-14 20:27:45 +02:00
Fixtures/campaign-la fix(plugins): close LA5 host lifecycle review 2026-08-14 19:05:13 +02:00