oMLX 0.5.7
Hotfix history since 0.5.4
- 0.5.5: DeepSeek V4 prompt-tail visibility, tiered-cache compatibility, and sparse-prefill fallback cache safety.
- 0.5.6: DeepSeek V4 CacheList and MTP/PoolingCache integrity, retained-reasoning prompt consistency, long-context indexer safety, and macOS idle-timeout controls.
- 0.5.7: Official DeepSeek V4 Flash 0731 prompt encoding and safe Claude Code tail-system handling.
Sorry for the unusually frequent hotfix releases since 0.5.4. DeepSeek V4 Flash 0731 exposed several interacting edge cases across prompt encoding, MTP, PoolingCache, tiered cache, and long-context inference. These updates were necessary to complete and stabilize DeepSeek V4 support. Thank you for your patience and understanding while this work was completed.
oMLX 0.5.7 rolls up every fix shipped in 0.5.5 and 0.5.6 and completes the DeepSeek V4 Flash 0731 prompt-format integration. Users upgrading from 0.5.4 can move directly to 0.5.7.
0.5.7 Highlights
- DeepSeek V4 now uses the official Flash 0731 reference encoder. Tool schemas, DSML tool calls,
<tool_result>history, thinking mode, reasoning effort, role transitions, and generation boundaries now match the published encoding. - Claude Code tail-system context uses
<|latest_reminder|>. A system message appended after a user turn is moved into new reminder context immediately before the user it qualifies, instead of being rendered as an undelimited prompt tail. - Prompt construction no longer leaks DSML or tool-calling markup. The corrected role transition restores the assistant generation anchor and prevents malformed closing tags or internal instructions from appearing in model output.
- Tool definitions are injected exactly once. Requests with multiple system contexts no longer duplicate the full tool schema.
- Unsupported system placements remain conservative. Ambiguous, developer, and partial-message placements use the existing
user_note_safeor strict-consolidation fallback instead of assuming unsupported model semantics. - Mid-system capability detection is explicit. DeepSeek V4 no longer passes the generic placement probe merely because raw text happened to remain in marker order.
Included Fixes from 0.5.6
- DeepSeek V4 CacheList signatures survive rotating-tip cleanup. Reused tiered-cache entries no longer fail compatibility checks after cache trimming. (#2493)
- MTP cache boundaries remain intact. Prefill snapshots and decode transitions preserve aligned cache positions instead of crossing unsafe boundaries. (#2493)
- Pooling-cache deltas are copied out of parent buffers. Cache snapshots no longer retain mutable parent storage or observe later writes. (#2500)
- Retained-reasoning prompts remain append-only. Repeated agent requests can reuse stable prompt prefixes without rewriting historical thinking context. (#2501)
- Long-context indexer fallback is safe beyond int32 limits. DeepSeek V4 avoids unsupported index arithmetic when context positions exceed the accelerated path's range. (#2502)
- macOS idle timeout can be disabled reliably. The app and admin API preserve explicit zero/disabled timeout settings. (#2498)
Included Fixes from 0.5.5
- DeepSeek DSpark MTP row-wise attention is restricted to safe decode states. Unsafe prefill and unaligned batch shapes fall back to the standard path. (#2490)
- Incompatible tiered-cache blocks are replaced instead of reused. Runtime cache composition changes no longer leave stale blocks attached to a request. (#2487)
- Sparse-prefill failures invalidate prefix-cache hits. A failed sparse path can no longer continue with partially reconstructed cached state. (#2484)
Upgrade Notes
- 0.5.7 is the recommended release for DeepSeek V4 Flash 0731.
- No configuration migration is required when upgrading from 0.5.4, 0.5.5, or 0.5.6.
New Contributors
Thank you to @nigelks for the macOS idle-timeout fix and to @jonathan308 for the DeepSeek V4 PoolingCache, retained-reasoning, and long-context indexer fixes included in this hotfix line.
Full Changelog: v0.5.4...v0.5.7