From 936077d57639e5a89b6f7f7d75124dd8c0b13685 Mon Sep 17 00:00:00 2001 From: Erik Date: Sat, 15 Aug 2026 09:13:45 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20Campaign=20LA=20gate=20round=202=20reco?= =?UTF-8?q?rd=20=E2=80=94=20retail-UI=20product=20default=20+=20JPEG=20bac?= =?UTF-8?q?kground=20decode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- docs/plans/2026-08-14-launcher-campaign.md | 36 ++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/docs/plans/2026-08-14-launcher-campaign.md b/docs/plans/2026-08-14-launcher-campaign.md index 327effdb..bfdb815f 100644 --- a/docs/plans/2026-08-14-launcher-campaign.md +++ b/docs/plans/2026-08-14-launcher-campaign.md @@ -756,6 +756,42 @@ optional Path.IsPathFullyQualified hardening on the crash reporter's --data-dir fallback. Launcher 67/67, Launcher.Core 317/317. The §A–I connected script remains the open user gate. +## Gate round 2 — 2026-08-15 (first live launcher→client flow) + +Two real defects, both root-caused and fixed: + +1. **`6e1c0967` — launcher-spawned clients had NO interface at all.** + `RetailUi` rode the dev env var `ACDREAM_RETAIL_UI`; `FromSessionConfig` + inherited the env parse; the launcher strips `ACDREAM_*` from children + (LA11 isolation). Product launches therefore got the dev default: world + rendering, zero UI — character screen included. Session-config launches + now force `RetailUi = true` (a session-config launch IS a product + launch); the env flag remains the dev-launch opt-in. Test-pinned with a + null env. +2. **`9ce72925` — character-select screen rendered magenta background/ + fills.** The screen's 800×600 root background (`0x06007576`) is + `PFID_CUSTOM_RAW_JPEG` — a complete JFIF stream retail hands to the + Intel JPEG Library (`RenderSurface::CreateFromSourceData @0x004440a0`), + with Width/Height legitimately 0 on disk. `SurfaceDecoder` had no JPEG + case AND a non-positive-dimension guard, so it fell silently to the + magenta placeholder; the listbox/ENTER fills are transparent, so one + broken background bled through as three symptoms. Fixed via + StbImageSharp (managed, Linux-safe; codec-library substitution per the + BCnEncoder precedent — no register row). BOTH silent traps now log once + per id (id-resolves-but-undecodable in `SurfaceDecoder`; + id-missing-from-DATs in `TextureCache`) — the existing magenta guard + only covered id-0. New installed-DAT sweep asserts every char-select + media id decodes non-magenta. Full suite 14,034 green. + +Session-orchestration facts this round: the machine gained PowerShell 7 +(winget, user-approved — the LA fixture tooling hard-requires it); an +orphan feed server from the earlier session held port 43119 with stale +fixture data (stopped); the launcher self-update bootstrap restart on a +dev binary is EXPECTED (staged launcher update → exit → respawn). +Observations still open for this round: the duplicated "versioned client +is unavailable" status line (cosmetic), and verifying Create Character is +disabled on the live screen. + ## Ledger | Slice | Status | Commits | Review | Notes |