Skip to content

MTPLX 2.8.2

Choose a tag to compare

@youssofal youssofal released this 17 Aug 19:31
· 77 commits to main since this release

Why a second patch today

Within hours of 2.8.1, two independent reports showed the same failure: load a model, and with no requests at all the machine heats up while API requests never arrive (#280, and a report on X). If that happened to you, 2.8.1's start wizard was silently re-running the multi-minute tuning benchmark on every launch — with the API port still closed while it ran. 2.8.2 fixes that loop and everything found underneath it. If you updated to 2.8.0/2.8.1 today: update again, it takes one minute, and your saved tune results now stick.

Fixed

  • mtplx start no longer re-offers tuning on every launch. The tune record's lookup key and its save key had drifted apart in 2.8.0 (the per-model profile work updated one side only), so the wizard could never find the record it had just saved. Accepting the re-offer meant minutes of maxed GPU with the server not yet listening — the reported "heats up + API unreachable" pair. One shared key constructor now, with a regression test that fails if the two sides ever drift again.
  • The wizard tunes the model you actually picked. Picking a non-default model tuned the machine's default instead (picking the 4B tuned the 27B) and saved a record the launched model could never use.
  • A picked local model is never silently swapped for the default. LM Studio-style folders whose name matches the verified default were re-routed to the Hugging Face repo id, producing "Model is missing. Download?" for a model already on disk (#279).
  • Idle daemons no longer hammer session-bank/manifest.sqlite. Every health/dashboard poll opened the SSD-cache manifest and ran a full-table aggregate (~8 sqlite opens per poll, continuously visible in Activity Monitor, #280). Steady-state polling now costs at most one manifest read per 5 seconds.
  • mtplx --version reports the right version again. The published 2.8.1 wheel identified itself as 2.8.0 (2.8.1); 2.8.2 prints 2.8.2 (2.8.2) — worth checking after you update.

Nothing on the generation path changed: decode, prefill, sampling, tool calling, and the session cache behave exactly as in 2.8.1 (verified flat-or-better in interleaved A/B before ship).