Skip to content

v1.3.6

Choose a tag to compare

@jjang-ai jjang-ai released this 21 Mar 23:21
· 4127 commits to main since this release

v1.3.6 — Disk Streaming, Mistral 4 Support, Metal Fixes

New Features

  • Disk Streaming Mode (--stream-from-disk): Load models larger than RAM by leveraging macOS SSD paging (~7.4GB/s). Automatically disables all caching. UI toggle in session settings with adjustable virtual memory budget slider.
  • Mistral Small 4 (119B) support: model_type: mistral4 with MLA attention (Multi-head Latent Attention), 128-expert MoE, YaRN interleaved RoPE. Works via mlx-lm text path and mistral3 VLM wrapper.
  • JANG gate dequant for all MoE models: Extended from Nemotron-only to any model with n_routed_experts > 0 (Mistral 4, DeepSeek V3, etc.)

Fixes

  • Metal memory limit: Correctly RAISED (not capped) for disk streaming — allows macOS to page model weights via SSD
  • Metal cache limit: Set to 0 in disk streaming mode so freed memory returns to macOS immediately
  • Reranker race condition: Capture local reference inside lock before .rerank() call
  • Sleep/wake cache limit: Fixed truthy check for _pre_sleep_cache_limit == 0 (valid "unlimited" value)
  • Deep sleep wake: stream_from_disk + stream_memory_percent preserved through _cli_args
  • VLM lazy loading: mlx_vlm.load() receives lazy=True in disk streaming mode
  • MLLMBatchGenerator: Skips Metal cache limit override in disk streaming mode
  • Wake timeout: Increased to 300s for large models in disk streaming mode
  • Model size estimation: Uses safetensors file sizes (not Metal active memory, which is 0 with lazy=True)

Compatibility

  • 24 new tests (disk streaming + edge cases)
  • 200+ item cross-check verification matrix at docs/CROSS-CHECK-MATRIX.md
  • Full matrix audit: 47/47 cells pass across 5 model types × all features
  • Full engine audit: 58 feature areas checked, all clean