diff --git a/docs/PRODUCTION_AUTHORITY_MATRIX.md b/docs/PRODUCTION_AUTHORITY_MATRIX.md index 8879d2b..407df7f 100644 --- a/docs/PRODUCTION_AUTHORITY_MATRIX.md +++ b/docs/PRODUCTION_AUTHORITY_MATRIX.md @@ -102,3 +102,23 @@ Any nonzero Python economy hit = P1 regression, priority zero. ## STATUS Baseline + economy + Rust-owned non-economy rows: OBSERVED/PROVEN. Aux + non-economy target owners: confirmed via HostSourceMap/PythonContractMap/AuxServiceMap/ContentGapMap scouts. + +## CANDIDATE MIGRATION STATUS (post-P1 progress, off-production) +DONE (Rust-owned in candidate source; committed on top of 5020137; workspace tests green): +- Content gap: consumable+staff emit (20 instances / 18 defs; verified real-profile re-import 1962+20). +- Non-economy routes migrated to Rust: user/accountinfo, settings, leaderboards/options, + match/reset, phishing/{trusteddevice,question,validate}, club/stats/staff. +- Reachability reporter (scripts/openfut-reachability.py) gates Python-hit invariants. + +RESIDUAL PYTHON (still proxied; concrete status): +- hub, club/stats/{year,consumables} — Core-derived aggregation; NOT yet migrated (design: host + all_owned() rating-tier + market/pile 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. + +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).