docs: Campaign LA gate round 2 record — retail-UI product default + JPEG background decode
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
9ce7292570
commit
936077d576
1 changed files with 36 additions and 0 deletions
|
|
@ -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
|
--data-dir fallback. Launcher 67/67, Launcher.Core 317/317. The §A–I
|
||||||
connected script remains the open user gate.
|
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
|
## Ledger
|
||||||
|
|
||||||
| Slice | Status | Commits | Review | Notes |
|
| Slice | Status | Commits | Review | Notes |
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue