Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
492 commits
Select commit Hold shift + click to select a range
d06b73b
Add fixed eight-way MTP scheduler contract
davidtai Aug 9, 2026
f1d177c
Add request-local sampled MTP batch decisions
davidtai Aug 9, 2026
7985ea4
Install the Qwen 35B width-eight MTP lane
davidtai Aug 9, 2026
dfb4177
Add row-owned eight-way MTP decode
davidtai Aug 9, 2026
2ef3243
Serve independent requests through MTP cohorts
davidtai Aug 9, 2026
f6a5d7b
Route OpenAI concurrency through eight-way MTP
davidtai Aug 9, 2026
9da1554
Harden request-owned MTP batch state
davidtai Aug 9, 2026
1641707
Finish request-owned eight-way MTP serving
davidtai Aug 9, 2026
f8eaa9a
Use public response format name in batch errors
davidtai Aug 9, 2026
c3b5837
Report serial MTP lane under queued load
davidtai Aug 9, 2026
cc54f64
Make eight-way MTP sampling fast and exact
davidtai Aug 9, 2026
0513405
Merge branch 'pr-245' into overnight-mtp-batch-20260809
youssofal Aug 9, 2026
2cba82e
Strip mtp_batch routing token before the solo _run_generation fallthr…
youssofal Aug 9, 2026
e7fc5f8
Widen the B8/T2 BF16 geometry bound to 16/128 with the M5 Max receipt
youssofal Aug 9, 2026
928cfb9
Merge branch 'pr-239' into overnight-mtp-batch-20260809
youssofal Aug 9, 2026
f1e994e
Add MTP batch numerics profiles
davidtai Aug 9, 2026
f289e13
ar_batch: commit finished rows to the session bank
youssofal Aug 9, 2026
6858aef
Merge bankspike-20260809: ar_batch rows commit to the session bank
youssofal Aug 9, 2026
d99af06
ar_batch: bank the prompt-only row state at the first generation step
youssofal Aug 9, 2026
4688594
Merge bankspike: prompt-boundary bank commit
youssofal Aug 9, 2026
35a07b3
Finish MTP batch numerics profiles
davidtai Aug 9, 2026
231cdab
AR-batch: env-gated restore-miss diagnostics (MTPLX_BANK_RESTORE_DEBUG)
youssofal Aug 9, 2026
8e54a86
Merge branch 'bankspike-20260809' into overnight-mtp-batch-20260809
youssofal Aug 9, 2026
b77922e
Document MTP batch numerics selection
davidtai Aug 9, 2026
7affcb1
Document Qwen MTP concurrency mode
davidtai Aug 9, 2026
0dc5f90
Separate generic and Qwen concurrency docs
davidtai Aug 9, 2026
9dab69a
Make Qwen MTP batch launch self-contained
davidtai Aug 9, 2026
097a775
Key vLLM Metal cache by MLX ABI
davidtai Aug 9, 2026
8a10105
Merge branch 'pr-245-latest' into overnight-mtp-batch-20260809
youssofal Aug 9, 2026
b6e45bb
mtp_batch: machine-calibration env override for the BF16 geometry bound
youssofal Aug 9, 2026
f1206c7
Depth resolution: revive the measured-depth map and honor artifact de…
youssofal Aug 9, 2026
b3bed8e
mtp_batch: session-bank composite — boundary restore at cohort admiss…
youssofal Aug 9, 2026
346027a
Vendor the mlx-lm ArraysCache.advance() Metal buffer-object leak fix …
youssofal Aug 9, 2026
2e8813c
Compat gate: missing mtp_heads degrades to AR serving instead of refu…
youssofal Aug 9, 2026
7cadd74
serve: missing-MTP degrade now reaches the child argv
youssofal Aug 9, 2026
e1dc097
mtp_batch: per-row stats tell each row's own truth
youssofal Aug 9, 2026
a674774
registry: LFM2.5 + IQuest serve target-only AR; unsupported quant bit…
youssofal Aug 9, 2026
8702fef
mtp_batch: merge capacity follows logical offsets, not stale allocation
youssofal Aug 9, 2026
78913c9
registry: refuse trust_remote_code checkpoints honestly
youssofal Aug 9, 2026
e5b8a6c
gdn_capture: native three-row B3/T2 postconv kernel launches
youssofal Aug 9, 2026
c041506
mtp_batch: parameterize the fixed lane over cohort width {3, 8}
youssofal Aug 9, 2026
d1ece54
server: install both cohort widths, select the narrowest fitting lane…
youssofal Aug 10, 2026
ee9f95a
tests: width-3 coverage for driver, seal selection, install, and hooks
youssofal Aug 10, 2026
9b86b44
docs: qwen35b mtp_batch native cohort widths (B3/B8), drift and ident…
youssofal Aug 10, 2026
404d452
mtp_batch: selfcheck eager reference arm binds the lane's own width
youssofal Aug 10, 2026
03ded9d
server: sealed-width truth survives the envelope's observability re-a…
youssofal Aug 10, 2026
a96786d
server: copy sealed-width truth back into request observability post-…
youssofal Aug 10, 2026
73a2153
docs: width determinism live receipts and restore-lineage drift note
youssofal Aug 10, 2026
836f4c0
Merge b3-width-20260810: native B3 width bucket (1.72-1.85x per-lane …
youssofal Aug 10, 2026
e65ce29
tests: stub soc_temperature_c in the smart-fan hardware helper
youssofal Aug 10, 2026
78fd7fe
lfm2: verified think/tool grammar + llama-ar catalog lane
youssofal Aug 10, 2026
81bbee8
lfm2: serve-path fixes proven live — parser stamp, native tool prompt…
youssofal Aug 10, 2026
987cd30
server: operator/parent-resolved --reasoning-parser is authoritative;…
youssofal Aug 10, 2026
97354f3
tests: update qwen tools/thinking test to the operator-authoritative …
youssofal Aug 11, 2026
e0e8c65
release-prep: v2.6.0 version bump + CHANGELOG for the concurrency rel…
youssofal Aug 11, 2026
a004eca
fix(#247): lazy restores install fresh views, never the entry's own s…
youssofal Aug 11, 2026
dad1945
fix: solo penalty-bearing requests steer to the host lane instead of …
youssofal Aug 11, 2026
270102a
fix: a3b_mtp_batch installs the ArraysCache leak fix before capturing…
youssofal Aug 11, 2026
febb6f6
fix(#249): orphan-guard remainders defer until tool extraction decide…
youssofal Aug 11, 2026
d22259b
fix(qwen3_5_mtp): attach the MTP surface at the TextModel level (cher…
davidtai Aug 11, 2026
4000aa8
CHANGELOG: backfill the missing 2.5.4 section; add the four new fixes…
youssofal Aug 11, 2026
d612dc9
fix: ArraysCache installer preserves the replaced stock class; leak t…
youssofal Aug 11, 2026
04a2246
fix: 'mtplx serve --no-auth' parses at the public CLI and forwards to…
youssofal Aug 11, 2026
b58176c
fix temp-0 AR/MTP drift: align committed-history cold prefill partiti…
youssofal Aug 11, 2026
2d9eb77
CHANGELOG: temp-0 exactness fix entry for the 2.6.0 cycle
youssofal Aug 11, 2026
078e39e
serial sampling: device top-k support + device float32 mass, only k t…
youssofal Aug 11, 2026
5c0f466
CHANGELOG: serial sampling decode-speed recovery entry
youssofal Aug 11, 2026
01799bd
serial sampling: single-argpartition candidate superset with exact ti…
youssofal Aug 11, 2026
131f5b1
Release 2.6.0: concurrent speculative decoding, embeddings + rerank, …
youssofal Aug 11, 2026
c329013
docs: v2.6.0 release notes
youssofal Aug 11, 2026
16e1f71
Make Forge max-fan verification fail closed
youssofal Aug 12, 2026
a2db1f2
Add qwen3_8 model family: official sampler, reasoning effort levels, …
youssofal Aug 14, 2026
26ec4e5
Wire the Qwen3.8 inference contract through serve: xhigh effort, pres…
youssofal Aug 14, 2026
4cd7a52
App: Qwen3.8 launch family — turbo + official sampler, xhigh effort t…
youssofal Aug 14, 2026
364d98a
qwen3_8 serve fixes from first live contact: xhigh boot, truncated-th…
youssofal Aug 14, 2026
7c8335a
qwen3_8 drop-day calibration: draft-temp 0.6 family default, depth ca…
youssofal Aug 14, 2026
9dd0ea0
Qwen3.8-27B Bare Speed first-class on both surfaces + quickstart defa…
youssofal Aug 14, 2026
9f3d4d1
Session bank: postcommit re-render must use the request's reasoning e…
youssofal Aug 14, 2026
a1df3cd
Thread reasoning effort through the idle postcommit scheduler lane
youssofal Aug 14, 2026
9b983c0
Make local Qwen3.8 first-class without a broken public default
youssofal Aug 14, 2026
6335be9
Make OpenCode generation genuinely uncapped
youssofal Aug 14, 2026
98924f9
Qwen3.8 Optimized pair first-class: forge module_overrides lane + cat…
youssofal Aug 14, 2026
98edf43
Honor artifact depth defaults across profile mismatches
youssofal Aug 14, 2026
a7ccd06
Depth metadata resolution: preserve degrade pin and legacy no-metadat…
youssofal Aug 14, 2026
29e4e2b
Make Pi sessions truly uncapped and cache-addressable
youssofal Aug 14, 2026
33daf1a
Make medium Qwen3.8 reasoning the measured coding default
youssofal Aug 14, 2026
5a19a6f
Make Qwen3.8 controls first-class in the native app
youssofal Aug 14, 2026
3a36ff9
Measured peaks + Quality depth verdict from the gated slate
youssofal Aug 14, 2026
8ba0583
Prevent retired daemons from undoing the active Max fan lease
youssofal Aug 14, 2026
8281020
Compiled-verify to 32k + operator override key: dropday verify-wall c…
youssofal Aug 15, 2026
6f7c71a
Catalog size_bytes exact for the Qwen3.8 trio final artifacts
youssofal Aug 15, 2026
4d5cbc4
2.7.0.dev0: Qwen3.8 QA-bundle version for the dropday release candidate
youssofal Aug 15, 2026
4cdbf66
docs: v2.7.0 release notes
youssofal Aug 15, 2026
487fc80
2.7.0: stable version for the release bundle
youssofal Aug 15, 2026
93eed63
version.py 2.7.0: the app runtime floor reads mtplx --version, and th…
youssofal Aug 15, 2026
a466391
release notes: installed-app receipts for the trio
youssofal Aug 15, 2026
25be592
fix: don't build depth slider with a zero-width range
joshlacal Aug 14, 2026
96b6e1f
App: never build the context-window slider with a zero-width range
youssofal Aug 15, 2026
aed4128
mtplx pull: name the HF mirror knob when a download fails for a netwo…
youssofal Aug 15, 2026
881da8f
release notes 2.7.0: macOS 27 slider crash fix (credit @joshlacal, #2…
youssofal Aug 15, 2026
46b5d30
SSD cold tier: reconciliation walk is maintenance, never per-write or…
youssofal Aug 15, 2026
c388e34
Qwen 3.8: Optimized Speed default, full line-up on both surfaces, FP1…
youssofal Aug 15, 2026
1103088
Merge branch 'ssd-scan-fix-20260815' into codex/qwen38-27b-first-clas…
youssofal Aug 15, 2026
3ac1307
2.7.0 candidate: tests follow the Optimized Speed default; CHANGELOG …
youssofal Aug 15, 2026
14e366e
mtplx start: say it when the recommended default moved
youssofal Aug 15, 2026
8aacd83
tests: drop the unused DEFAULT_FP16_HF_MODEL_ID import (ruff F401)
youssofal Aug 15, 2026
affc545
Other people's Macs: absolute sysctl everywhere, no git shim from onb…
youssofal Aug 15, 2026
6289a0c
2.7.0 release notes: Qwen3.8 support
youssofal Aug 15, 2026
57369bd
Require in-product Powered by MTPLX attribution
youssofal Aug 15, 2026
7213fa7
WIP post-2.7.0 fixes (not in the 2.7.0 artifact): xhigh accepted on l…
youssofal Aug 15, 2026
deef84b
One reasoning-effort vocabulary, so xhigh stops bouncing back to medium
youssofal Aug 15, 2026
963b923
Bug fix release 2.7.1
youssofal Aug 15, 2026
c73d730
fix: keep vision towers through forge and repair the blind Qwen 3.8 p…
youssofal Aug 15, 2026
2aea0c9
fix: keep vision towers through forge and repair the blind Qwen 3.8 p…
youssofal Aug 15, 2026
d460500
fix(cli): stop the serve wrapper from clobbering env-supplied KV quan…
youssofal Aug 16, 2026
6bf031d
fix(engine): enforce KV-quant policy at boot; fp32 scales; count gath…
youssofal Aug 16, 2026
208b766
fix(bridges): stop OpenCode/Pi plugins from deleting explicit client …
youssofal Aug 16, 2026
1d7be73
fix(server): /v1/messages protocol conformance — parallel tools, stre…
youssofal Aug 16, 2026
c6e33f5
fix(server): no-tools stream filter stops eating turns; code fences e…
youssofal Aug 16, 2026
d702c76
perf(server): SSE hot-path — loop-fed queue, constant envelope, casef…
youssofal Aug 16, 2026
5d78538
feat(engine): AR lane joins the session bank — warm prefix + honest s…
youssofal Aug 16, 2026
ec7febb
perf(engine): KV quantization becomes a real decode feature — memo + …
youssofal Aug 16, 2026
a3e311c
feat(server): per-request dynamic draft-sampler resolver (identity cu…
youssofal Aug 16, 2026
3d85ce7
feat(server): /v1/completions echo+logprobs prompt scoring — the KL lane
youssofal Aug 16, 2026
9c3871b
feat(telemetry): surface kv-quant memo and kernel counters in mtplx_s…
youssofal Aug 16, 2026
8555317
feat(telemetry): resolved draft temperature in per-response mtplx_stats
youssofal Aug 16, 2026
8e8ab7b
docs: benchmarking guide — stats contract, uncapped accuracy, KL lane…
youssofal Aug 16, 2026
a0ddb4f
fix(stats): draft_time_s becomes a decode-only bucket in generate_mtpk
youssofal Aug 16, 2026
1b638eb
test(server): golden-file request-observability matrix - Phase 6.1 sa…
youssofal Aug 16, 2026
2013055
fix(session-bank): lane-1 near-prefix restore forwards stable_prefix_…
youssofal Aug 16, 2026
728a272
feat(session): committed-think canonicalization — restores track the …
youssofal Aug 16, 2026
37b2ad6
fix(session): canonicalization outcome rides template_observability
youssofal Aug 16, 2026
4304b46
refactor(server): RequestPolicy extraction — one prologue, three endp…
youssofal Aug 16, 2026
b513fc5
refactor(server): canonical stop-path generation envelope (Phase 6.2)
youssofal Aug 16, 2026
f6a1c0a
profiles: no silent sustained anywhere for the flagships — per-model …
youssofal Aug 16, 2026
108051b
identity: resolve model family from the artifact, not the path string…
youssofal Aug 16, 2026
7e4a306
Release 2.7.2: stale-pull corruption fix + Qwen 3.8 vision repair
youssofal Aug 16, 2026
e3f918b
descriptors: boundary-guard the qwen3.8 family marker; artifact prove…
youssofal Aug 17, 2026
83c170d
runtime hygiene: honest AR timing, late-bound env reads, recursive we…
youssofal Aug 17, 2026
43e1641
discover: every MTPLX-named repo surfaces; app 'auto' hands profile o…
youssofal Aug 17, 2026
bc2db4e
server: benchmark-harness API contracts — KL arrays, over-context 400…
youssofal Aug 17, 2026
78f0dbd
cli: quickstart/start never silently sustained — Auto wizard, suite/t…
youssofal Aug 17, 2026
e2e7c32
gate polish: attribution stops double-counting the MTP sidecar; CLI d…
youssofal Aug 17, 2026
5b7437a
docs: benchmarking guide is receipt-true against the branch (F17 docs…
youssofal Aug 17, 2026
055a767
kv-quant: un-invert the memory feature — offset-sized q8 mirror, no q…
youssofal Aug 17, 2026
63613a6
draft sampling: telemetry equals engine reality everywhere — the vari…
youssofal Aug 17, 2026
0a4efc2
runtime truth: warmup out of measured rows, degradation recorded with…
youssofal Aug 17, 2026
835a9fd
server: bounded commit-wait, truthful stream endings, capped bench pa…
youssofal Aug 17, 2026
5fe09fb
tail sweep: no surface stamps sustained for a flagship, config values…
youssofal Aug 17, 2026
92a73ee
session canonicalization hardened: the gate can't lie, postcommit fin…
youssofal Aug 17, 2026
211ce3a
tests: session_bank env caps drops the module reload (F41 — same clas…
youssofal Aug 17, 2026
25fdc68
changelog: the 2.8 charlatan-defensibility campaign, entry by entry f…
youssofal Aug 17, 2026
d8fdac3
session: the ~38k committed-frontier freeze is dead; tool-stream prea…
youssofal Aug 17, 2026
ff69905
app: correct the Bare-Speed draft-temp comment attribution (0.6 was t…
youssofal Aug 17, 2026
e702038
web ui: label the max-tokens cap as this server's context window, not…
youssofal Aug 17, 2026
d0901cf
serve: network sharing that works on the first try (Parallels/LAN)
youssofal Aug 17, 2026
d079bc5
Merge branch 'dominion-p8-20260816' into release-2.8.0
youssofal Aug 17, 2026
fd96e2a
release-night QA fix wave: stream/non-stream text parity, ar_batch st…
youssofal Aug 17, 2026
e8fe24e
stream trim: drop the pre-tool-call separator riding the markup chunk…
youssofal Aug 17, 2026
f4fc190
changelog: scope the stream-parity claim to what ships (tool-call tra…
youssofal Aug 17, 2026
17964b7
Merge branch 'dominion-p8-20260816' into release-2.8.0
youssofal Aug 17, 2026
fa33ac7
Release 2.8.0: honest numbers, warm agentic sessions, first-try netwo…
youssofal Aug 17, 2026
5731dfc
Merge pull request #221 from PhilipJohnBasile/agent/issue-202-daemon-…
youssofal Aug 17, 2026
ae4b7d7
Merge branch 'dominion-p8-20260816' into release-2.8.0
youssofal Aug 17, 2026
3861718
app: precise provenance outranks name markers; coarse arch stays a fa…
youssofal Aug 17, 2026
cc94285
Merge remote-tracking branch 'origin/main' into release-2.8.0
youssofal Aug 17, 2026
eb37e48
vision: session frontiers never commit for image histories
youssofal Aug 17, 2026
6f9b0cc
Merge branch 'dominion-p8-20260816' into release-2.8.0
youssofal Aug 17, 2026
7d48231
Release 2.8.1: vision session frontier hotfix
youssofal Aug 17, 2026
8d2877e
version: display banner reads 2.8.1
youssofal Aug 17, 2026
5f11708
goldens: dashboard progress overhead keys are timing-optional
youssofal Aug 17, 2026
f4296de
2.8.2: kill the every-start re-tune loop, honor wizard model picks, s…
youssofal Aug 17, 2026
0365e6b
docs: v2.8.2 release notes
youssofal Aug 17, 2026
f52f9be
mistakes: tune-state key drift lesson (shared constructor + parity te…
youssofal Aug 17, 2026
dc57e79
2.8.3: kill the every-chat stream freeze (candidate-gated F35 holdbac…
youssofal Aug 18, 2026
7cb3237
2.8.3 gates: uncapped-stream cadence pillar gate, changelog, mistakes…
youssofal Aug 18, 2026
3aa5ffc
2.8.3: version bump, changelog date, release notes
youssofal Aug 18, 2026
d2096d4
tests: turbo ladder contract pins the 2.8.3 shallow product default
youssofal Aug 18, 2026
4396a66
app 2.8.3: kill O(transcript)-per-frame rendering — the felt-speed ha…
youssofal Aug 18, 2026
2ff126e
app 2.8.3: LazyVStack transcript + per-pass sizing neutralization — b…
youssofal Aug 18, 2026
40f6df6
app 2.8.3: cache the sizing-tuner debug gate (env dict rebuilt per co…
youssofal Aug 18, 2026
65b83a3
app 2.8.3: table renderer that cannot overlap + activity-proportional…
youssofal Aug 18, 2026
61a0333
mistakes: LaunchServices duplicate-bundle roulette lesson (verify res…
youssofal Aug 18, 2026
124d61f
app: kill the blank-transcript regression, plain-text thinking, tuner…
youssofal Aug 18, 2026
68bd449
engine: stream-cadence fixes — decoder max-hold escape, emit-before-b…
youssofal Aug 18, 2026
2479075
mistakes: three lessons from the founder-retest night
youssofal Aug 18, 2026
772d0b5
docs: 2.8.3 round-two entries — blank transcript, plain thinking, str…
youssofal Aug 18, 2026
5201db8
app: kill the per-turn animation leak and late-phase sizing re-arms
youssofal Aug 18, 2026
7b25053
docs: changelog accuracy — per-turn animation leak wording, engine-ru…
youssofal Aug 18, 2026
d5e3a54
app+server: kill the interaction-starved stutter, arbitrate user scro…
youssofal Aug 18, 2026
052f4f3
docs+gate: round-three notes, two ledger lessons, reasoning-aware dec…
youssofal Aug 18, 2026
992c97a
app: drop stray reference to the removed live-scroll flag
youssofal Aug 18, 2026
90d8c4b
gate: decay leg measures the engine, not the dice — median-of-3 token…
youssofal Aug 18, 2026
e5379aa
MTPLX 2.9.0
youssofal Aug 20, 2026
5a812f0
Rewrite the 2.9.0 release notes
youssofal Aug 20, 2026
ecb4560
app: route pack updates through models --update
youssofal Aug 20, 2026
08d577d
app shell: route pack-update state through the content projection
youssofal Aug 20, 2026
2b0360c
Fix model updates for duplicate legacy pack layouts
youssofal Aug 20, 2026
f5aa3ca
coding-usability: OpenCode+Pi reasoning contract, managed thinking co…
youssofal Aug 22, 2026
2391772
fix(paged-kv): capacity derives from allocated pages, never a stompab…
youssofal Aug 22, 2026
dbdecef
fix(shutdown): park the model-owner thread and clear mlx streams at e…
youssofal Aug 22, 2026
832f50c
fix(draft-sampler): stamp/family owns draft sampling — kill stale tar…
youssofal Aug 22, 2026
d895a86
fix(cache): one segmentation policy per encode — kill the agent-lane …
youssofal Aug 22, 2026
34f5769
fix(server): kill the postcommit-starvation spiral (preserve echo-car…
youssofal Aug 22, 2026
319a335
feat(metrics): flight recorder + mtplx trace — first-class session di…
youssofal Aug 22, 2026
7281636
refine(metrics): batch-drained flight writer + first-class MTP accept…
youssofal Aug 22, 2026
ff6420a
fix(lanes): close the Pi app cap + orphaned extension and give Hermes…
youssofal Aug 22, 2026
bd44215
MTPLX 2.9.1
youssofal Aug 22, 2026
1d70898
changelog: record the model-update fixes 2.9.1 delivers to pip/brew u…
youssofal Aug 22, 2026
4007848
fix(exactness): honest packed-concats gate + bitwise fused post-norm …
youssofal Aug 22, 2026
7f983d3
night wave: repetition stop on every lane, honest bench profile, gree…
youssofal Aug 22, 2026
c4bea3e
fix(forge): decide the MTP norm convention per tensor set, never per …
youssofal Aug 22, 2026
50b2241
fix: vision rows survive near-prefix restores; installer appends thro…
youssofal Aug 22, 2026
b5e6e86
fix(flight): non-streaming requests get sink-driven samples
youssofal Aug 22, 2026
cc42a07
trio: pre-bind the greedy-chain eligibility outside the decode loop
youssofal Aug 22, 2026
d55407f
guard(runtime): refuse a +1.0 double-shifted trunk at load (#306)
youssofal Aug 22, 2026
7ce3718
docs: warn against embedding absolute-gain mtp.* keys in trunk shards…
youssofal Aug 22, 2026
84fc66e
feat(session): marathon postcommit protection, default OFF (chess-gau…
youssofal Aug 22, 2026
0c5eeb9
fix(batch): literal-repetition stop for width>=2 MTP cohorts (#311 cl…
youssofal Aug 22, 2026
0a8b00c
feat(headcal): draft-confidence trace — p(drafted) vs accept outcome …
youssofal Aug 22, 2026
eed33d8
feat(headcal): confidence-gated draft width — MTPLX_DRAFT_CONFIDENCE_…
youssofal Aug 22, 2026
e5913fc
feat(headcal): confidence histograms — bucket shape for the gate-vs-d…
youssofal Aug 22, 2026
ca60e73
feat(fusion): port #316 load-time GDN/attn/MLP projection fusion (grz…
youssofal Aug 23, 2026
bdc6cb3
feat(kernels): crossrow wide verify QMV (arena E120 port) — experimen…
youssofal Aug 23, 2026
7c7cb81
feat(trio): default-ON below a 12288-token context fence (#313/#315c1…
youssofal Aug 23, 2026
834b9f7
fix(nax): M=5 4-bit verify falls through to stock (padded lanes measu…
youssofal Aug 23, 2026
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
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
36c9f50
Add configurable model storage and external MTP support
Aug 29, 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/
Loading