Skip to content

afm-next (20260408 · 628c2bb)

Pre-release
Pre-release

Choose a tag to compare

@scouzi1966 scouzi1966 released this 08 Apr 00:57
· 48 commits to main since this release
628c2bb

Nightly build from main branch.

  • Commit: 628c2bb
  • Date: 20260408
  • Version: 0.9.10-next.628c2bb.20260408

This is an unstable development build. For the latest stable release, use brew install scouzi1966/afm/afm.

Changes since last build (2b647b2)

  • fix: --guided-json server flag and per-test spec extraction (#97, #98) (628c2bb)
  • fix: generate-report.py reads from RESULTS_FILE env var, not hardcoded path (6b36714)
  • fix: timestamp all temp files to prevent overwrites between runs (f10f72b)
  • fix: codex per-test scoring — local outside function, unbound var (5142185)
  • fix: handle unset AFM_BIN with set -u (e48e0f5)
  • fix: mlx-model-test.sh defaults to local build over PATH (2f88460)
  • fix: smart analysis reporting — codex ARG_MAX, format validation, baseline tagging (f582ac5)
  • refactor: address PR #95 review — extract helper, improve readability (2c7d205)
  • fix: skip radix save for wrapped RotatingKVCache to prevent SIGTRAP (#94) (48f88a8)
  • fix: Gemma 4 batch mode, structured tool history, and Metal buffer lifecycle (#88) (d5573d1)
  • Add nightly test results for 2026-04-04 (4 models) (44c048e)
  • fix: Gemma 4 tool call type coercion (array/object/int) (2aa2abd)
  • fix: flatten anyOf/oneOf nullable schemas for Jinja template safety (ce66763)
  • Merge feature/gemma4-batch-kvcache: 10x throughput for Gemma 4 (bc9de80)
  • Fix structured output streaming regression (4afb1ff)
  • fix: address PR review — empty cache merge safety, slot wait cancellation (731ca38)
  • refactor: raise SSE multiplex batch limit to 200, extract as constant (55ea028)
  • fix: root-cause batched prefill crash — MLX lazy graph overflow (329b114)
  • refactor: improve updateConcat alloc pattern, keep individual prefill (3d5f9e1)
  • feat: add request correlation ID for end-to-end tracing (ea12c89)
  • perf: add pipeline timing instrumentation (AFM_DEBUG=1) (65c093c)
  • perf: remove container.perform lock and actor serialization bottlenecks (a289c42)
  • fix: snapshot prefill state to prevent decode mutation corruption (6e16a21)
  • fix: BatchRotatingKVCache mask totalLen after circular buffer wrap (f650d65)
  • fix: updateConcat alloc size, debug prefillBatch B>=3 crash (38159f0)
  • debug: add SDPA shape logging and BatchRotatingKV tracing (22461ac)
  • Bypass adaptive XML for Gemma 4 tool calls (45910d7)
  • feat: BatchRotatingKVCache — Gemma 4 concurrent batch mode working (4006a11)
  • WIP: BatchRotatingKVCache — B=1 works, B>=2 segfaults in SDPA (c04eafc)
  • WIP: BatchRotatingKVCache for Gemma 4 batch mode (0f94cca)
  • refactor: extract magic numbers to named constants, add coding rule (4e9edf3)
  • fix: queue requests instead of rejecting with server_busy (a73b820)
  • fix: patch pin check matched wrong line (swift-docc-plugin) (16cf3da)
  • Fix Gemma 4 handling and consolidate repo skills (f0bd9c7)
  • chore: bump wheel version to 0.9.10.dev20260403, add test reports (7c38a5a)
  • Update nightly release link to 20260403-2b647b2 (9098e31)

Install / Upgrade

Homebrew

brew tap scouzi1966/afm
brew install scouzi1966/afm/afm-next    # fresh install
brew upgrade afm-next                    # upgrade existing
brew reinstall afm-next                  # force reinstall (same version, new build)

pip

pip install --extra-index-url https://kruks.ai/afm/wheels/simple/ macafm-next

Switching between stable and nightly

# Homebrew
brew unlink afm && brew install scouzi1966/afm/afm-next   # switch to nightly
brew unlink afm-next && brew link afm                      # switch back to stable

# pip
pip install macafm          # stable
pip install --extra-index-url https://kruks.ai/afm/wheels/simple/ macafm-next   # nightly