46 lines
2.5 KiB
Markdown
46 lines
2.5 KiB
Markdown
---
|
|
title: "MLB The Show Companion Automation — 2026.3.31"
|
|
description: "Fix gold exchange navigation, add grind harness for automated buy→exchange loops, CLI cleanup."
|
|
type: reference
|
|
domain: gaming
|
|
tags: [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 — retry loop attempts up to 10 scrolls before giving up (was 1) (`6912a7e`). Note: scroll method itself was still broken (KEYCODE_PAGE_DOWN); fixed in 2026.4.01 release.
|
|
- 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 `grind` → `exchange` (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)
|