Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
718 commits
Select commit Hold shift + click to select a range
2558a93
fix(server): keep the default request JSONL content-free (#326)
youssofal Aug 24, 2026
ac09125
fix(forge): never blind-shift MTP norm gains by +1.0 — decide the con…
youssofal Aug 24, 2026
3419d7f
fix(server): multimodal turns are never retry pollution — stop droppi…
youssofal Aug 24, 2026
bfac70f
fix(bench): depth-sweep harness honors --depths/--seed/--generation-m…
youssofal Aug 24, 2026
8cf3a28
fix(dashboard): show the real chip on the Hardware card; correct the …
youssofal Aug 24, 2026
aff4a98
fix(app): write the PATH line through a symlinked ~/.zshrc instead of…
youssofal Aug 24, 2026
3e17972
fix(kernels): fp16 fused_add_rmsnorm takes the exact 1024-lane dispat…
youssofal Aug 24, 2026
1877d52
capture: persist exact completion token ids on all three lanes (PR #3…
youssofal Aug 24, 2026
0833c7b
forge: honor quantize:false module overrides (PR #281 by @shiftedx)
youssofal Aug 24, 2026
f694754
app: convert <br> variants to newlines in markdown table cells (PR #2…
youssofal Aug 24, 2026
95475ae
server: honor MTPLX_ACTIVE_READ_COMPACT_THRESHOLD_CHARS on the plain …
youssofal Aug 25, 2026
fe5ae3f
server: the serving endpoints are passthrough by default (#282)
youssofal Aug 25, 2026
4e788e0
pi: sync never clobbers user edits; the extension respects ownership …
youssofal Aug 25, 2026
6d1d639
Merge branch 'night-20260822' into release-292-staging-20260825
youssofal Aug 25, 2026
4d1ba27
merge fixups: forge tensors dataflow, bench depth/seed via shared hel…
youssofal Aug 25, 2026
60a1c61
test: isolate os.environ in the bench depth-sweep flag tests
youssofal Aug 25, 2026
caf9000
test: pin the unified #301 contract (no shift without the set-level d…
youssofal Aug 25, 2026
6cfb0b1
app: stop exporting the coding-agent compaction battery (#282)
youssofal Aug 25, 2026
e4f2372
docs: add HISTORY.md — the dated record of MTP on Apple Silicon
youssofal Aug 24, 2026
f112b39
cli: stop exporting the coding-agent compaction battery (#282)
youssofal Aug 25, 2026
bbc6742
MTPLX 2.9.2
youssofal Aug 25, 2026
3344ac2
perf(kernels): packed-GQA split-KV verify extends q_len 4 -> 8 (D4/D5…
youssofal Jul 21, 2026
282f858
feat(draft): FR-Spec pruned draft vocab prototype — device-core-scope…
youssofal Aug 25, 2026
512646b
frspec: stderr diagnostics on install + core-swap decision
youssofal Aug 25, 2026
65b1a91
kernel: QGROUPS wide-QL packed verify (5-16) + route env MTPLX_GQA_PA…
youssofal Aug 25, 2026
61b5ed9
kernel: template-constant NQ_LAST/QGROUPS; route grouped at QL>=7 (ba…
youssofal Aug 25, 2026
2f39486
route: three-way sweep map — grouped QL7-8/10-16, stock QL9, bank2 <=6
youssofal Aug 25, 2026
347fb5d
kernel v3: mixed 4+5/4+6 tail groups — QL9 61.1ms @71k (-27% vs stock…
youssofal Aug 25, 2026
5f84d4e
frspec: legacy-lane wiring — global swap under MTPLX_FRSPEC_LEGACY + …
youssofal Aug 25, 2026
177d87b
ccopy: block-round profiler (MTPLX_CCOPY_PROF) — receipts for the com…
youssofal Aug 25, 2026
9568e4d
ccopy: bank-routed copy blocks (MTPLX_CCOPY_BANK_ROUTE) — cap ladder …
youssofal Aug 25, 2026
1a21e0e
kernels: q8/q4 dequant-in-flight packed GQA variant (exact 21/21) — r…
youssofal Aug 25, 2026
a8b3480
kernels: quant kernel final form (v2 restored; v3 inline-V falsified …
youssofal Aug 25, 2026
2010018
telemetry: MTPLX_DELTA_TELEMETRY — correction-rank-in-draft-candidate…
youssofal Aug 25, 2026
7d19c7b
kernels: v5 transposed-bank quant kernel (Pro recipe; exact 21/21; 0.…
youssofal Aug 25, 2026
2e0b2e1
Do not read the early tool-call cancel as a foreign cancel
Tavernari Aug 25, 2026
e07224a
test: deterministic repro for the early tool-call cancel race (#343)
youssofal Aug 26, 2026
a5e92a6
hyper H0: singleton chassis — --scheduler-mode hyper rides the untouc…
youssofal Aug 26, 2026
2f0a2b3
hyper H0: CPU-safe test battery + concurrency docs
youssofal Aug 26, 2026
f7b98b5
hyper H0: request-capture outcome mirrors the hyper_singleton lane
youssofal Aug 26, 2026
e244d35
kv-quant 0.3: route q4 through the packed-quant kernel via a head-maj…
youssofal Aug 26, 2026
6714e00
ccopy: bank-route v2 — native-length extended-window dispatch (MTPLX_…
youssofal Aug 26, 2026
c170cd8
kernels: TensorOps (NAX) wide-M tail-causal SDPA — first working M5 t…
youssofal Aug 26, 2026
93b6704
nax-tile v2: register-resident softmax + M<=64 — BEATS the scalar wid…
youssofal Aug 26, 2026
caef69b
merge H0 hyper chassis (scheduler-mode hyper, admission gate, width s…
youssofal Aug 26, 2026
d98558c
kv-quant 0.4: compiled-verify bank promotes quantized paged caches
youssofal Aug 26, 2026
990e0ce
route: MTPLX_NAX_TILE_ROUTE — nax-tile verify attention for q_len>=6 …
youssofal Aug 26, 2026
29e6e2e
tests: pin _static_blocks ceiling/clamp behavior (compiled-bucket sha…
youssofal Aug 26, 2026
9c041f1
tests: retarget the two stale q4/promotion contract tests at the new …
youssofal Aug 26, 2026
d7a848b
q4 envelope: fail closed outside D=256 (D=128 nibble path deviates fr…
youssofal Aug 26, 2026
1ea8c36
merge q4 zero-loss package: q4 kernel route via quantized bank + comp…
youssofal Aug 26, 2026
a1e4e2e
merge ccopy bank-route v2: native-length extended-window dispatch (MT…
youssofal Aug 26, 2026
6035e59
adaptive dtemp: acceptance-EMA draft-temperature controller (MTPLX_AD…
youssofal Aug 26, 2026
a82ffd5
telemetry: MTPLX_FORKEV_TELEMETRY — margin-triggered fork-EV shadow s…
youssofal Aug 26, 2026
4ae737e
tests: fork-EV shadow accounting — synthetic accept/reject streams pi…
youssofal Aug 26, 2026
ed88e35
adaptive dtemp: Schmitt re-arm on the raise trigger + CPU test batter…
youssofal Aug 26, 2026
22436c4
merge adaptive dtemp controller (MTPLX_ADAPTIVE_DTEMP, default off; P…
youssofal Aug 26, 2026
5f581fe
forkev: extended-window estimator + unconditioned anchor (deepest-for…
youssofal Aug 26, 2026
06e7583
tests: live fork-EV glue proof through real generate_mtpk (CPU script…
youssofal Aug 26, 2026
7ea8f48
q4 adapter: rename public bits -> kv_bits — mlx-lm's SDPA duck-types …
youssofal Aug 26, 2026
fb5d534
merge fork-EV shadow telemetry (MTPLX_FORKEV_TELEMETRY, default off; …
youssofal Aug 26, 2026
49183a5
nax-tile: opt-in MTPLX_NAX_TILE_BLOCKS split-KV block cap (partial-wr…
youssofal Aug 26, 2026
9ffbb1c
server: surface packed-route bail counters in request log + full warm…
youssofal Aug 26, 2026
27f4a05
profiles: make the dense-decode ceiling and sustained layout operator…
youssofal Aug 26, 2026
aaf75fe
generation: MTPLX_SUSTAINED_DENSE_DECODE_MAX_CONTEXT=auto — memory-aw…
youssofal Aug 26, 2026
7444323
attention_split: MTPLX_ROUTE_DEBUG — one line per layer naming the ta…
youssofal Aug 26, 2026
755e200
route debug: 8 lines/layer + capacity (warmup consumed the 2-line bud…
youssofal Aug 26, 2026
70101bd
cache_state: count TensorOffset paged adapters in tail_owned_attentio…
youssofal Aug 26, 2026
c66b8d1
2pass-paged dynamic-offset kernel: fix DOA compile + threadgroup clam…
youssofal Aug 26, 2026
9a846fa
cache_state: local mx import in the elide guard (module has no top-le…
youssofal Aug 26, 2026
0fc22a2
generation: announce the auto dense-decode ceiling resolution once (d…
youssofal Aug 26, 2026
8c4f440
Merge hyper-20260826: decode-cliff fix, KV-quant repair, observabilit…
youssofal Aug 26, 2026
802ef04
MTPLX 2.9.3: release deltas — auto dense ceiling default, mlx 0.32.2 …
youssofal Aug 26, 2026
9ea6f1c
release QA fixes: restore D3 public depth cap, fix 0-d paged-kernel o…
youssofal Aug 26, 2026
f726c8e
memory_plan: machine-aware commitments-vs-caches planner (issue #305 P1)
youssofal Aug 26, 2026
f9a47c6
memory governor P2: the plan drives the serving defaults (issue #305)
youssofal Aug 26, 2026
348699a
memory governor P3: reactive hardening (issue #305 / #348)
youssofal Aug 26, 2026
ccffc96
memory governor P4: streaming SSD spill — durability for the excluded…
youssofal Aug 26, 2026
e05b0c4
memory governor P5: the app shows the guard, not just the number (#305)
youssofal Aug 26, 2026
28b7803
memory governor P6: integration tests + the 48G-seat simulation pin
youssofal Aug 26, 2026
b4de649
changelog: memory governor + streaming SSD spill under [Unreleased]
youssofal Aug 26, 2026
c28328a
release notes: name the fabricated-cancel fix in 2.9.3 (#332, #343)
youssofal Aug 26, 2026
c5df8a8
release notes readable in dark mode — one shared light+dark template …
youssofal Aug 26, 2026
26cfd00
app: explicit Performance mode wins on every serving target (#325)
youssofal Aug 26, 2026
b5ea6c8
server: pre-first-token SSE keep-alive comments on every streaming en…
youssofal Aug 26, 2026
7c2e612
fix(nemotron-h): route official mtp_layers_block_type configs + hones…
youssofal Aug 26, 2026
99a8366
changelog: drop conflict remnant from the #358 pick
youssofal Aug 26, 2026
b4fbad1
app chat: in-flight turns are owned by their conversation — switching…
youssofal Aug 26, 2026
2f4d3f7
Unexecuted tool calls leave a visible truthful notice, never silence …
youssofal Aug 26, 2026
dd349b9
Fix #290: idle-persistence lane starvation + bounded SIGTERM flush fo…
youssofal Aug 26, 2026
03f3dc6
Constructable models always run: MTP becomes an accelerator, never a …
youssofal Aug 26, 2026
b36a294
App install-completeness stops demanding MTPLX branding (#359)
youssofal Aug 26, 2026
7c2e831
Flash-Next family-collision fences + honest not-cached hint
youssofal Aug 26, 2026
1335c3c
qwen4_exp: native MLX backend for Qwen3.8-Flash-Next — transformers-p…
youssofal Aug 27, 2026
38536a9
memory governor: derive dense KV bytes/token from the model config
youssofal Aug 27, 2026
9f48aba
qwen4_exp: ngram_sidecar flag — pack configs never construct the 51B …
youssofal Aug 27, 2026
8078722
qwen4_exp: shape-keyed dual packed-expert layouts (hub [E,2i,h] / tra…
youssofal Aug 27, 2026
5bc468e
qwen4_exp converter: end-to-end smoke fixes
youssofal Aug 27, 2026
c58a0c7
qwen4_exp: QD16 pread warm-up for n-gram sidecar gathers (MTPLX_NGRAM…
youssofal Aug 27, 2026
3605e9a
qwen4_exp: register qwen4_exp_text alias on both in-tree dispatch sur…
youssofal Aug 27, 2026
8526549
qwen4_exp: opt QSA attention out of generic SDPA rewrites
youssofal Aug 27, 2026
7175c19
qwen4_exp converter: QSA attention projections to 8-bit (recipe v1a)
youssofal Aug 27, 2026
c8fb577
preflight: exempt /opt/sovereign/ keeper from the benchmark-process c…
youssofal Aug 27, 2026
608fd15
preflight: the Claude app is the control plane, not a rogue process
youssofal Aug 27, 2026
dc05fac
qwen4_exp: stage n-gram rows before the step graph (kill the layer-1 …
youssofal Aug 27, 2026
6d5585c
qwen4_exp converter: --recipe bare (Bare Speed sibling)
youssofal Aug 27, 2026
4378a13
qwen4_exp: MTP head module + self-describing attach (unwired draft path)
youssofal Aug 27, 2026
ec23c27
qwen4_exp: ngram staging path census counters (engagement receipts fo…
youssofal Aug 27, 2026
66a1fa9
qwen4_exp: MTP head consumes its layer cache from the make_mtp_cache …
youssofal Aug 27, 2026
a7c1991
qwen4_exp: MTP runtime wiring — native draft head first-class in the …
youssofal Aug 27, 2026
be9cd18
qwen4_exp: LIVE speculative decode — registry promotion, family serve…
youssofal Aug 27, 2026
85028b6
qwen4_exp: family default draft-temperature 0.1 (measured: 56.9 vs 54…
youssofal Aug 27, 2026
6ba55ce
qwen4_exp: pipelined AR decode + compiled GDN runs — occupancy war wo…
youssofal Aug 27, 2026
70c3be3
profiles: allowlist the qwen4_exp lane env keys (AR_PIPELINE / COMPIL…
youssofal Aug 27, 2026
43e3d22
qwen4_exp: 128G safety + founder family-law corrections after the 08-…
youssofal Aug 27, 2026
6523bae
qwen4_exp: compiled runs for MTP verify widths (S<=4) + env-gated MoE…
youssofal Aug 27, 2026
376bb71
qwen4_exp: sanitize-time MoE gate+up fusion + fused hyper-read kernel…
youssofal Aug 27, 2026
543e223
serve: count the resident n-gram table in the Metal wired floor (qwen…
youssofal Aug 27, 2026
ad5434f
qwen4_exp: in-house fused expert-GLU decode kernels (env-gated) + sec…
youssofal Aug 27, 2026
bb3bbc5
Merge qa-sweep-20260826: Qwen3.8-Flash-Next native architecture + mem…
youssofal Aug 27, 2026
ee86e2f
test(app): align install-completeness failure copy assertion with the…
youssofal Aug 27, 2026
da748fe
tests: pin the constructable-models registry contract (post-merge ful…
youssofal Aug 27, 2026
88ba9a3
registry: qwen4-next recognition no longer hinges on MTP markers; pur…
youssofal Aug 27, 2026
a2aabae
forge verify --stamp: in-place first-load smoke contract + family sam…
youssofal Aug 27, 2026
a983fc5
catalog: Qwen3.8 Flash-Next Bare/Optimized Speed first-class in app +…
youssofal Aug 27, 2026
e7e6149
forge verify: family-serve rows lane for backends the tune instrument…
youssofal Aug 27, 2026
fb5b911
catalog: Flash-Next subtitles follow the 27B house conventions (found…
youssofal Aug 27, 2026
5b22681
serve/tune/bench children run with -P: the caller's cwd can no longer…
youssofal Aug 27, 2026
b1e73d4
changelog: Flash-Next day-0, forge verify --stamp, -P cwd-shadow fix …
youssofal Aug 27, 2026
e6ee218
release notes 2.9.3: Flash-Next day-0 + memory governor sections, ful…
youssofal Aug 27, 2026
f78198d
cold tier: size-capped spill refusals speak once per session (48G-sim…
youssofal Aug 27, 2026
4c9964f
connect opencode: actually write the config (--model-id was print-onl…
youssofal Aug 27, 2026
ace1121
changelog: connect opencode config-write fix
youssofal Aug 27, 2026
d8443a1
qwen4_exp: QSACache joins the cache contract — fixes the OpenCode bro…
youssofal Aug 27, 2026
aac5a51
serve: family contracts reach the server descriptor — depth ceiling +…
youssofal Aug 27, 2026
340585a
generation: MTPLX_DEFER_REPAIR_EVAL — leave the post-rejection repair…
youssofal Aug 27, 2026
9542590
qwen4_exp: layer-owned capture-commit — repair-free speculative rollb…
youssofal Aug 27, 2026
3e7d060
serve: capture-commit is the qwen4_exp family default (receipts: roun…
youssofal Aug 27, 2026
9eacc43
tests: serve spawn-shape pin includes the load-bearing -P (5b226817)
youssofal Aug 27, 2026
1256beb
tests: qwen4_exp fixtures restore the default device — the CPU pin le…
youssofal Aug 27, 2026
2dae29f
qwen4_exp: fused hyper-read v3 — two dispatches, kernel-private 8-bit…
youssofal Aug 27, 2026
5842eb8
qwen4_exp: capture-commit refusals announce their reason (first 3 per…
youssofal Aug 27, 2026
65b0f53
serve: qwen4_exp coerces qwen3-next structure verify strategies to 'b…
youssofal Aug 27, 2026
c33fdfd
kernels: moe_glu_decode carries the pack's group size (g32/g64 forges)
youssofal Aug 27, 2026
75814e4
qwen4_exp: GDN in_proj fusion (4 GEMVs -> 1, bit-exact) + family spee…
youssofal Aug 27, 2026
7e27259
kernels: fused GDN output candidate (SigmoidRMSNormGated + out_proj, …
youssofal Aug 27, 2026
c0bedb7
qwen4_exp: wire fused GDN output behind MTPLX_FUSED_GDN_OUT — measure…
youssofal Aug 27, 2026
bfa76c1
serve: qwen4_exp defaults gain MTPLX_FUSED_GATE_UP (AR 56.1 -> 57.65 …
youssofal Aug 27, 2026
7a3c74e
qwen4_exp: QSA qkv shared-input merge (MTPLX_FUSED_QSA_QKV) — A/B/A w…
youssofal Aug 27, 2026
8cf5c98
qwen4_exp: fused GDN conv+silu+l2norm between the GEMVs — first confi…
youssofal Aug 27, 2026
188fa68
kernels: one-dispatch GDN step (conv+silu+l2norm + g/beta + delta + g…
youssofal Aug 27, 2026
321febd
qwen4_exp: turbo first-class — GDN one-dispatch step default ON (two-…
youssofal Aug 28, 2026
cf21f9f
qwen4_exp: verify-width fused conv+silu+l2norm (S<=6) — family defaul…
youssofal Aug 28, 2026
d6171d2
qwen4_exp: QSA decode gather lane (MTPLX_QSA_GATHER) — FALSIFIED at 2…
youssofal Aug 28, 2026
042be7f
qwen4_exp: QSA block-sparse flash-skip lane (MTPLX_QSA_FLASH, default…
youssofal Aug 28, 2026
a554833
qwen4_exp: streamed n-gram table is not weight — plan/bank/floor acco…
youssofal Aug 28, 2026
aac741e
dashboard: memory attribution counts the n-gram table only when resident
youssofal Aug 28, 2026
398f3a8
app tests: pin memory-plan decode incl. ngram_table_streamed_bytes (p…
youssofal Aug 28, 2026
dddefc2
server+family: qwen4_exp reasoning-effort parity, truthful cancel att…
youssofal Aug 28, 2026
95cd92d
app: Flash-Next through onboarding + full reasoning-effort surface pa…
youssofal Aug 28, 2026
2884a73
release: 2.10.0 — notes, changelog, version stamps, Flash-Next blessed
youssofal Aug 28, 2026
d362522
descriptors/server: reasoning family override requires model intent o…
youssofal Aug 28, 2026
6baa8cd
gitignore: .devspace local tool dir (release script refuses untracked…
youssofal Aug 28, 2026
fc9786d
catalog: pin Flash-Next size_bytes to published HF repo totals (2026-…
youssofal Aug 28, 2026
1d11340
coding-lane: Flash-Next preserve-by-default, agent-lane effort medium…
youssofal Aug 28, 2026
69c7ae3
app: Flash-Next first-class surfaces — overlay sampler 1.0, family la…
youssofal Aug 28, 2026
44e11c0
release: 2.10.0 notes rewritten from the full diff audit; onboarding …
youssofal Aug 28, 2026
1bd6284
app: shell-probe respects the hermetic-paths flag (fixes 19 fabricate…
youssofal Aug 28, 2026
c2060cf
coding-lane: long-generation decay guards + batched-lane context copy
youssofal Aug 28, 2026
a6c9299
release: 2.10.0 notes and changelog carry the decay guards and batche…
youssofal Aug 28, 2026
860cf22
app+server: acceptance panel survives missed frames and the warm ladder
youssofal Aug 28, 2026
c443155
release: notes and changelog carry the acceptance-panel fix
youssofal Aug 28, 2026
bafb616
server: warm ladder yields to live traffic and stops stamping the clock
youssofal Aug 29, 2026
2e198dc
generation: one-sync greedy draft read for confidence lanes
youssofal Aug 29, 2026
19371eb
context-copy: RAMP opt-in long-block + fuzzy re-anchor policy
youssofal Aug 29, 2026
4cc092c
qwen4_exp: QSA rows-gather lane for S>1 (verify widths)
youssofal Aug 29, 2026
a0ab49c
release: notes and changelog carry the four community-lane adaptations
youssofal Aug 29, 2026
2130bbe
qwen4_exp: rows-gather joins the family default lane set
youssofal Aug 29, 2026
abeae4e
app+engine: Flash-Next KV-quant policy states the architecture truth
youssofal Aug 29, 2026
b3e8161
release: QSA rows-gather graduates out of the experimental stays-off …
youssofal Aug 29, 2026
239ec04
release: 2.10.0 notes rewritten metrics-first and 27% tighter (founde…
youssofal Aug 29, 2026
549c077
release: cut self-narrating lead lines from the 2.10.0 notes
youssofal Aug 29, 2026
4235b9b
release: 2.10.0 notes lead with a before/after table; fragment senten…
youssofal Aug 29, 2026
3e56a82
release: table gains a change column and real before-figures from the…
youssofal Aug 29, 2026
510a940
release: drop the change column, percentages ride inside the 2.10.0 c…
youssofal Aug 29, 2026
e45e63f
release: table rows carry the receipted absolute tok/s pairs from the…
youssofal Aug 29, 2026
e5e498d
release: 16k row pulled from the table (bench-lane pair, not the turb…
youssofal Aug 29, 2026
0b4219a
release: 16k row restored with the turbo-register product pair (42.45…
youssofal Aug 29, 2026
997598c
release: 16k row shows the full upgrade delta (33.8 -> 46.6, +38%: ml…
youssofal Aug 29, 2026
ffa2736
release: short-context row uses tonight's temp-gated same-mlx medium …
youssofal Aug 29, 2026
a654737
release: founder sets the 2.10 short-context cell to 64.3 tok/s (+15%)
youssofal Aug 29, 2026
6b3a6b4
fix: Flash-Next coding-target sampler + OpenCode effort picker
youssofal Aug 29, 2026
68110bb
test: pin the two laws behind the Flash-Next mirror contract
youssofal Aug 29, 2026
6e3f126
fix: dynamic bank ceiling never evicts the live session's prefix chain
youssofal Aug 29, 2026
53320ba
release: changelog entry for the dynamic-ceiling live-session protection
youssofal Aug 29, 2026
49be544
fix: issue #384 — lone SSD write over the backlog budget admits when …
youssofal Aug 29, 2026
1a0b3ce
release: changelog entry for #384 SSD backlog admission
youssofal Aug 29, 2026
0267679
fix: dynamic-ceiling protection survives turns longer than the pin TTL
youssofal Aug 29, 2026
605a100
fix(app): memory banner claims shedding only when the guard ring show…
youssofal Aug 29, 2026
ac0386d
fix: SSD writer pause outlasts a coding turn (60->600s) + banner name…
youssofal Aug 29, 2026
f89e53e
fix: bank ceiling reserves the OBSERVED allocation spike, not a 3 GiB…
youssofal Aug 29, 2026
e4f4122
test: update stale pins to tonight's contracts (#384 lone-oversized a…
youssofal Aug 29, 2026
951dc41
fix: transient reserve capped at half the post-weights play
youssofal Aug 29, 2026
d868e88
fix: context-copy probation — small blocks until the acceptance EMA p…
youssofal Aug 29, 2026
2a4cc08
context-copy: batched lane carries the probation contract (parity wit…
youssofal Aug 29, 2026
c455582
server: greedy coupling keys on the effective target temperature (lau…
youssofal Aug 29, 2026
968bc0f
release: 2.10.0 notes cover the final night (writer pause, measured r…
youssofal Aug 29, 2026
f1a8e07
server: pressure attribution — WARNING+ ties blame the allocator, pro…
youssofal Aug 29, 2026
3a4937c
app: Live tile claims shedding only on an actual shed (banner contrac…
youssofal Aug 29, 2026
2d6784a
app: onboarding pack sizes in decimal GB (CLI catalog parity — the 10…
youssofal Aug 29, 2026
05edc64
cli: direct-generate lanes couple the draft greedy under a greedy tar…
youssofal Aug 29, 2026
22ce68d
test: quickstart/serve missing-cache pins isolate from a live daemon …
youssofal Aug 29, 2026
4cc75e8
fix: spill-sink encode yields to foreground instead of holding the 60…
youssofal Aug 29, 2026
793ffd5
fix: S=1 QSA decode gather gets its own opt-in env (MTPLX_QSA_GATHER_…
youssofal Aug 29, 2026
d12e80a
fix: remove-command containment guard + confirm, malformed-config res…
youssofal Aug 29, 2026
dfa991b
docs: 2.10.0 notes and changelog corrections — memory budget is env-o…
youssofal Aug 29, 2026
747fec4
cli: readline history, stdin piping, honest help surfaces, ask --reas…
youssofal Aug 29, 2026
757263d
docs: CLI section covers tonight's polish bundle (readline history, p…
youssofal Aug 29, 2026
d62e938
test: second stale pin on the duplicated --version form follows the c…
youssofal Aug 29, 2026
4ce9690
ci: fresh-venv smoke pins the 2.10.0 no-MTP contract (capability gap …
youssofal Aug 29, 2026
d9b1f84
feat(qsa): fused Metal kernels for large-query prefill & block-sparse…
Aug 29, 2026
a967fd9
fix(pi): advertise image input for vision-enabled packs (#328)
youssofal Aug 29, 2026
e27a91c
fix(exactness): greedy verify forwards route to stock kernels (t<=0)
youssofal Aug 29, 2026
7d0d159
feat(vision): native M-RoPE vision serving for Flash-Next (qwen4_exp)
youssofal Aug 30, 2026
0332e13
feat(qsa): 1M context support and static YaRN RoPE scaling for QSA ke…
Aug 30, 2026
8747d6f
fix(memory): honest QSA memory pricing + 507 refusal + sustained-pres…
youssofal Aug 30, 2026
0a8b63d
fix(pi): input merge upgrades only — engine vision wins, engine unkno…
youssofal Aug 30, 2026
a978a86
feat(qsa): tiled indexer scoring arm (MTPLX_QSA_SCORE_TILE_ROWS, opt-…
youssofal Aug 30, 2026
6eadc14
Merge branch 'pr397' into prefill-20260829-lightning
youssofal Aug 30, 2026
a21f3f9
feat(qsa): portable gathered prefill tier + engagement counters on th…
youssofal Aug 30, 2026
23c1e53
bench(qsa): ABBA prefill battery driver (fan-verified, die-temp-gated…
youssofal Aug 30, 2026
a52e6f7
fix(server): tools-declared first-turn reasoning-only stop repairs in…
youssofal Aug 30, 2026
9f0cf04
feat(qsa): NAX-gated auto default for the sparse prefill lane + lane-…
youssofal Aug 30, 2026
eacef63
fix(server): repair boundary + containment — tool markup stays with t…
youssofal Aug 30, 2026
d4616ef
Merge lightning-prefill campaign: QSA sparse prefill lane (PR #397 ad…
youssofal Aug 30, 2026
5127b3c
fix(app): self-healing runtime venv — prove imports before trusting, …
youssofal Aug 30, 2026
ae4637f
fix(memory,kernels): #400 — machine-scaled 96GB admission + G14 devic…
youssofal Aug 30, 2026
586d087
fix(telemetry): decode_tok_s no longer swallows session-restore overhead
youssofal Aug 30, 2026
8153a63
perf(session-bank): settle lazy snapshot views on the idle lane at pu…
youssofal Aug 30, 2026
b5fac4a
fix(session-bank): settle default OFF after phase-3 falsification + o…
youssofal Aug 30, 2026
b46696e
test(generation): AR decode-elapsed identity updated to the attributi…
youssofal Aug 30, 2026
6fe0e2d
release: 2.10.1 — notes, changelog, version stamps
youssofal Aug 30, 2026
557e637
test(memory-plan): pin the Metal-caps RAM detector in the seat harnes…
youssofal Aug 30, 2026
582c228
perf(qsa): multi-threadgroup scoring, quantized pooled keys, and deep…
Aug 31, 2026
226a832
fix(qsa): address Codex review feedback on MTP window, pooled key pad…
Aug 31, 2026
fc8e7be
fix(qsa): address Codex review feedback on sparse dequantization, inc…
Aug 31, 2026
09dda4f
fix(qsa): address Codex review feedback on pooled mirror caching, emp…
Aug 31, 2026
6e850b6
fix(generation): trim committed restores by actual cache history size…
Aug 31, 2026
372f63a
fix(qsa): address Codex review feedback on compiled parallel routing,…
Aug 31, 2026
a83fdab
fix(qsa): derive pooled f32 view consistently from quantized represen…
Aug 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ jobs:
wheel:
runs-on: macos-14
steps:
- uses: actions/checkout@v6.0.2
- uses: actions/setup-python@v6.2.0
- uses: actions/checkout@v7.0.1
- uses: actions/setup-python@v7.0.0
with:
python-version: "3.11"
- run: python -m pip install -U pip build
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ jobs:
no-mlx-smoke:
runs-on: macos-14
steps:
- uses: actions/checkout@v6.0.2
- uses: actions/setup-python@v6.2.0
- uses: actions/checkout@v7.0.1
- uses: actions/setup-python@v7.0.0
with:
python-version: "3.11"
- run: python -m pip install -U pip
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/hygiene.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
repository-hygiene:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6.0.2
- uses: actions/checkout@v7.0.1
- name: Install ripgrep (the scan's secret sweep uses rg)
run: sudo apt-get update -q && sudo apt-get install -y -q ripgrep
- run: scripts/hygiene_scan.sh
147 changes: 147 additions & 0 deletions .github/workflows/kernel-matrix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
name: kernel-matrix

# Real-hardware validation for the turbo Metal kernels. macos-14 runners are
# Apple Silicon M1 (7 GB RAM) — the exact GPU family the 2.0.1 turbo-default
# promotion must not break. Two jobs:
#
# 1. kernel-exactness: every turbo kernel lane x {bf16, fp16} x {4, 6, 8}-bit
# synthetic shapes vs stock MLX, plus the load-time selfcheck suite.
# No model download needed.
# 2. small-model-smoke: download the 4B q4 artifact (~3.3 GB, fits 7 GB RAM),
# boot `--profile turbo`, assert the selfcheck reports every engaged lane
# ok in /health, and run a short generation through the OpenAI API.

on:
workflow_dispatch:
push:
branches: [main]
paths:
- "mtplx/kernels/**"
- "mtplx/nax_verify.py"
- "mtplx/verify_kernels.py"
- "mtplx/kernel_selfcheck.py"
- "mtplx/packed_concats.py"
- "mtplx/gdn_capture.py"
- "tests/test_exactness_320_319.py"
- ".github/workflows/kernel-matrix.yml"

permissions:
contents: read

jobs:
kernel-exactness:
runs-on: macos-14
timeout-minutes: 30
steps:
- uses: actions/checkout@v7.0.1
- uses: actions/setup-python@v7.0.0
with:
python-version: "3.11"
- run: python -m pip install -U pip
- run: python -m pip install -e ".[dev]"
- name: Kernel + selfcheck unit suites
run: |
python -m pytest -p no:warnings \
tests/test_nax_verify.py \
tests/test_kernel_selfcheck.py \
tests/test_attention_split.py \
tests/test_exactness_320_319.py
- name: Selfcheck matrix (bf16/fp16 x 4/6/8-bit) on this GPU family
run: |
python - <<'EOF'
import json
import mlx.core as mx
import os
os.environ["MTPLX_NAX_VERIFY"] = "1"
os.environ["MTPLX_GQA_PACKED_SDPA"] = "1"
# #319: exercise the fused post-norm lane (bitwise-gated) in CI —
# it was silently skipped on every run before 2026-08-22.
os.environ["MTPLX_FUSE_POST_NORM_RESIDUAL"] = "1"
from mtplx.kernel_selfcheck import run_kernel_selfcheck
failures = []
for bits in (4, 6, 8):
for dtype in (mx.bfloat16, mx.float16):
report = run_kernel_selfcheck(dtype, bits, 64)
bad = {
lane: status
for lane, status in report["lanes"].items()
if status == "fallback"
}
tag = report["dtype"]
print(json.dumps({"bits": bits, "dtype": tag, **report["lanes"]}))
if bad:
failures.append((bits, tag, bad, report["dmax"]))
if failures:
raise SystemExit(f"kernel selfcheck failures on this hardware: {failures}")
print("all engaged lanes exact on", mx.device_info().get("architecture"))
EOF

small-model-smoke:
runs-on: macos-14
timeout-minutes: 45
steps:
- uses: actions/checkout@v7.0.1
- uses: actions/setup-python@v7.0.0
with:
python-version: "3.11"
- run: python -m pip install -U pip
- run: python -m pip install -e ".[dev,server]"
- name: Download the 4B q4 artifact
run: python -m mtplx.cli pull Youssofal/Qwen3.5-4B-MTPLX-Optimized-Speed
- name: Boot turbo, verify selfcheck + generate
run: |
python -m mtplx.cli serve \
--model Youssofal/Qwen3.5-4B-MTPLX-Optimized-Speed \
--port 18901 --profile turbo --yes > serve.log 2>&1 &
SERVER_PID=$!
for i in $(seq 1 120); do
sleep 5
if curl -s -m 2 http://127.0.0.1:18901/health > /dev/null; then break; fi
if ! kill -0 $SERVER_PID 2>/dev/null; then
echo "server died during startup"; cat serve.log; exit 1
fi
done
python - <<'EOF'
import json
import urllib.request

health = json.loads(
urllib.request.urlopen("http://127.0.0.1:18901/health", timeout=30).read()
)
selfcheck = health.get("kernel_selfcheck") or {}
assert selfcheck.get("ran") is True, f"selfcheck did not run: {selfcheck}"
fallbacks = {k: v for k, v in selfcheck.items() if v == "fallback"}
assert not fallbacks, f"kernel lanes fell back on this hardware: {fallbacks}"
print("selfcheck:", json.dumps(selfcheck))

body = json.dumps({
"model": "default",
"messages": [{"role": "user", "content": "Write a haiku about unit tests."}],
"max_tokens": 64,
"temperature": 0.6,
}).encode()
request = urllib.request.Request(
"http://127.0.0.1:18901/v1/chat/completions",
data=body,
headers={"Content-Type": "application/json"},
)
response = json.loads(urllib.request.urlopen(request, timeout=300).read())
message = response["choices"][0]["message"]
text = (message.get("content") or "") + (message.get("reasoning_content") or "")
assert len(text.strip()) > 10, f"incoherent/empty generation: {text!r}"
print("generation ok:", text[:120].replace("\n", " "))

snapshot = json.loads(
urllib.request.urlopen(
"http://127.0.0.1:18901/v1/mtplx/snapshot", timeout=30
).read()
)
latest = snapshot.get("latest") or {}
assert latest.get("generation_mode") == "mtp", latest
assert int(latest.get("verify_calls") or 0) > 0, latest
print("mtp engaged, verify_calls =", latest.get("verify_calls"))
EOF
kill $SERVER_PID || true
- name: Show server log on failure
if: failure()
run: cat serve.log || true
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
build-artifacts:
runs-on: macos-14
steps:
- uses: actions/checkout@v6.0.2
- uses: actions/checkout@v7.0.1
with:
ref: ${{ github.event.inputs.ref || github.ref }}
- name: Validate PyPI publish ref
Expand All @@ -38,7 +38,7 @@ jobs:
exit 1
;;
esac
- uses: actions/setup-python@v6.2.0
- uses: actions/setup-python@v7.0.0
with:
python-version: "3.11"
- run: python -m pip install -U pip build twine
Expand All @@ -65,6 +65,6 @@ jobs:
with:
name: dist
path: dist
- uses: pypa/gh-action-pypi-publish@v1.14.0
- uses: pypa/gh-action-pypi-publish@v1.14.2
with:
packages-dir: dist/
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -43,3 +43,4 @@ benchmark_outputs/
.webui_secret_key
.hf-home/
.claude/
.devspace/
Loading