claude-home/mlb-the-show/release-2026.3.31.md
2026-04-02 20:48:06 -05:00

2.4 KiB

title description type domain tags
MLB The Show Companion Automation — 2026.3.31 Fix gold exchange navigation, add grind harness for automated buy→exchange loops, CLI cleanup. reference gaming
release-notes
deployment
mlb-the-show
python
automation

MLB The Show Companion Automation — 2026.3.31

Date: 2026-03-31 Repo: cal/mlb-the-show-market-tracker on Gitea Branch: main (merge commit ea66e2c) Deploy method: Local script — uv run scripts/grind.py

Release Summary

Major fixes to the companion app automation (grind.py). The gold exchange navigation was broken — the script thought it had entered the card grid when it was still on the exchange selection list. Added a new grind command that orchestrates the full buy→exchange loop with multi-tier OVR rotation.

Changes

Bug Fixes

  • Fixed _is_on_exchange_grid() to require Exchange Value card labels, distinguishing the card grid from the Exchange Players list page (d4c038b)
  • Added retry loop (3 attempts, 2s apart) in ensure_on_exchange_grid() for variable load times
  • Added time.sleep(2) after tapping into the Gold Exchange grid
  • Removed low-OVR bail logic — the grid is sorted ascending, so bail fired on first screen before scrolling to profitable cards
  • Fixed buy-orders market scroll — now tries up to 10 page-downs before giving up (was 1) (6912a7e)
  • Restored _has_low_ovr_cards fix lost during PR #2 merge (c29af78)

New Features

  • grind command — automated buy→exchange loop with OVR tier rotation (6912a7e)
    • Rotates through OVR tiers in descending order (default: 79, 78, 77)
    • Buys 2 tiers per round, then exchanges all available dupes
    • Flags: --ovrs, --rounds, --max-players, --max-price, --budget, --max-packs
    • Per-round and cumulative summary output
    • Clean Ctrl+C handling with final totals

CLI Changes

  • Renamed grindexchange (bulk exchange command)
  • Removed redundant single-exchange command (use exchange 1 instead)
  • grind now refers to the full buy→exchange orchestration loop

Known Issues

  • Default price gates (MAX_BUY_PRICES) may be too low during market inflation periods. Current gates: 79→170, 78→140, 77→125. Use --max-price to override.
  • No order fulfillment polling — the grind loop relies on natural timing (2 buy rounds ≈ 2-5 min gives orders time to fill)