acdream/tests/AcDream.Launcher.Tests
Erik 981e168fb9 fix(launcher): Campaign LA gate-round-1 review findings F1-F6 + hardening
F1: the crash reporter comment claimed the launcher never holds a password
in any field - false (ProfileEditorDialogViewModel, AccountProfile.Password,
StartRequest.Password). Reworded to the true, narrower invariant (no throw
site interpolates a credential VALUE into an exception message) and pinned
it with CrashReportNeverContainsAStoredPassword: a real STJ failure over a
profiles document containing a known password, corrupted after the
credential, must yield a crash file with the stack and without the value.

F2: the co-deploy Inputs covered only Bake own sources; a Content edit
never refreshed the 83 MB exe. Now the full reference closure. Fixing it
surfaced two more incrementality traps, both fixed and comment-documented:
SkipUnchangedFiles left the output older than the triggering input (target
re-ran forever - added an explicit Touch), and %(Item.Metadata) in a plain
Include does not batch (the literal percent-text became a permanently
out-of-date phantom input - globs are now spelled per project). Verified:
Core edit retriggers, then two consecutive clean incremental builds.

F3: RID publishes ran BOTH co-deploy paths (two self-contained bake
publishes). Build-time target now guarded on _IsPublishing; verified a
real win-x64 publish runs zero build-target co-deploys and still ships
both exes.

F4: comment misattributed PublishBakeTool=false to CI lanes; it is
target-local recursion guarding. F5: the x:Name reflection sweep now walks
the markup as XML and tolerates template-scoped names (no generated field
exists for those). F6: dead using removed. Hardening: the crash reporter
positional --data-dir fallback requires a fully-qualified path so a
relative or flag-shaped value cannot create ./crash-reports at an
arbitrary CWD.

Launcher 67/67, Launcher.Core 317/317.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-15 08:19:23 +02:00
..
AcDream.Launcher.Tests.csproj test(launcher): Campaign LA — headless MainWindow view tests close #399 2026-08-15 07:54:49 +02:00
LauncherProjectBoundaryTests.cs fix(launcher): harden installer transactions 2026-08-14 20:36:11 +02:00
LauncherStartupOptionsTests.cs fix(launcher): harden Campaign LA11 gate evidence 2026-08-15 01:08:41 +02:00
LauncherUpdateCompositionTests.cs test(launcher): Campaign LA — headless MainWindow view tests close #399 2026-08-15 07:54:49 +02:00
LauncherUpdateViewModelTests.cs feat(launcher): implement verified atomic updates 2026-08-14 22:09:34 +02:00
LauncherWindowViewModelTests.cs test(launcher): Campaign LA — headless MainWindow view tests close #399 2026-08-15 07:54:49 +02:00
MainWindowViewTests.cs fix(launcher): Campaign LA gate-round-1 review findings F1-F6 + hardening 2026-08-15 08:19:23 +02:00
TestAppBuilder.cs test(launcher): Campaign LA — headless MainWindow view tests close #399 2026-08-15 07:54:49 +02:00