From 54ad9e8f7966f2f7d24e5e58cec5812a913d3c5a Mon Sep 17 00:00:00 2001 From: funman300 Date: Wed, 12 Aug 2026 21:37:42 +0000 Subject: [PATCH] =?UTF-8?q?docs(state):=20Slice=208=20=E2=80=94=20real-dat?= =?UTF-8?q?a=20staged=20retail=20A/B=20PASS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Records the operator-assisted live A/B on the REAL imported club (1949/1962, 13 Legends deferred): real club render, clean pagination, Special filter (1665, 0 base leaked), squad edit persistence + cold relaunch, and rollback->Python->Rust re-enable. Documents the three real-data fidelity fixes (versioned resourceId e187cd4, rareflag 626c972, rare=SP filter 6f16a23) and the nation/league/team model correction (44fcf24). Marks PRODUCTION NOT READY pending .105 Legends name data for the 13 deferred assets. Aggregate counts only; no private identity. --- docs/PROJECT_STATE.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/PROJECT_STATE.md b/docs/PROJECT_STATE.md index 26d03bc..bcef235 100644 --- a/docs/PROJECT_STATE.md +++ b/docs/PROJECT_STATE.md @@ -124,6 +124,32 @@ Last compiled from repository evidence during context initialization. same day by a staged two-process parity gate (real Core+host over HTTP, no FIFA) confirming byte- shape parity of `userMassInfo.squad` vs the captured oracle. Next milestone: real-data Core import / profile strategy → production Rust UTAS. Blaze deferred. +- **Slice 8 (2026-08-12): REAL-DATA staged retail A/B PASS (import + club + squad).** The real FIFA 17 + profile was imported into a staged Core via the two-store protocol (`openfut-import-fifa17 --apply`: + generic transactional Core import + `openfut-identity` seeding, idempotent), then FIFA itself + consumed it end-to-end over the source-scoped utas switch (`.105`→`.120:8199`). Imported population + 1949 of 1962 player instances (13 Legend/special assets deferred as unnameable — 9 NoName + the 4 + copies of `169193`), every original Python wire id preserved (set-equal, 0 minted/dropped), each + owned instance an opaque Core UUID. On the retail client: real club rendered (1949, not the 33-card + dev XI); `/club` pagination clean (paged==full, no loop/overlap/drop); the `Special` quality filter + returned only specials (1665, 0 base leaked) and paginated the filtered set; a squad edit persisted + to Core (canonical + opaque extension atomically, fingerprint recomputed) and survived a full cold + relaunch; rollback→Python→Rust re-enable proven on the exact client path (disarm reached Python, + re-arm returned the imported club + edited squad; identity store 0 reallocation). Three real-data + fidelity gaps the base-only dev fixture had hidden were found on the live client and fixed: + (1) `e187cd4` versioned `resourceId` — `shape_item` emitted the base assetId as `resourceId`, + collapsing every special onto its base card art; `Fifa17Identity` now carries the versioned + `resource_id`. (2) `626c972` observed `rareflag` — `shape_item` hardcoded `rareflag=1`, so all + specials rendered as basic rare; `rareflag` now flows through the FIFA catalog and onto the wire + (wire distribution == source exactly). (3) `6f16a23` `rare=SP` Special filter — previously a no-op + ("semantics UNKNOWN"), now grounded as `rareflag > 1` and applied host-side (Core has no rareflag). + Also `44fcf24`: nation/league/team proven to be INSTANCE metadata (not definition identity — the 4 + copies of `169193` are identical but for club), so the definition-consistency gate now compares + identity only (no `--defer-conflict` needed; no majority-vote). PRODUCTION NOT READY: the 13 deferred + Legends are unnameable from the `.120` client dump (absent/placeholder in `players.json`; DLC/Legends + name tables empty) — honest names require the FIFA 17 Legends locale data from the `.105` client. + Next: resolve the 13 names → re-import to 1962/0 → full-fidelity gate → gitlink reconcile → + production Rust UTAS. ## Stubbed / planned