Patch release: faster long-prompt processing on M4 and M5 Macs, working image input for Flash-Next, and fixes for 96 GB and M2/M3 machines.
Flash-Next gains a sparse prefill lane, adapting the fused Metal kernels from PR #397 by @maceip. The model already scores which blocks of the context matter for each new token; the lane now feeds those scores straight into a block-sparse FlashAttention kernel instead of building full attention masks.
Measured on an M5 Max with 128 GB against 2.10.0 on the same machine:
The lane turns on automatically where its kernels are supported (M4 and M5 generation GPUs) and engages on prompts past 32k tokens; other machines keep the dense path. MTPLX_QSA_PREFILL=0 turns it off. The kernels also handle YaRN rope scaling for long-rope configurations.
Memory admission understands the lane: serve resolves the model's full 262,144-token window on 128 GB machines and prints the plan, and a request that genuinely does not fit answers HTTP 507 instead of wedging the machine.
The Flash-Next packs have always shipped their vision weights, but the runtime refused to serve images. 2.10.1 adds the family's multimodal position encoding, so image input now works in app chat, over the API, and in Pi (#328, reported by @nmqanh). Pi model configs written by an older MTPLX are upgraded in place, and user edits survive.
Two fixes from @JordiPosthumus's report (#400):
With tools declared, which agent clients always do and app chat with web search does too, a first turn that ended entirely inside the model's reasoning channel came back as an empty message. The server now continues such a turn until the visible answer exists, and if that continuation itself fails it returns what it has instead of an error.