Devotd Github
NewInference & serving

yibie/strata-mlx — Conversation parking by default, short requests avoid slots

yibie/strata-mlx now enables conversation parking by default and keeps requests under 256 tokens from occupying a slot, changing the default behavior of re-reading the long prompt after another client's request.

Repositoryyibie/strata-mlx ↗

yibie/strata-mlx now enables conversation parking by default and keeps requests under 256 tokens from occupying a slot, changing the default behavior of re-reading the long prompt after another client's request.

GitHub description: Qwen3.8-Flash-Next on Apple Silicon: an MLX engine that reads Strata's GGUF files and speaks its line protocol (unofficial)

stars
★ 97
Forks
15
Language
Python
License
MIT
Read original source ↗View on GitHub ↗

yibie/strata-mlx is an unofficial MLX engine that reads Qwen3.8-Flash-Next on Apple Silicon from Strata's GGUF files and follows the line protocol. The October 23, 2026 commit 94817fd enabled conversation parking by default and set `--conversation-cache-min-tokens` to 256 so that short requests from other clients would not occupy a conversation slot.

The engine reads the entire conversation once and then reads only the newly added tokens on the next turn. The problem was that when another client's request interleaved, that conversation got cut off, forcing the full prompt to be re-read on every turn. According to jerry727's measurements, summarized in issue 12, on a 96 GB M2 Max (macOS 27.0.1, MLX 0.32.3, Q2_0), with another client attached alongside the web chat, each turn of a 38,313-token conversation took 121 seconds. When only the same conversation continued, it read just 31 tokens out of 39,940 and took 0.4 seconds.

So the default for `--conversation-cache-mib` changed to auto. Where the model and float are fully resident in memory and 4 GiB remains, it uses 4,096 MiB, and where the experts have to be pulled in from storage it is 0 MiB, and `--check` tells you which case applies. On a 64 GB Mac, Q2_0 is parked and IQ3_S is not. There are 4 slots, and requests under 256 tokens do not touch the slots.

Still, some things remain. If requests over 256 tokens interleave four or more times, the slots still evict the oldest conversation regardless of size, so the intent that the smallest conversation should leave first has not been realized. Parked conversations do not survive a restart, and Macs that read experts from SSD park nothing by default. The problem of a parked conversation and its starting copy each holding the cache at startup (83 MB for 2,760 tokens) also remains. The only case that actually confirmed the 4,096 MiB default is the single instance in issue 8: a 64 GB M5 Pro with Q2_0, with no swap. All the figures above are reporter measurements recorded in ISSUES.md and ROADMAP.md.