docs(state): Slice 8 — real-data staged retail A/B PASS
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 resourceIde187cd4, rareflag626c972, rare=SP filter6f16a23) 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.
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user