MTPLX 2.8.1
MTPLX 2.8.1
Released 2026-08-17. Hotfix on top of 2.8.0, published the
same morning.
Why a patch an hour after 2.8.0
2.8.0's headline work made long agent sessions commit their cache
frontier on every turn, including turns that carry images. Our release
pipeline runs a correctness sentinel for exactly that surface: send a
transcript with one image, then repeat the identical transcript with a
different image, and require that the second request never reads cached
state from past the image position. That sentinel failed on the desktop
build gate.
The cause: the session frontier is keyed by token ids, and every image
placeholder shares a single id, so two different images look identical
to it. Once vision histories started committing, a repeated transcript
with different pixels could restore the previous image's KV wholesale
and answer about the wrong image.
The published PyPI wheel for 2.8.0 carried this defect for about an
hour. The desktop DMG never shipped with it; the gate blocked it.
What changed
Vision conversations keep their full prompt-cache behavior through the
content-keyed store introduced in 2.8.0: it derives cache keys from the
actual image bytes, so identical pixels restore the whole prefix and
different pixels can never match past the first image token. What
changed is the raw-id session frontier: image-bearing histories no
longer advance it, on any of its four write paths. Same speed for the
honest case, hard stop for the aliasing one.
Five new regression tests pin the behavior, and the release gate that
caught it now runs against a hermetic cache directory so a previous
run's state can never mask or fake a result.
Upgrading
- PyPI:
pip install -U mtplx(2.8.1) - Homebrew:
brew upgrade mtplx - Desktop app: 2.8.1 (build 2008001) via Sparkle or the website DMG
Nothing else changed from 2.8.0; its release notes remain
the reference for what is new.
Known cosmetic quirk in this wheel
The mtplx --version banner in the 2.8.1 wheel reads mtplx 2.8.0 (2.8.1): the display constant missed the hotfix bump. The package
version, pip show, and all behavior are correct, the desktop build
displays 2.8.1, and the banner is fixed on main. Not worth a third
release in one morning.