From 3021a4e7611d41da21e3e8cefa34db3eba36dc20 Mon Sep 17 00:00:00 2001 From: OpenFUT Agent Date: Thu, 13 Aug 2026 19:14:39 +0000 Subject: [PATCH] docs(utas-host): record economy cutover progress in route-authority gate Core economy HTTP API + host CoreEconomy client (fail-closed) + credits reader landed; classifier not yet flipped (coherent barrier pending full cluster + Core seed). --- openfut-utas-host/ROUTE_AUTHORITY.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/openfut-utas-host/ROUTE_AUTHORITY.md b/openfut-utas-host/ROUTE_AUTHORITY.md index 0831d7c..cb9846d 100644 --- a/openfut-utas-host/ROUTE_AUTHORITY.md +++ b/openfut-utas-host/ROUTE_AUTHORITY.md @@ -77,3 +77,22 @@ After cutover, every remaining `Python (proxied)` route MUST have `economy state touched = NONE`. Routes with `economy state touched != NONE` are part of the migration cluster and MUST be Rust before R1. This table is the audit source; the host `classify()` is the enforcement point (NEVER BOTH). + +## Cutover progress (2026-08-13) + +Landed (Core authority + transport + first reader; classifier NOT yet flipped): + +- **Core economy HTTP API** (`d32dc6e`): generic `/economy/{balance,entitlements, + purchase-entitlement,redeem-entitlement,sell-item,grant-reward,purchase-item}`, + server-side club resolution, atomic transactions. Core matrix green. +- **Host `CoreEconomy` client** (`d240a61`): typed reqwest transport, **fail-closed, + no Python fallback** by contract. +- **`/user/credits` handler** (`handle_credits`): Core-backed, oracle-shape body, + 503 fail-closed. Tested via `FakeEconomy`. + +**Not flipped:** `classify()` still routes every economy route to Python. Per the +single-writer rule the flip is one coherent barrier once ALL writers+readers are +implemented and Core is seeded — a partial flip would desync coins. Remaining +handlers: purchasegroup full-gen, userMassInfo economy, Store BUY, pack-open, +quick-sell, market buy/list/cancel, match reward; then the barrier flip + +differential/concurrency/restart + no-fallback classifier tests.