docs: record precise blockers for remaining Python non-economy routes

This commit is contained in:
funman300
2026-08-15 17:31:15 +00:00
parent 45e0b0bd95
commit 979e71fbea
+17 -9
View File
@@ -112,15 +112,23 @@ DONE (Rust-owned in candidate source; committed on top of 5020137; workspace tes
Legend instances = DIFFERENT-BY-DESIGN.)
- Reachability reporter (scripts/openfut-reachability.py) gates Python-hit invariants.
RESIDUAL PYTHON (still proxied; concrete status):
- club/stats/{year,consumables} — Core-derived rating-tier + consumable aggregation; NOT yet
migrated (design: host all_owned() tiered counts; needs differential). Actionable, off-production.
- account/sync — persona select + save; no direct Core route; needs host session/account logic.
- clientdata/userHubData — BLOCKED as clean migration: Core /settings supports only 2 fixed keys
(difficulty, preferred_formation), cannot store an arbitrary blob without a frozen-Core change or
a new host store. Low-value UI-pref blob; kept Python per Phase 23 (no Python-by-ideology).
- userMassInfo — hybrid (Rust overlays economy+squad on Python envelope); full ownership pending.
- ut/auth — Python mints SID envelope, Rust OBSERVEs; boundary decision pending.
RESIDUAL PYTHON (still proxied; each has a concrete blocker, not ordinary difficulty):
- club/stats/{year,consumables} — BLOCKED (cosmetic): the oracle set is a 40-atom VOCAB
(fut_club_stats.py) with a synthetic-shelf counting model (Python counts a starter shelf, not
owned items) + nation-bucket context rows. Unrecognized atoms are inert; Python serves it
correctly. A faithful Rust port is large + transcription-risky + semantically divergent; deferred
to a dedicated effort with a live capture. Low value (club-stats screen only). club/stats/staff
IS Rust ({}).
- account/sync — launcher-facing (POST /openfut/account/sync, pre-auth); envelope has fields not in
Core (clubAbbr, established, profilePath, accountFunds cap); changing it risks the launcher. Needs
a Core account endpoint or host account logic + launcher-contract verification.
- userMassInfo — SAFE hybrid today (Rust overlays economy+squad on Python envelope). Full ownership
needs a real full-envelope capture first (missing one scaffold field breaks a hot route); deferred.
- ut/auth — ORDERING-BLOCKED: still-proxied Python routes rely on Python's session table, so auth
must stay proxied (Python mints SID, Rust OBSERVEs) until every session-needing route is Rust. Migrate LAST.
- clientdata/userHubData — BLOCKED: Core /settings supports only 2 fixed keys (difficulty,
preferred_formation); storing an arbitrary blob needs a frozen-Core change or a new host store.
Low-value UI-pref blob; kept Python per Phase 23 (no Python-by-ideology).
AUX (Rust built, deploy = operator-gated container cutover, NOT this task): blaze/roster/redirector.
POW = blocked (no crate, bodies un-reversed). Nucleus = dead (0 live hits).