Front Office redesign · proof
#1338 · after 7c2b4005 vs main 6e485920 · recorded 2026-10-20 · checklist and links
Front Office (new)The redesign, top of the draft stack (7c2b4005)Front Office (before)Today’s main (6e485920), same recorded dataInside an MFL-style pageLoaded the way MFL loads it (fo_embed_loader.js)Trade War Room (Home button)The one War Room route; Front Office links here tooProofBefore/after, reconciliation, tests, what isn’t verified
0 live reads
26-step browser run (Chromium + WebKit): every worker read answered from the recording; 0 reached production.Every write blocked
POST, PUT, PATCH, DELETE, a Request object, XHR, sendBeacon, form submit, MFL import by GET, and a War Room offer: all stopped before leaving the page.1442 / 1445
displayed values equal MFL’s recorded exports; the 3 others are exact .x5 halves (below).222 passed, 0 failed
full safe offline suite on 7c2b4005; 14 of 14 reintroduced bugs caught.Reconciliation: what the new screens show vs MFL
Read from the preview’s page, then recomputed here from MFL’s own recorded exports with exact arithmetic: points and PPG from playerScores W=ALL (Wks 1–6), the phone’s rank rule (3+ MFL weeks; ties → total points → id), projectedScores W=7, nflByeWeeks, futureDraftPicks, and the league’s waiver check for Status.
| Screen | Rows | Values | Result | Differences |
|---|---|---|---|---|
| Roster · Performance (Real Deal Creel) | 37 | 185 | 184 match | Brissett, Jacoby PPG: page 19.3, exact 19.4 |
| Market · Free agents (top 200) | 200 | 1200 | 1198 match | Washington, Darnell PPG: page 8.5, exact 8.6; Bates, Jessie PPG: page 8.0, exact 8.1 |
| Contracts & Cap · Draft picks | 60 | 60 | all match |
Every rank, bye, projection, status and pick holder matches. The three PPG differences are averages that land exactly on a half (116.1 ÷ 6 = 19.35): the page rounds them down, as the released phone sheet does (same formatter). A shared fix for both is listed as a follow-up.
Earlier reconciliation (issue comment 4)
- Rosters: worker vs MFL
rosters: 481 / 481 players identical (team, status, salary, years, type). - Cap: Real Deal Creel $286,000 salaries + $9,000 adjustments = $295,000, $5,000 room: identical to MFL’s formula.
- War Room cap room used a stale static adjustments file: off by −$33,250 to +$34,000 per team. Fixed in #1340 (live MFL adjustments).
- Bye weeks: 0 mismatches; draft picks: all 12 teams identical.
Before / after
Roster


Player panel → Stats (same player)


Contracts & Cap


New views










Reintroduced bugs (each must fail its test)
| Bug put back | Test | Result | Run |
|---|---|---|---|
| A no write on open | front_office_no_write_on_open.test.mjs | caught | 1/3 tests passed, 8 assertions, 2 FAILED |
| B War Room live adjustments | trade_war_room_live_adjustments.test.mjs | caught | 1/3 tests passed, 5 assertions, 2 FAILED |
| C player facts = phone | front_office_player_facts_parity.test.mjs | caught | 5/7 tests passed, 737 assertions, 2 FAILED |
| D shell + deep links | front_office_shell_nav.test.mjs | caught | Node.js v22.22.2 |
| D rank waits for players list (old hub) | front_office_rank_universe.test.mjs | caught | 1/4 tests passed, 7 assertions, 3 FAILED |
| D rank cache keyed on groupOf (old cache) | front_office_rank_universe.test.mjs | caught | 3/4 tests passed, 18 assertions, 1 FAILED |
| D bye planner: IR can start | bye_planner_model.test.mjs | caught | 4/5 tests passed, 19 assertions, 1 FAILED (after adding the IR-designation case; missed before) |
| E blank projection read as 0 | front_office_roster_performance.test.mjs | caught | 4/5 tests passed, 51 assertions, 1 FAILED |
| F claim-now shown as add-now | front_office_market.test.mjs | caught | 3/5 tests passed, 25 assertions, 2 FAILED |
| G kickers/punters used in fits | trade_fit_model.test.mjs | caught | 7/8 tests passed, 75 assertions, 1 FAILED |
| H swap link drops the players | front_office_trade_finder.test.mjs | caught | 3/4 tests passed, 12 assertions, 1 FAILED |
| H War Room ignores give/get (main) | trade_war_room_fit_link.test.mjs | caught | 0/3 tests passed, 1 assertions, 3 FAILED |
| I IR moves read backwards | front_office_picks_activity.test.mjs | caught | 2/3 tests passed, 10 assertions, 1 FAILED |
| I fixed 1-6 pick columns | front_office_picks_activity.test.mjs | caught | 2/3 tests passed, 13 assertions, 1 FAILED |
Not verified here
- Signed-in MFL behavior: claims MFL holds, owner-only actions with a real session, and the commissioner view.
- Real Safari on a Mac (WebKit engine only) and the live MFL page’s own header and scripts around Front Office.
- Live freshness: the preview replays one recording; the live site reads MFL’s exports (60-second cache).
- Worker change in #1341 (player-status id map cache) runs only in the worker; covered by its offline test, not this preview.