mlx-bun 0.5.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (640) hide show
  1. package/README.md +1449 -109
  2. package/THIRD_PARTY_NOTICES.md +882 -0
  3. package/bin/mlx-bun.convert.mjs +4 -0
  4. package/bin/mlx-bun.fuse.mjs +4 -0
  5. package/bin/mlx-bun.generate.mjs +4 -0
  6. package/bin/mlx-bun.lora.mjs +4 -0
  7. package/bin/mlx-bun.mjs +13 -21
  8. package/bin/mlx-bun.server.mjs +4 -0
  9. package/bin/mlx-bun.upload.mjs +4 -0
  10. package/dist/web/app.js +9584 -0
  11. package/package.json +50 -53
  12. package/src/cli/ane-install.ts +76 -0
  13. package/src/cli/args.ts +179 -0
  14. package/src/cli/engine-entry.ts +68 -0
  15. package/src/cli/inference.ts +214 -0
  16. package/src/cli/job-entry.ts +97 -0
  17. package/src/cli/library-host.ts +117 -0
  18. package/src/cli/main.ts +57 -0
  19. package/src/cli/memory-engine.ts +163 -0
  20. package/src/cli/memory.ts +36 -0
  21. package/src/cli/mlx-lm-aliases.ts +309 -0
  22. package/src/cli/model-choice.ts +33 -0
  23. package/src/cli/model-selection.ts +84 -0
  24. package/src/cli/module-host.ts +11 -0
  25. package/src/cli/module-verbs.ts +50 -0
  26. package/src/cli/numerical-policy.ts +12 -0
  27. package/src/cli/perplexity.ts +89 -0
  28. package/src/cli/serve-host.ts +423 -0
  29. package/src/cli/serve-isolated.ts +217 -0
  30. package/src/cli/serve-options.ts +106 -0
  31. package/src/cli/serve-state.ts +205 -0
  32. package/src/cli/serve.ts +500 -0
  33. package/src/cli/served-model-host.ts +102 -0
  34. package/src/cli/server-entry.ts +148 -0
  35. package/src/cli/serving-unit.ts +177 -0
  36. package/src/{tui.ts → cli/terminal.ts} +13 -8
  37. package/src/cli/worker-adapters.ts +34 -0
  38. package/src/cli/worker-entry.ts +272 -0
  39. package/src/cli/worker-unit.ts +179 -0
  40. package/src/engine/adapter-operation.ts +26 -0
  41. package/src/engine/cache-services.ts +114 -0
  42. package/src/engine/completion.ts +39 -0
  43. package/src/engine/generation-gateway.ts +358 -0
  44. package/src/engine/index.ts +59 -0
  45. package/src/engine/kv-budget.ts +120 -0
  46. package/src/engine/media-preparation.ts +232 -0
  47. package/src/engine/model-binding.ts +24 -0
  48. package/src/engine/model-host.ts +513 -0
  49. package/src/engine/model-serving.ts +89 -0
  50. package/src/{serve → engine}/preparation.ts +7 -5
  51. package/src/{serve → engine}/session-completion-engine.ts +6 -6
  52. package/src/engine/telemetry.ts +109 -0
  53. package/src/hub/downloads.ts +116 -0
  54. package/src/jobs/db.ts +16 -7
  55. package/src/jobs/events.ts +29 -0
  56. package/src/jobs/executable.ts +5 -0
  57. package/src/jobs/host.ts +51 -0
  58. package/src/jobs/in-process.ts +55 -0
  59. package/src/{contracts/jobs.ts → jobs/protocol.ts} +7 -9
  60. package/src/jobs/runner.ts +150 -231
  61. package/src/jobs/service.ts +75 -0
  62. package/src/jobs/sse.ts +59 -23
  63. package/src/jobs/worker-memory.ts +46 -0
  64. package/src/jobs/worker-process.ts +163 -0
  65. package/src/jobs/worker-supervisor.ts +258 -0
  66. package/src/modules.ts +58 -0
  67. package/src/publishing/catalog-hub.ts +18 -0
  68. package/src/publishing/credentials.ts +31 -0
  69. package/src/publishing/upload.ts +37 -0
  70. package/src/residency/leased-adapters.ts +21 -0
  71. package/src/residency/local-records.ts +16 -0
  72. package/src/residency/model-residency.ts +405 -0
  73. package/src/residency/record-index.ts +28 -0
  74. package/src/residency/resident-estimate.ts +50 -0
  75. package/src/{anthropic.ts → server/anthropic.ts} +3 -81
  76. package/src/server/cache-routes.ts +36 -0
  77. package/src/{serve → server}/chat-request.ts +10 -10
  78. package/src/{serve → server}/chat-stage.ts +14 -14
  79. package/src/{client.ts → server/client.ts} +28 -2
  80. package/src/{serve → server}/completion-executor.ts +33 -41
  81. package/src/server/decision-body.ts +55 -0
  82. package/src/server/decision-routes.ts +134 -0
  83. package/src/server/decision-wire.ts +228 -0
  84. package/src/{serve → server}/discovery-routes.ts +25 -82
  85. package/src/{serve → server}/http.ts +25 -13
  86. package/src/{serve → server}/inference-request.ts +5 -5
  87. package/src/server/job-routes.ts +20 -0
  88. package/src/server/media-prompt.ts +63 -0
  89. package/src/server/memory-completion-client.ts +46 -0
  90. package/src/server/model-routes.ts +192 -0
  91. package/src/{serve → server}/openai-wire.ts +3 -2
  92. package/src/{serve → server}/pipeline.ts +1 -1
  93. package/src/server/prompt-builder.ts +13 -0
  94. package/src/server/prompt-contracts.ts +17 -0
  95. package/src/server/proxy-routes.ts +187 -0
  96. package/src/server/publishing-routes.ts +41 -0
  97. package/src/{serve → server}/request-plan.ts +6 -8
  98. package/src/{serve → server}/request-prep.ts +47 -50
  99. package/src/{serve → server}/responses-client.ts +30 -13
  100. package/src/{responses.ts → server/responses.ts} +12 -93
  101. package/src/server/routes.ts +205 -0
  102. package/src/server/start.ts +72 -0
  103. package/src/server/status-routes.ts +108 -0
  104. package/src/{serve → server}/text-completion-stage.ts +25 -4
  105. package/src/server/text-prompt.ts +12 -0
  106. package/src/{serve → server}/token-streams.ts +36 -38
  107. package/src/server/worker-routes.ts +311 -0
  108. package/src/storage/paths.ts +61 -0
  109. package/src/web/assets.ts +37 -0
  110. package/src/web/{src → browser}/api.ts +5 -23
  111. package/src/web/browser/chat-host.ts +17 -0
  112. package/src/web/browser/installed-panels.ts +6 -0
  113. package/src/web/browser/main.ts +55 -0
  114. package/src/web/browser/markdown.ts +279 -0
  115. package/src/web/browser/memory-panel.ts +9 -0
  116. package/src/web/browser/palette.ts +64 -0
  117. package/src/web/browser/protocol.ts +13 -0
  118. package/src/web/browser/shell.ts +467 -0
  119. package/src/web/{src → browser}/status.ts +32 -36
  120. package/src/web/build.ts +51 -0
  121. package/src/web/public/app.html +1054 -0
  122. package/src/web/{sw.js → public/sw.js} +4 -3
  123. package/src/web/{vendor → public/vendor}/hljs-theme.css +2 -2
  124. package/src/web/{vendor → public/vendor}/hljs.js +2 -2
  125. package/THIRD_PARTY_LICENSES.md +0 -51
  126. package/docs/README.md +0 -107
  127. package/docs/archive/hlg-sampling.md +0 -350
  128. package/docs/archive/investigations/audio-input-plan.md +0 -356
  129. package/docs/archive/investigations/benchmark-ledger-through-v0.4.0.md +0 -3617
  130. package/docs/archive/investigations/chunk-finetune-experiment.md +0 -84
  131. package/docs/archive/investigations/colibri-glm52-port.md +0 -1486
  132. package/docs/archive/investigations/colibri-oracle-pin.md +0 -1284
  133. package/docs/archive/investigations/curve-bisector-routing.md +0 -123
  134. package/docs/archive/investigations/decode-roofline-lookagain.md +0 -348
  135. package/docs/archive/investigations/diffusion-gemma-port.md +0 -602
  136. package/docs/archive/investigations/dspark-handoff.md +0 -224
  137. package/docs/archive/investigations/expert-offload-single-user-moe.md +0 -292
  138. package/docs/archive/investigations/faithful-l1-consolidation.md +0 -310
  139. package/docs/archive/investigations/hlg-sampling-investigation.md +0 -970
  140. package/docs/archive/investigations/indexshare-performance-spike.md +0 -357
  141. package/docs/archive/investigations/kernel-perf-review-2026-07.md +0 -171
  142. package/docs/archive/investigations/lab-build-journal.md +0 -157
  143. package/docs/archive/investigations/minicpm5-decode-megakernel.md +0 -489
  144. package/docs/archive/investigations/openjarvis-fit.md +0 -198
  145. package/docs/archive/investigations/openwiki-evaluation.md +0 -249
  146. package/docs/archive/investigations/optimization_plan.md +0 -346
  147. package/docs/archive/investigations/orpo-base-uf-experiment-and-directions.md +0 -120
  148. package/docs/archive/investigations/orpo-flash-cce-pin-leak.md +0 -167
  149. package/docs/archive/investigations/orpo-uf-testing-handoff.md +0 -126
  150. package/docs/archive/investigations/pareto-specialized-runtime-findings.md +0 -92
  151. package/docs/archive/investigations/pi-builtin-investigation.md +0 -308
  152. package/docs/archive/investigations/pre-colibri-stabilization.md +0 -329
  153. package/docs/archive/investigations/qwen38-27b-campaign-log.md +0 -1092
  154. package/docs/archive/investigations/segmented-backward-handoff.md +0 -148
  155. package/docs/archive/investigations/starter-model-port-handoff.md +0 -342
  156. package/docs/archive/investigations/steel-flash-cce-handoff.md +0 -489
  157. package/docs/archive/investigations/the-dreaming-handoff.md +0 -141
  158. package/docs/archive/investigations/trainer-validation-experiment.md +0 -173
  159. package/docs/archive/planning/chat-ui-vision-memory-first.md +0 -199
  160. package/docs/archive/planning/chat-ui-vision.md +0 -50
  161. package/docs/archive/planning/chunk-task-roadmap.md +0 -77
  162. package/docs/archive/planning/curve-sampler-research-plan.md +0 -331
  163. package/docs/archive/planning/journal.md +0 -316
  164. package/docs/archive/planning/memory-docs-and-dag-plan.md +0 -194
  165. package/docs/archive/planning/pi-integration-review.md +0 -178
  166. package/docs/archive/planning/release-notes-v0.0.10.md +0 -57
  167. package/docs/archive/planning/release-notes-v0.0.11.md +0 -239
  168. package/docs/archive/planning/release-notes-v0.0.12.md +0 -80
  169. package/docs/archive/planning/release-notes-v0.0.13.md +0 -77
  170. package/docs/archive/planning/release-notes-v0.0.9.md +0 -122
  171. package/docs/archive/planning/release-notes-v0.2.0.md +0 -49
  172. package/docs/archive/planning/release-notes-v0.3.0.md +0 -35
  173. package/docs/archive/planning/release-notes-v0.4.0.md +0 -45
  174. package/docs/archive/planning/release-notes-v0.5.0.md +0 -37
  175. package/docs/archive/planning/web-ui-pass-plan.md +0 -213
  176. package/docs/archive/planning/website-readme-pass-plan.md +0 -224
  177. package/docs/design/batching.md +0 -2054
  178. package/docs/design/decode-speed-program.md +0 -2404
  179. package/docs/design/dreaming-nightly-pipeline.md +0 -684
  180. package/docs/design/generic-model-support.md +0 -821
  181. package/docs/design/kv-cache.md +0 -993
  182. package/docs/design/orpo-training.md +0 -680
  183. package/docs/design/speculative-decoding.md +0 -2129
  184. package/docs/design/turboquant.md +0 -2225
  185. package/docs/design/unified-engine-frontier-plan.md +0 -1987
  186. package/docs/design/web-chat-redesign.md +0 -695
  187. package/docs/planning/PRODUCT_ROADMAP.md +0 -593
  188. package/docs/planning/ResearchTopics.md +0 -119
  189. package/docs/planning/public-readiness-handoff.md +0 -244
  190. package/docs/planning/public-readiness.md +0 -149
  191. package/docs/planning/video-series.md +0 -421
  192. package/docs/reference/benchmarks.md +0 -3587
  193. package/docs/reference/cli.md +0 -646
  194. package/docs/reference/distribution.md +0 -380
  195. package/docs/reference/environment.md +0 -494
  196. package/docs/reference/glossary.md +0 -39
  197. package/docs/reference/library-api.md +0 -688
  198. package/docs/reference/memory.md +0 -260
  199. package/docs/reference/models.md +0 -346
  200. package/docs/reference/server-api.md +0 -1945
  201. package/docs/reference/server-config.md +0 -973
  202. package/docs/reference/training.md +0 -462
  203. package/docs/reference/troubleshooting.md +0 -158
  204. package/src/admission-plan.ts +0 -18
  205. package/src/audio/audiotoolbox.ts +0 -112
  206. package/src/audio/conformer.ts +0 -655
  207. package/src/audio/decode.ts +0 -133
  208. package/src/audio/features.ts +0 -202
  209. package/src/audio/mic-capture.ts +0 -98
  210. package/src/audio/silero-vad.ts +0 -379
  211. package/src/audio/transcode.ts +0 -67
  212. package/src/audio/whisper-decode.ts +0 -774
  213. package/src/audio/whisper-fast.ts +0 -732
  214. package/src/audio/whisper-format.ts +0 -73
  215. package/src/audio/whisper-mel.ts +0 -185
  216. package/src/audio/whisper-timing.ts +0 -274
  217. package/src/audio/whisper-tokenizer.ts +0 -239
  218. package/src/audio/whisper-transcribe.ts +0 -410
  219. package/src/backends/mlx/assistant-target.ts +0 -46
  220. package/src/backends/mlx/autoregressive-draft-rows.ts +0 -120
  221. package/src/backends/mlx/autoregressive.ts +0 -129
  222. package/src/backends/mlx/batch-group.ts +0 -1874
  223. package/src/backends/mlx/cache-attachment.ts +0 -67
  224. package/src/backends/mlx/cache-layout.ts +0 -31
  225. package/src/backends/mlx/checkpoint-state.ts +0 -53
  226. package/src/backends/mlx/continuation-persistence.ts +0 -107
  227. package/src/backends/mlx/continuation-request.ts +0 -43
  228. package/src/backends/mlx/continuation.ts +0 -77
  229. package/src/backends/mlx/diffusion.ts +0 -39
  230. package/src/backends/mlx/draft-target.ts +0 -32
  231. package/src/backends/mlx/encoder-cache.ts +0 -25
  232. package/src/backends/mlx/evaluation.ts +0 -105
  233. package/src/backends/mlx/fill-append.ts +0 -58
  234. package/src/backends/mlx/fill-group.ts +0 -497
  235. package/src/backends/mlx/full-kv-row-append.ts +0 -32
  236. package/src/backends/mlx/full-kv-row-donor.ts +0 -54
  237. package/src/backends/mlx/full-transitioning-kv-rows.ts +0 -65
  238. package/src/backends/mlx/gateway-binding.ts +0 -174
  239. package/src/backends/mlx/graph.ts +0 -38
  240. package/src/backends/mlx/kv-codec.ts +0 -9
  241. package/src/backends/mlx/kv-maintenance.ts +0 -161
  242. package/src/backends/mlx/kv-tensor-rows.ts +0 -212
  243. package/src/backends/mlx/memory-client.ts +0 -189
  244. package/src/backends/mlx/methods.ts +0 -90
  245. package/src/backends/mlx/mixed-iteration.ts +0 -62
  246. package/src/backends/mlx/model-prompt.ts +0 -178
  247. package/src/backends/mlx/model-serving.ts +0 -80
  248. package/src/backends/mlx/paged-cache-codec.ts +0 -27
  249. package/src/backends/mlx/prefill-cohort.ts +0 -100
  250. package/src/backends/mlx/prefill-policy.ts +0 -26
  251. package/src/backends/mlx/prefill-rows.ts +0 -244
  252. package/src/backends/mlx/prefill.ts +0 -33
  253. package/src/backends/mlx/projected-context-rows.ts +0 -72
  254. package/src/backends/mlx/prompt-input.ts +0 -29
  255. package/src/backends/mlx/qwen-prompt-input.ts +0 -40
  256. package/src/backends/mlx/request-policy.ts +0 -20
  257. package/src/backends/mlx/request-state-policy.ts +0 -54
  258. package/src/backends/mlx/rollback.ts +0 -92
  259. package/src/backends/mlx/row-sampling.ts +0 -49
  260. package/src/backends/mlx/serial-executor.ts +0 -251
  261. package/src/backends/mlx/speculative-group.ts +0 -438
  262. package/src/backends/mlx/speculative-round.ts +0 -161
  263. package/src/backends/mlx/speculative.ts +0 -131
  264. package/src/backends/mlx/state-rows.ts +0 -104
  265. package/src/backends/mlx/state-views.ts +0 -46
  266. package/src/backends/mlx/target-layout-capability.ts +0 -35
  267. package/src/backends/mlx/text-engine.ts +0 -73
  268. package/src/backends/mlx/transitioning-kv-rows.ts +0 -173
  269. package/src/chat-template.ts +0 -382
  270. package/src/cli.ts +0 -3490
  271. package/src/config.ts +0 -399
  272. package/src/contracts/completion.ts +0 -16
  273. package/src/contracts/execution.ts +0 -70
  274. package/src/contracts/generation.ts +0 -103
  275. package/src/contracts/host.ts +0 -7
  276. package/src/contracts/object-cache.ts +0 -8
  277. package/src/contracts/pi-provider.ts +0 -30
  278. package/src/contracts/pi.ts +0 -261
  279. package/src/contracts/prefix-cache.ts +0 -33
  280. package/src/contracts/resources.ts +0 -25
  281. package/src/contracts/sampling.ts +0 -23
  282. package/src/contracts/scheduling.ts +0 -54
  283. package/src/contracts/tsconfig.json +0 -14
  284. package/src/dataset/generators.ts +0 -1087
  285. package/src/dataset/index.ts +0 -12
  286. package/src/dataset/job.ts +0 -81
  287. package/src/dataset/llm.ts +0 -71
  288. package/src/dataset/registry.ts +0 -528
  289. package/src/diffusion/diffusion-generate.ts +0 -507
  290. package/src/download.ts +0 -505
  291. package/src/embed.ts +0 -77
  292. package/src/engine/admission.ts +0 -59
  293. package/src/engine/cancellation.ts +0 -38
  294. package/src/engine/engine.ts +0 -56
  295. package/src/engine/execution-coordinator.ts +0 -70
  296. package/src/engine/execution-plan.ts +0 -64
  297. package/src/engine/execution-tasks.ts +0 -44
  298. package/src/engine/namespaced-cache.ts +0 -13
  299. package/src/engine/resources.ts +0 -53
  300. package/src/engine/scheduler.ts +0 -92
  301. package/src/engine/session.ts +0 -247
  302. package/src/eval/README.md +0 -130
  303. package/src/eval/ifeval.ts +0 -81
  304. package/src/eval/kl-prompts.ts +0 -29
  305. package/src/eval/kl.ts +0 -590
  306. package/src/eval/perplexity.ts +0 -164
  307. package/src/eval/quality-db.ts +0 -92
  308. package/src/eval/reference-logits.ts +0 -207
  309. package/src/eval/runner.ts +0 -124
  310. package/src/eval/score.ts +0 -49
  311. package/src/eval/tasks/bfcl.ts +0 -535
  312. package/src/eval/tasks/gsm8k.ts +0 -98
  313. package/src/eval/tasks/hashhop.ts +0 -139
  314. package/src/eval/tasks/humaneval.ts +0 -275
  315. package/src/eval/tasks/ifeval.ts +0 -525
  316. package/src/eval/tasks/mmlu.ts +0 -157
  317. package/src/eval/ultrafeedback.ts +0 -60
  318. package/src/evaldb.ts +0 -199
  319. package/src/expert-io.ts +0 -393
  320. package/src/expert-offload-build.ts +0 -77
  321. package/src/expert-offload.ts +0 -76
  322. package/src/expert-residency.ts +0 -1134
  323. package/src/expert-usage.ts +0 -415
  324. package/src/fill/echo-index.ts +0 -188
  325. package/src/fill/fill-session.ts +0 -463
  326. package/src/fill/proposal.ts +0 -68
  327. package/src/fill/schema-rows.ts +0 -506
  328. package/src/fill/tool-boundary.ts +0 -103
  329. package/src/fit.ts +0 -249
  330. package/src/generate.ts +0 -1352
  331. package/src/grammar.ts +0 -604
  332. package/src/harness-pi.ts +0 -184
  333. package/src/hf-push.ts +0 -628
  334. package/src/hub-rest.ts +0 -242
  335. package/src/index.ts +0 -63
  336. package/src/inference/denoising.ts +0 -17
  337. package/src/inference/draft-acceptance.ts +0 -41
  338. package/src/inference/draft-output.ts +0 -49
  339. package/src/inference/graph.ts +0 -33
  340. package/src/inference/prefill.ts +0 -45
  341. package/src/inference/rollback.ts +0 -7
  342. package/src/jobs/index.ts +0 -31
  343. package/src/jobs/job-entry.ts +0 -107
  344. package/src/jobs/task-client.ts +0 -19
  345. package/src/jobs/types.ts +0 -2
  346. package/src/kv-scheme.ts +0 -279
  347. package/src/kv-store.ts +0 -1135
  348. package/src/lab/README.md +0 -22
  349. package/src/lab/curve/curve-designer.html +0 -303
  350. package/src/lab/curve/curve-sampler.ts +0 -122
  351. package/src/lab/expert-trace/expert-trace.ts +0 -69
  352. package/src/lab/paged-kv/paged-attention.ts +0 -117
  353. package/src/lab/paged-kv/paged-kv-rows.ts +0 -111
  354. package/src/lab/paged-kv/paged-kv.ts +0 -336
  355. package/src/library.ts +0 -40
  356. package/src/lora.ts +0 -408
  357. package/src/md-modules.d.ts +0 -54
  358. package/src/media-fetch.ts +0 -442
  359. package/src/memory/article.ts +0 -558
  360. package/src/memory/chunk-validation.ts +0 -150
  361. package/src/memory/chunk.ts +0 -318
  362. package/src/memory/cluster.ts +0 -351
  363. package/src/memory/coverage.ts +0 -134
  364. package/src/memory/crosslink.ts +0 -0
  365. package/src/memory/db.ts +0 -253
  366. package/src/memory/entity.ts +0 -203
  367. package/src/memory/gate.ts +0 -187
  368. package/src/memory/history.ts +0 -152
  369. package/src/memory/ingest.ts +0 -335
  370. package/src/memory/model.ts +0 -183
  371. package/src/memory/normalize.ts +0 -671
  372. package/src/memory/parse.ts +0 -22
  373. package/src/memory/pipeline.ts +0 -275
  374. package/src/memory/prompts.ts +0 -65
  375. package/src/memory/query.ts +0 -334
  376. package/src/memory/reconcile.ts +0 -734
  377. package/src/memory/redirect.ts +0 -108
  378. package/src/memory/reindex.ts +0 -325
  379. package/src/memory/resolve.ts +0 -307
  380. package/src/memory/rest.ts +0 -245
  381. package/src/memory/route.ts +0 -272
  382. package/src/memory/schedule.ts +0 -165
  383. package/src/memory/stages.ts +0 -777
  384. package/src/memory/synthesize.ts +0 -1638
  385. package/src/memory/tools.ts +0 -749
  386. package/src/memory/vault.ts +0 -1194
  387. package/src/memory/wikify.ts +0 -1064
  388. package/src/mlx/array.ts +0 -425
  389. package/src/mlx/autograd.ts +0 -304
  390. package/src/mlx/checkpoint.ts +0 -149
  391. package/src/mlx/compile.ts +0 -168
  392. package/src/mlx/custom-vjp.ts +0 -188
  393. package/src/mlx/ffi.ts +0 -531
  394. package/src/mlx/materialize.ts +0 -23
  395. package/src/mlx/metal-kernel.ts +0 -159
  396. package/src/mlx/normalized-argmax.ts +0 -116
  397. package/src/mlx/ops.ts +0 -1108
  398. package/src/mlx/quantized-rows.ts +0 -36
  399. package/src/mlx/token-bitmask.ts +0 -52
  400. package/src/mlx/turboquant-kv-decode.ts +0 -82
  401. package/src/mlx/turboquant-kv-inverse.ts +0 -122
  402. package/src/mlx/turboquant-ops.ts +0 -861
  403. package/src/mlx/turboquant-tables.ts +0 -237
  404. package/src/mmap.ts +0 -90
  405. package/src/model/artifact-identity.ts +0 -73
  406. package/src/model/batched-kv.ts +0 -235
  407. package/src/model/batched-mask.ts +0 -279
  408. package/src/model/batched-quant.ts +0 -212
  409. package/src/model/batched-quantized-kv.ts +0 -144
  410. package/src/model/batched-rotating-quant.ts +0 -353
  411. package/src/model/batched-rotating-state.ts +0 -149
  412. package/src/model/batched-rotating.ts +0 -338
  413. package/src/model/batched-row-storage.ts +0 -179
  414. package/src/model/batched-ssm.ts +0 -52
  415. package/src/model/batched-turboquant-kv.ts +0 -94
  416. package/src/model/compiled-decode.ts +0 -712
  417. package/src/model/decoded-kv-donor.ts +0 -12
  418. package/src/model/delayed-quantized-kv.ts +0 -72
  419. package/src/model/delayed-rotating-quantized-kv.ts +0 -93
  420. package/src/model/delayed-turboquant-kv.ts +0 -57
  421. package/src/model/diffusion-gemma.ts +0 -1026
  422. package/src/model/factory.ts +0 -215
  423. package/src/model/fingerprint.ts +0 -45
  424. package/src/model/flash-attention.ts +0 -694
  425. package/src/model/full-prefill-padding.ts +0 -56
  426. package/src/model/full-prefill-row.ts +0 -105
  427. package/src/model/gemma4-base.ts +0 -2370
  428. package/src/model/gemma4.ts +0 -1395
  429. package/src/model/generated/gemma4-12b.ts +0 -429
  430. package/src/model/generated/gemma4-26b.ts +0 -448
  431. package/src/model/generated/gemma4-e4b.ts +0 -717
  432. package/src/model/generated/index.ts +0 -18
  433. package/src/model/glm52-atlas.ts +0 -511
  434. package/src/model/glm52-cache.ts +0 -792
  435. package/src/model/glm52-config.ts +0 -262
  436. package/src/model/glm52-container.ts +0 -305
  437. package/src/model/glm52-coupling.ts +0 -388
  438. package/src/model/glm52-dsa.ts +0 -606
  439. package/src/model/glm52-expert-layout.ts +0 -253
  440. package/src/model/glm52-layout.ts +0 -152
  441. package/src/model/glm52-memory.ts +0 -500
  442. package/src/model/glm52-mla.ts +0 -792
  443. package/src/model/glm52-moe.ts +0 -223
  444. package/src/model/glm52-pilot.ts +0 -537
  445. package/src/model/glm52-reference.ts +0 -445
  446. package/src/model/glm52-residency.ts +0 -557
  447. package/src/model/glm52-resident-weights.ts +0 -135
  448. package/src/model/glm52-streamed-experts.ts +0 -453
  449. package/src/model/glm52-streamed-metal.ts +0 -610
  450. package/src/model/glm52-weights.ts +0 -503
  451. package/src/model/glm52.ts +0 -1132
  452. package/src/model/implementation.ts +0 -69
  453. package/src/model/kv-attention-view.ts +0 -70
  454. package/src/model/minicpm5.ts +0 -376
  455. package/src/model/profile.ts +0 -468
  456. package/src/model/quantized-append-attention.ts +0 -31
  457. package/src/model/qwen-append.ts +0 -12
  458. package/src/model/qwen-conv.ts +0 -52
  459. package/src/model/qwen3-delta-state.ts +0 -74
  460. package/src/model/qwen3-delta.ts +0 -451
  461. package/src/model/qwen3-moe.ts +0 -404
  462. package/src/model/qwen3-mrope.ts +0 -250
  463. package/src/model/qwen3.ts +0 -277
  464. package/src/model/qwen3_5-checkpoint.ts +0 -164
  465. package/src/model/qwen3_5.ts +0 -881
  466. package/src/model/rotating-kv-donor.ts +0 -35
  467. package/src/model/rotating-kv-layout.ts +0 -262
  468. package/src/model/rotating-row-transaction.ts +0 -35
  469. package/src/model/speculative-rotating-kv.ts +0 -101
  470. package/src/model/ssm-prefill-padding.ts +0 -39
  471. package/src/model/support.ts +0 -110
  472. package/src/model/token-groups.ts +0 -66
  473. package/src/model/trellis-balanced-scatter.ts +0 -51
  474. package/src/model/trellis-linear.ts +0 -672
  475. package/src/model/trellis-shared-m.ts +0 -151
  476. package/src/model/trellis-shared-scatter.ts +0 -144
  477. package/src/model/trellis-splitk-prefill.ts +0 -158
  478. package/src/model/trellis-tiled-prefill.ts +0 -136
  479. package/src/model/trellis-vector-expand.ts +0 -62
  480. package/src/model/trellis-wide-prefill.ts +0 -94
  481. package/src/model/turboquant-codec.ts +0 -89
  482. package/src/model/universal/archs.ts +0 -332
  483. package/src/model/universal/dense.ts +0 -612
  484. package/src/model/universal/modules.ts +0 -170
  485. package/src/model/universal/rope.ts +0 -381
  486. package/src/model/whisper.ts +0 -435
  487. package/src/native/expert_io.c +0 -523
  488. package/src/native/frame_extract.swift +0 -140
  489. package/src/native/mic_capture.swift +0 -92
  490. package/src/native-pack.ts +0 -163
  491. package/src/pi-provider.ts +0 -53
  492. package/src/pi-session.ts +0 -81
  493. package/src/pi-terminal.ts +0 -274
  494. package/src/pi-web.ts +0 -1940
  495. package/src/preflight.ts +0 -158
  496. package/src/prompt-cache.ts +0 -682
  497. package/src/quantize/allocator.ts +0 -627
  498. package/src/quantize/atomic-output.ts +0 -38
  499. package/src/quantize/calibration.ts +0 -181
  500. package/src/quantize/config-writer.ts +0 -145
  501. package/src/quantize/index.ts +0 -84
  502. package/src/quantize/job.ts +0 -162
  503. package/src/quantize/quantizer.ts +0 -666
  504. package/src/quantize/rotate.ts +0 -603
  505. package/src/quantize/safetensors-writer.ts +0 -249
  506. package/src/quantize/sensitivity.ts +0 -216
  507. package/src/quantize/trellis.ts +0 -586
  508. package/src/quantize/weight-transform.ts +0 -292
  509. package/src/registry.ts +0 -602
  510. package/src/runtime-config.ts +0 -77
  511. package/src/safetensors.ts +0 -165
  512. package/src/sampler.ts +0 -1012
  513. package/src/serve/admin-routes.ts +0 -184
  514. package/src/serve/assets/curve-terrain.html +0 -105
  515. package/src/serve/assets/training-inference-map.html +0 -575
  516. package/src/serve/audio-routes.ts +0 -323
  517. package/src/serve/aux-routes.ts +0 -132
  518. package/src/serve/batch-scheduler.ts +0 -8
  519. package/src/serve/checkpoint-identity.ts +0 -64
  520. package/src/serve/generation-gateway.ts +0 -537
  521. package/src/serve/isolate.ts +0 -609
  522. package/src/serve/kv-budget.ts +0 -14
  523. package/src/serve/lab-routes.ts +0 -341
  524. package/src/serve/lane-registry.ts +0 -45
  525. package/src/serve/model-admin-routes.ts +0 -155
  526. package/src/serve/model-binding.ts +0 -49
  527. package/src/serve/model-host.ts +0 -511
  528. package/src/serve/parent-application.ts +0 -56
  529. package/src/serve/prompt-response-trace.ts +0 -161
  530. package/src/serve/response-lease.ts +0 -24
  531. package/src/serve/session-search.ts +0 -326
  532. package/src/serve/static-routes.ts +0 -101
  533. package/src/serve/transcription-server.ts +0 -64
  534. package/src/serve/transcription-service.ts +0 -502
  535. package/src/server.ts +0 -1282
  536. package/src/spec/assistant-rows.ts +0 -93
  537. package/src/spec/assistant-source.ts +0 -126
  538. package/src/spec/cache-identity.ts +0 -22
  539. package/src/spec/deepspec-rows.ts +0 -29
  540. package/src/spec/deepspec-source.ts +0 -145
  541. package/src/spec/dflash-source.ts +0 -149
  542. package/src/spec/drafter.ts +0 -304
  543. package/src/spec/dspark/ab-stats.ts +0 -136
  544. package/src/spec/dspark/calibration.ts +0 -112
  545. package/src/spec/dspark/data-dflash.ts +0 -156
  546. package/src/spec/dspark/data.ts +0 -201
  547. package/src/spec/dspark/deepspec-module.ts +0 -776
  548. package/src/spec/dspark/generate-dflash.ts +0 -245
  549. package/src/spec/dspark/generate.ts +0 -290
  550. package/src/spec/dspark/loader.ts +0 -23
  551. package/src/spec/dspark/loss.ts +0 -213
  552. package/src/spec/dspark/module-dflash.ts +0 -560
  553. package/src/spec/dspark/module.ts +0 -540
  554. package/src/spec/dspark/quantize-drafter.ts +0 -91
  555. package/src/spec/dspark/sample.ts +0 -112
  556. package/src/spec/generate.ts +0 -276
  557. package/src/spec/glm52-mtp-graph.ts +0 -29
  558. package/src/spec/glm52-mtp-rows.ts +0 -132
  559. package/src/spec/glm52-mtp-source.ts +0 -318
  560. package/src/spec/glm52-mtp-state.ts +0 -33
  561. package/src/spec/ngram-source.ts +0 -226
  562. package/src/spec/projected-draft-rows.ts +0 -73
  563. package/src/spec/qwen-mtp-module.ts +0 -171
  564. package/src/spec/qwen-mtp-rows.ts +0 -230
  565. package/src/spec/qwen-mtp-source.ts +0 -386
  566. package/src/spec/qwen-mtp-state.ts +0 -30
  567. package/src/spec/serve-loop.ts +0 -587
  568. package/src/spec/source.ts +0 -228
  569. package/src/spec/two-model-rows.ts +0 -62
  570. package/src/spec/two-model.ts +0 -113
  571. package/src/ssd-cache.ts +0 -431
  572. package/src/ssd-durability.ts +0 -209
  573. package/src/storage/host-buffer.ts +0 -24
  574. package/src/storage/kv-writer.ts +0 -83
  575. package/src/storage/kv-writer.worker.js +0 -264
  576. package/src/storage/retention-policy.ts +0 -37
  577. package/src/tiered-prompt-cache.ts +0 -45
  578. package/src/tokenizer.ts +0 -335
  579. package/src/tool-approvals.ts +0 -131
  580. package/src/tool-call.ts +0 -695
  581. package/src/train/dataset.ts +0 -484
  582. package/src/train/diffusion-lora.ts +0 -216
  583. package/src/train/export.ts +0 -32
  584. package/src/train/flash-cce.ts +0 -1234
  585. package/src/train/forward.ts +0 -266
  586. package/src/train/fuse.ts +0 -243
  587. package/src/train/index.ts +0 -46
  588. package/src/train/job.ts +0 -205
  589. package/src/train/lora-params.ts +0 -254
  590. package/src/train/loss.ts +0 -1591
  591. package/src/train/merge.ts +0 -195
  592. package/src/train/optimizer.ts +0 -183
  593. package/src/train/prefix-shared.ts +0 -490
  594. package/src/train/rank.ts +0 -137
  595. package/src/train/segmented.ts +0 -1828
  596. package/src/train/steel-qmm-header.ts +0 -1461
  597. package/src/train/trainer.ts +0 -1221
  598. package/src/train/watch.ts +0 -542
  599. package/src/vision/diffusion-vision.ts +0 -620
  600. package/src/vision/embedder.ts +0 -176
  601. package/src/vision/preprocess.ts +0 -247
  602. package/src/vision/prompt.ts +0 -409
  603. package/src/vision/qwen3vl-preprocess.ts +0 -409
  604. package/src/vision/qwen3vl-prompt.ts +0 -233
  605. package/src/vision/qwen3vl-tower.ts +0 -566
  606. package/src/vision/siglip.ts +0 -607
  607. package/src/vision/video-frames.ts +0 -148
  608. package/src/web/app.html +0 -2155
  609. package/src/web/app.js +0 -5863
  610. package/src/web/skills/memory/SKILL.md +0 -120
  611. package/src/web/skills/web-research/SKILL.md +0 -46
  612. package/src/web/skills.ts +0 -97
  613. package/src/web/src/adapters-panel.ts +0 -288
  614. package/src/web/src/assistant.ts +0 -451
  615. package/src/web/src/chat.ts +0 -1060
  616. package/src/web/src/composer.ts +0 -962
  617. package/src/web/src/dataset.ts +0 -132
  618. package/src/web/src/finetune.ts +0 -267
  619. package/src/web/src/hub.ts +0 -428
  620. package/src/web/src/main.ts +0 -98
  621. package/src/web/src/markdown.ts +0 -0
  622. package/src/web/src/memory-panel.ts +0 -572
  623. package/src/web/src/model-picker.ts +0 -159
  624. package/src/web/src/palette.ts +0 -346
  625. package/src/web/src/protocol.ts +0 -26
  626. package/src/web/src/quantize.ts +0 -167
  627. package/src/web/src/rag.ts +0 -274
  628. package/src/web/src/sessions.ts +0 -469
  629. package/src/web/src/shell.ts +0 -804
  630. package/src/web/src/ui-catalog.ts +0 -78
  631. package/src/web/src/voice.ts +0 -141
  632. package/src/web/vendor/README.md +0 -61
  633. package/src/web-assets.ts +0 -47
  634. package/src/web-tools.ts +0 -478
  635. package/src/weights.ts +0 -255
  636. /package/src/{serve → server}/completion-sink.ts +0 -0
  637. /package/src/{serve → server}/generated-token-history.ts +0 -0
  638. /package/src/web/{icon.svg → public/icon.svg} +0 -0
  639. /package/src/web/{manifest.webmanifest → public/manifest.webmanifest} +0 -0
  640. /package/src/web/{vendor → public/vendor}/hljs-LICENSE +0 -0
@@ -1,239 +0,0 @@
1
- # v0.0.11 release notes
2
-
3
- Everything since v0.0.10. The big themes: mlx-bun grows a second modality
4
- (audio), a constrained-decoding stack (structured output / grammar),
5
- speculative decoding, a novel KV-cache quantization scheme (TurboQuant),
6
- completed dynamic batching, crash-isolated serving, and a ground-up
7
- rewrite of the web chat UI. The decode-default story also resets: after
8
- benchmarking every custom performance kernel in a paired A/B against the
9
- bit-exact baseline and finding none of them won, they were deleted —
10
- naked `mlx-bun serve` now runs the faithful, mlx-lm-parity kernel set by
11
- default.
12
-
13
- ## Audio input (Gemma e4b)
14
-
15
- - OpenAI-style `input_audio` parts are served end-to-end: WAV/AAC
16
- transcode, a USM mel-spectrogram extractor, and a Conformer tower
17
- ported bit-exact (rel-RMSE 2.4e-8) against the oracle.
18
- - Build-out ran phase-by-phase (A0–A5): a `bun:ffi` conv2d binding for
19
- the front-end, the multimodal prompt builder wired to the LM, and
20
- capability discovery for audio surfaced consistently across
21
- `/v1/models`, `/library`, and the pi websocket handshake — mirroring
22
- how vision capability is advertised.
23
-
24
- ## Structured output / grammar-constrained generation
25
-
26
- - `response_format` (`json_object`, `json_schema`, `text`) and
27
- `guided_grammar`/`guided_regex`/`guided_choice`/`structured_outputs`
28
- are wired into both `/v1/chat/completions` and `/v1/completions`, built
29
- on `xgrammar`: a `GrammarController` masks logits inside the decode
30
- loop, with a per-`TokenizerInfo` compiler cache and a `MLX_BUN_GRAMMAR=0`
31
- kill switch.
32
- - The batched lane got its own per-row matcher path so grammar-constrained
33
- requests don't force a request onto the serial lane, and grammar
34
- composes with `--draft-model` (the verify walk respects the mask).
35
- - Two defects found and fixed during the build: the oMLX-parity
36
- JSON-system-prompt degrade path (used when a client can't do function
37
- calling) had gone unreachable behind a dropped hint, and the WASM
38
- grammar controllers were leaking on every early-400 reject path
39
- (SSRF-blocked media, vision/audio validation failures, bad
40
- `logit_bias`, etc.) — both fixed, with disposal now covering all paths.
41
-
42
- ## Speculative decoding
43
-
44
- - `--draft-model` lands in serve: a two-model, serial-lane speculative
45
- decoding path verified token-for-token against mlx-lm's own
46
- `--draft-model` oracle (`DraftSource` seam, rewind rule, batched-verify
47
- lm-head).
48
- - An ngram / jump-forward draft kind ships alongside the model-based
49
- drafter for cases with no small model available.
50
- - A DeepSpec (DSpark) drafter-quant research track is underway
51
- (Phase 1 landed) targeting the larger models; per
52
- `benchmarks/RESULTS.md`, the first live pair (12B target +
53
- bf16 DeepSpec drafter, 26–33% acceptance) measured net **slower**
54
- than serial on a loaded box — spec decoding stays **off by default**
55
- pending a quantized-drafter pair that clears the 1.3× bar.
56
-
57
- ## TurboQuant KV-cache quantization
58
-
59
- - `--kv-quant turbo[:kXvY]` adds a rotation-based per-group KV
60
- quantization scheme (sign-FWHT + Lloyd-Max for values), proven
61
- bit-exact against the vendored vllm-metal reference
62
- (`goldens/turboquant.json`).
63
- - Per `benchmarks/RESULTS.md`, the k8v3 default holds a lower KL-vs-bf16
64
- than affine uniform kv4 while compressing KV **2.56×** (measured on
65
- MiniCPM5-1B, paired quality/KL harness). It's a memory/context lever,
66
- not a speed lever — v1 dequant-on-fetch is slower per decode step at
67
- long context, so it stays **opt-in, not default**, per the project's
68
- "levers must earn defaults" rule.
69
-
70
- ## Batching: Phase D completed
71
-
72
- - Aggregate `--kv-budget <GB>` admission with FIFO queuing, vectorized
73
- homogeneous sampling (penalties/`logit_bias`/`min_p`/XTC all run
74
- per-row in the batch), and extend-join so a request can join an
75
- in-flight batch mid-flight instead of waiting for a full drain.
76
- - Per-row RoPE lands for Tier-0 universal architectures, lifting the
77
- batching gate for those models (e.g. Llama).
78
- - Batched mixed-precision quantized KV — the first stack to compose
79
- per-row KV quantization with batching.
80
- - `--batch` default changes from 1 to 8 (see Breaking changes below).
81
-
82
- ## Runtime isolation
83
-
84
- - `--isolate` runs the engine as a crash-isolated child process behind a
85
- reactor parent, restarting with backoff on a crash — the product rule
86
- is **"the AI may crash, the UI never may"** (`docs/design/runtime-isolation.md`).
87
- - `--model-pool` extends this to a child-per-model pool: LRU residency,
88
- spawn-overlap switching (no dead time swapping models), and
89
- `POST /admin/drain` for graceful eviction.
90
-
91
- ## Optional paged KV cache
92
-
93
- - `--paged-kv` adds a vLLM-style block-table paged KV cache
94
- (`PagedKVCache` + `BlockPool`) feeding the unchanged stock SDPA via
95
- block gather. Default off; v1 scope is serial `--batch 1`, the
96
- Gemma4 family, bf16 — it refuses to silently combine with
97
- `--batch N>1`, `--kv-quant`, or `--draft-model`.
98
-
99
- ## Prompt cache overhaul
100
-
101
- - Prefix-sharing v1: `take()` now returns non-consuming, ref-counted
102
- clones instead of consuming/trimming the donor entry, so multiple
103
- agents or sessions can reuse one prefill without cannibalizing each
104
- other's cache.
105
- - The SSD cold tier is promoted from an add-on to a first-class property
106
- of the cache store, with `--ssd-demote-idle <seconds>` (default 300,
107
- requires `--ssd-cache`) freeing GPU memory by demoting idle entries;
108
- `/stats` gains `ssd_cache.demotions`.
109
- - A stable-boundary snapshot fix restores prompt-cache hits for
110
- multi-turn agent traffic beyond the sliding window — this was
111
- previously a silent cache miss on turn 2+ of long conversations.
112
- - The SSD write-behind flush is now idle-gated, so background disk
113
- writes stop contending with decode at long context; the earlier A7
114
- RSS regression on the ssd-cache path closed with zero-copy write views
115
- and a streamed copy-restore.
116
-
117
- ## Web chat UI: ground-up redesign (Phases 0–3)
118
-
119
- - Streaming render rewritten to be block-memoized (no more O(n²)
120
- re-parse of the growing message), with a typed module split.
121
- - New surfaces: a memory panel, adapter routing, a system-prompt editor,
122
- an approval gate, client-side RAG over chat history (BM25, no server
123
- round-trip), a Model Hub, Canvas, per-message sampling controls,
124
- self-healing tool calls, a command palette, full-text search, and
125
- chat export.
126
- - An app-aware assistant (v1) that can see and navigate its own UI —
127
- spotlight/selector resolution now treats a model-invented or malformed
128
- selector as a miss instead of throwing inside the websocket handler.
129
- - PWA support, plus a round of visual-QA fixes: the phone nav band,
130
- light-theme code legibility, a composer placeholder regression, memory
131
- panel markdown chrome, the theme-toggle Auto button, a clipped status
132
- pill, and tab flex-shrink pinned to zero on phones.
133
-
134
- ## Security: media-fetch SSRF hardening
135
-
136
- - `image_url`/`audio_url` fetches now refuse private/loopback/link-local/
137
- CGNAT destinations and non-`http(s)` schemes by default, re-validate
138
- through up to 5 redirect hops, enforce a 10s wall-clock timeout, and
139
- cap bodies at 64MB.
140
- - LAN use needs the new escape hatch: `--allow-private-media` /
141
- `MLX_BUN_ALLOW_PRIVATE_MEDIA=1`.
142
-
143
- ## Fixed
144
-
145
- - 12B `/v1/completions` probe parity: adopted the oracle's step-0
146
- prefill convention (drain to len−1, step 0 from an `L=1` forward of the
147
- last prompt token). Per `benchmarks/RESULTS.md`, live HTTP probes are
148
- now byte-identical to `mlx_lm.server`/optiq serve for MiniCPM5-1B,
149
- gemma-4-e4b, and gemma-4-12B, on completion and chat probes, in both
150
- the `--batch 8` default lane and `--batch 1`.
151
- - BPE detokenization now mirrors mlx-lm's bare-space hold-back and
152
- never-finalize semantics exactly.
153
- - Cache invariant enforced on every tier; an FFI destructor deadlock
154
- fixed; write-behind made non-blocking; per-row batch cache extraction
155
- fixed.
156
- - `generate()` now yields a macrotask between prefill chunks, keeping the
157
- isolation path (and the server generally) responsive during long
158
- prefills.
159
- - Benchmark harness: the `--batch 1` serial control arm now runs by
160
- default (it had been skippable, which undermined validating the new
161
- batch-8 default); `--engine` is additive instead of mutually exclusive
162
- with the serve pass; the batch-path test now asserts cumulative
163
- `/stats` `submitted_rows` instead of a stale `cachedTokens=0` premise.
164
- - `any_whitespace` grammar knob landed; batch-grammar gates re-anchored
165
- to compact separators.
166
-
167
- ## Infra / benchmark harness redesign
168
-
169
- - `benchmark.sh` + `scripts/bench-modes.ts` now spawn real CLI paths
170
- instead of bench-local server wrappers, folding bit-parity and
171
- peak-memory checks into the same serve cells (one pass instead of
172
- several). New columns: cold-start and restart-survival; new workload:
173
- `xl` (~4k prefix); a feature-matrix benchmark mode.
174
- - Repo cleanup: `lab/` consolidation, a binary-tracking hygiene gate, and
175
- a git history rewrite that took the repo from 182MB to 20MB, removing
176
- the last multi-MB binaries from the index.
177
- - New design docs: `unified-engine-frontier-plan`, `dspark-serving-program`
178
- (the DeepSpec/DSpark spec-decode research program), `structured-output`,
179
- `web-chat-redesign` (+ app-aware-assistant, superset-doctrine, and
180
- visual-QA-bar notes), `paged-kv-cache`, `batching-perf-path` /
181
- `batching-v2-plan`, `runtime-isolation`.
182
- - Doc drift swept: env-lever table entries (`MLX_BUN_DSPARK_MINCONF`,
183
- `MLX_BUN_BATCH_NO_PIPELINE`, `MLX_BUN_EXPERT_OFFLOAD`), ngram
184
- draft-kind coverage in README/server-api, doc-map sync, an openwiki
185
- investigation write-up. STATUS.md was rewritten to current-state-only
186
- several times through the release to keep handoff notes accurate.
187
- - A new ground rule was recorded in CLAUDE.md: changes to the served
188
- surface must update the user-facing reference docs in the same commit.
189
- - A direct optiq mixed-KV bit-parity golden replaced an indirect
190
- ours-vs-ours comparison; a bit-exact L1 parity harness was added for
191
- the Qwen3-30B-A3B MoE port, with uniform quantized KV confirmed
192
- bit-exact against mlx-lm's own `--kv-bits` and a stock-mlx-lm baseline
193
- added to the bench.
194
- - Dependency/CI bumps: pi, `actions/checkout`, and the site build moved
195
- off a deprecated Node runtime.
196
-
197
- ## Breaking / behavior changes
198
-
199
- - **`--batch` default changes from 1 to 8.** Serving now batches by
200
- default whenever concurrent requests arrive; pass `--batch 1` to force
201
- strict serial (needed if you require arrival-order-independent,
202
- bit-identical numerics).
203
- - **The default decode path changed.** Naked, no-flag serving now runs
204
- the faithful, bit-exact-vs-mlx-lm kernel set — what `--l1` used to
205
- mean. `--l1`/`--l2`/`--l3` are now pure aliases over per-feature flags
206
- rather than distinct performance tiers. Every custom-kernel path that
207
- didn't beat this baseline in a paired A/B was deleted in the same
208
- pass: the fused-decode kernel, fused-gelu/fused-swiglu/fused-mlp/
209
- steel-linear Metal kernels, the flash-decode "perf" kernel and its
210
- frozen-oracle test scaffolding, `--l3`, and `FaithfulMiniCPM5` /
211
- `MLX_BUN_CPM5_FAITHFUL`. None of these flags or code paths exist
212
- anymore. `MLX_BUN_FAITHFUL` is also gone (superseded by the faithful
213
- kernels being the default) — the server's unset `--kv-quant` now
214
- defaults to bf16 instead of `kv_config`, so getting the old default
215
- composition requires an explicit `--kv-quant`.
216
- - **New CLI/API surface:** `--kv-quant turbo[:kXvY]` (TurboQuant),
217
- `--paged-kv` (off by default; refuses to combine with `--batch N>1`,
218
- `--kv-quant`, or `--draft-model`), `--draft-model` (speculative
219
- decoding), `--isolate` and `--model-pool` (runtime isolation),
220
- `--kv-budget <GB>` (aggregate KV admission), `--ssd-demote-idle
221
- <seconds>` (default 300, requires `--ssd-cache`),
222
- `--allow-private-media` / `MLX_BUN_ALLOW_PRIVATE_MEDIA=1`, and the
223
- `response_format` / `guided_grammar` / `guided_regex` / `guided_choice`
224
- / `structured_outputs` request fields (kill switch:
225
- `MLX_BUN_GRAMMAR=0`).
226
- - **Media fetches are restricted by default.** `image_url`/`audio_url`
227
- now refuse private/loopback/link-local/CGNAT destinations and
228
- non-`http(s)` schemes — previously they fetched anything. LAN media
229
- needs the new escape hatch above.
230
- - **`PromptCache.take()` semantics changed.** Cache hits now return
231
- non-consuming, ref-counted clones instead of consuming/trimming the
232
- donor entry — code holding onto the old consuming behavior should
233
- re-check callers.
234
-
235
- Full details and measured numbers: STATUS.md, `benchmarks/RESULTS.md`,
236
- and the design docs referenced above. Credit where due: TurboQuant's
237
- codec is verified bit-exact against the vendored vllm-metal reference,
238
- and the speculative-decoding path is verified token-for-token against
239
- mlx-lm's own `--draft-model` implementation.
@@ -1,80 +0,0 @@
1
- # v0.0.12 release notes
2
-
3
- mlx-bun 0.0.12 completes the native Colibri/GLM-5.2 program: a Python-free,
4
- direct-container runtime that can serve the approximately 357 GiB artifact on
5
- a 32 GiB Apple Silicon Mac by keeping a bounded working set in memory and
6
- streaming routed experts from fast storage.
7
-
8
- ## GLM-5.2 direct-container serving
9
-
10
- - Loads `mateogrgic/GLM-5.2-colibri-int4-with-int8-mtp` directly. No converted
11
- copy and no Python process are involved in the serving path.
12
- - Preserves checkpoint precision and true top-8 routing. The port is gated
13
- against pinned Colibri at tiny, production-component, real-model, MTP, cache,
14
- and first-sparse DSA boundaries.
15
- - Native int8 MTP is enabled by default and uses the serial speculative lane.
16
- It produced a measured 1.306x warm end-to-end win over MTP-off on the 32 GiB
17
- reference machine while preserving all target tokens.
18
- - Compressed MLA/DSA/MTP cache persistence, restart restore, compressed-byte
19
- admission, ordinary continuous batching, mixed-length join/leave/cancel, and
20
- cross-row expert union are included. Per-row batched MTP remains a later
21
- feature; MTP requests truthfully report `serial+spec`.
22
- - Chat completions, text completions, Anthropic Messages, OpenAI Responses,
23
- SSE, tools, structured output, stops, sampling, usage, and serial logprobs
24
- are supported. Embeddings, vision/audio, LoRA, and training are explicitly
25
- reported unsupported for this model instead of being emulated.
26
-
27
- ## Memory and acquisition contract
28
-
29
- - `mlx-bun get` now computes the exact remaining payload before the first
30
- payload request, credits verified shared blobs and resumable prefixes, and
31
- refuses an acquisition that cannot leave a fixed 1 GiB safety reserve.
32
- - The GLM header-only preflight runs before resident weights or expert slabs
33
- open. With the stock DSA overlay installed, 4,096 context / 128 generation
34
- tokens and MTP on produce a 19.89 GiB plan under a 25 GiB process ceiling,
35
- leaving 5.11 GiB of process/macOS headroom on a 32 GiB machine.
36
- - `fit`, `/fit`, `/stats`, and the status page now distinguish the complete
37
- artifact on disk from resident weights, main/MTP slabs, compressed KV, and
38
- reserves. They also expose main/MTP residency, hit rate, SSD bytes, policy
39
- telemetry, and repin events.
40
-
41
- ## Performance: measured, not predicted
42
-
43
- - Warm quality-preserving throughput on the M1 Max 32 GiB reference machine is
44
- 0.1577 decode tok/s / 0.1487 end-to-end tok/s with MTP on. The same-machine
45
- direct-Colibri control is approximately 0.27 tok/s.
46
- - The 2 tok/s figure remains an aspiration, not a release gate or `fit`
47
- prediction. The measured warm end-to-end result is 13.45x below it.
48
- - Replicated telemetry measured 1,974,949,363,712 logical expert bytes per
49
- 128-token warm turn (15.429 decimal GB/token) and a 1.66% cache hit rate.
50
- Startup auto-pin, live LFRU, PILOT hints, two-step prediction, and coupling
51
- did not improve paired end-to-end performance and remain off by default.
52
- - The checkpoint's 21-full/57-shared DSA schedule is implemented and exact.
53
- Paired 2K/8K tests did not establish an MTP-on product-speed win, so this
54
- release makes no DSA speed claim. The public Colibri artifact does not ship
55
- the stock DSA indexer overlay; without it the runtime follows the artifact's
56
- available attention path.
57
-
58
- ## Distribution and operator experience
59
-
60
- - First-run native pack v0.2.0 adds the bounded native expert-I/O helper. The
61
- npm/bunx fresh-cache path downloads, verifies, and extracts all five runtime
62
- files; the signed/Homebrew bundle includes the same helper beside the binary.
63
- - The pinned 32 GiB quickstart, volume selection, interrupted-download recovery,
64
- model lineage, licenses, resource plan, measured performance, and limitations
65
- are documented in README and the reference guides.
66
- - The interactive Atlas report reproduces Colibri's expert topic-affinity
67
- result: 29/30 leave-one-prompt-out classifications (96.7%) and 1,065 strong
68
- specialists among 13,236 replicated experts.
69
-
70
- ## Stability fixes since v0.0.11
71
-
72
- - Closed pre-Colibri correctness and lifecycle findings, including expert-slab
73
- post-close and lazy-graph reuse hazards, with forced native/MLX churn gates.
74
- - Fixed selected-logprob readback stalling and revalidated the audio splice
75
- boundary against the oracle.
76
- - Corrected current Hugging Face LFS checksum-field handling and retained the
77
- older spelling for compatibility.
78
-
79
- Full provenance and exact numbers are in `benchmarks/RESULTS.md`, `STATUS.md`,
80
- and `docs/design/colibri-glm52-port.md`.
@@ -1,77 +0,0 @@
1
- # v0.0.13 release notes
2
-
3
- Everything since v0.0.12. One theme: **Qwen 3.8**. The current-generation
4
- Qwen (released August 2026) is brought up on the published OptiQ
5
- artifact at the repo's standard bar — bit-exact logit parity with
6
- mlx-lm — with its thinking controls served faithfully. Vision, video,
7
- and native Qwen MTP remain separately gated follow-ups.
8
-
9
- ## Qwen3.8-27B (text, bit-exact)
10
-
11
- - `mlx-community/Qwen3.8-27B-OptiQ-4bit` serves on the existing
12
- qwen3_5 hybrid graph (gated DeltaNet + gated attention) — the
13
- architecture audit found byte-identical geometry to the verified
14
- port, and parity confirmed it: **every logit at every prompt
15
- position plus 32 greedy decode steps, bit-exact vs stock mlx-lm**
16
- (the parity harness grew a full prefill-grid golden and
17
- manifest-driven step counts in the process).
18
- - The config's new `output_gate_type: "swish"` field is inert in every
19
- implementation (transformers ground truth included) — a load-time
20
- guard now fails loudly if a future checkpoint carries a value we
21
- haven't verified.
22
- - Fit reality: the artifact is 20.35 GB of shards. 32 GB machines
23
- serve it comfortably; 24 GB machines need `--memory-budget` and
24
- should prefer the uniform 4-bit conversion until the planned
25
- ~4 bpw TurboQuant×weights artifact lands (PLAN 14z).
26
-
27
- ## Thinking controls (Qwen 3.8's serving surface)
28
-
29
- - Thinking is on by default and streams as OpenAI `reasoning` deltas;
30
- `chat_template_kwargs.enable_thinking: false` selects instruct mode.
31
- - `reasoning_effort` is now a real depth control on templates that read
32
- it: OpenAI levels map onto Qwen's `low`/`medium`/`xhigh` (with
33
- `xhigh` accepted as a first-class request value), and the variable is
34
- only passed to templates that declare it — the Qwen 3.8 template
35
- raises on unknown level names, so the server never forwards unmapped
36
- strings.
37
- - `preserve_thinking` (new in Qwen 3.8, default on) is forwarded:
38
- history keeps its think blocks, which also improves prompt-cache
39
- reuse in agent loops.
40
- - Tool calling: Qwen 3.8's XML call format
41
- (`<tool_call><function=name><parameter=…>`) parses through the
42
- existing Qwen-style parser into OpenAI `tool_calls`, multiline
43
- parameters included.
44
-
45
- ## Qwen native MTP is deliberately not shipped yet
46
-
47
- - Qwen 3.8 ships a multi-step MTP head trained alongside the model;
48
- mlx-community publishes it split out
49
- (`mlx-community/Qwen3.8-27B-MTP-bf16`). Review found that the target's
50
- 48 recurrent DeltaNet caches cannot roll back rejected verify rows,
51
- while the shared speculative loop requires exactly that operation.
52
- The initial implementation therefore never reached a draft round.
53
- - MTP artifacts are detected and refused at startup with the exact reason,
54
- before the 20 GB target is opened. Shipping a switch that silently disables
55
- itself—or corrupts recurrent state when forced—would be worse than a clear
56
- deferral. The follow-up needs recurrent-state snapshot/restore or a verify
57
- schedule that never advances state beyond the accepted prefix.
58
-
59
- ## GLM-5.2 client compatibility
60
-
61
- - Fixed-context GLM serving now treats request `max_tokens` as an upper bound:
62
- when a client sends a family-wide value larger than the planned remaining
63
- context, the server caps it instead of rejecting an otherwise valid first
64
- prompt. The reported 2,788-prompt + 8,192-cap failure now admits a 1,308-token
65
- completion ceiling within the 4,096-token plan. Prompts that consume the
66
- whole context remain rejected before generation.
67
-
68
- ## Also in this release
69
-
70
- - The parity harness's step-0 check now covers the full prefill logit
71
- grid for all Qwen targets — masking/position bugs can no longer hide
72
- behind a last-position comparison.
73
- - A GPU command-buffer failure mode on memory-saturated machines was
74
- root-caused (Metal completion-thread exception, uncatchable by
75
- design) and documented in PLAN 14g, along with the finding that some
76
- mlx-c paths surface C++ errors as process panics instead of
77
- catchable errors (hardening item).
@@ -1,122 +0,0 @@
1
- # v0.0.9 release notes (DRAFT — Josh edits + publishes)
2
-
3
- Everything since v0.0.8 (2026-06-24). The big themes: the mlx-lm drop-in
4
- surface is now materially complete, ORPO is paper-faithful, mlx-bun runs its
5
- first generically-supported architectures at verified bit-exact parity, and an
6
- adversarial review swept the whole engine — fixing 12 confirmed bugs and
7
- overturning a load-bearing performance assumption.
8
-
9
- ## Drop-in compatibility with mlx_lm.server (the headline)
10
-
11
- - **Endpoints:** `POST /v1/completions` (raw text completion, stream +
12
- non-stream), `GET /health` (byte-exact body), `GET /v1/models` now lists all
13
- registry models (+ `/v1/models/<id>`).
14
- - **Request fields:** `min_p`, `xtc_probability`/`xtc_threshold`, `logit_bias`,
15
- `presence_penalty`/`frequency_penalty` (+ `*_context_size` windows),
16
- `logprobs`/`top_logprobs` with mlx-lm's EXACT semantics (same distribution,
17
- same response shape, same [0,11] validation). All L1-faithful ports of
18
- `sample_utils.py`.
19
- - **Flags/defaults:** port 8080 + loopback host (matching mlx_lm.server;
20
- `--host 0.0.0.0` = LAN opt-in), `--temp` alias, `--max-tokens`,
21
- serve `--adapter <dir>` mounts at startup.
22
- - **New CLI verbs:** `fuse` (fold LoRA into base — mlx-lm math, untouched
23
- modules bit-identical), `convert` (wraps the mixed-precision quantizer,
24
- `--target-bpw` exposed), `perplexity` (mlx_lm.perplexity methodology),
25
- `upload` (native HF push).
26
- - Deliberately not ported: `role_mapping` (unreachable — every supported model
27
- ships a chat template). Remaining: `cache_prompt`, `evaluate` (planned as an
28
- lm-eval shim), `--draft-model`, awq/dwq/gptq (plan:
29
- docs/design/mlx-lm-tool-parity-plan.md).
30
-
31
- ## ORPO: paper-faithful by default
32
-
33
- - **`sft_scope: full | response`** (default `full`): the chosen-NLL is now the
34
- token-mean CE over the full prompt+response — matching the ORPO paper, TRL,
35
- and xfactlab/orpo — implemented across every path (naive/chunked/fused/
36
- flash-CCE/prefix-shared/segmented). `response` reproduces old runs
37
- BIT-EXACTLY (regression-pinned). The odds-ratio terms stay response-only in
38
- both modes (matches TRL). CLI: `mlx-bun train --sft-scope`.
39
- - The rest of the ORPO stack was adversarially verified correct against
40
- primary sources (odds-ratio math, gradients vs finite differences,
41
- prefix-sharing gradient flow, tokenization/label-shift).
42
-
43
- ## Generic model support (Tier-0)
44
-
45
- - **New:** `src/model/universal/` — a config-driven UniversalDense module with
46
- explicit descriptors for llama, qwen2, qwen3, gemma, gemma2, phi3, olmo2,
47
- glm4, granite, starcoder2, smollm3 (+ mlx-lm's remapping: mistral etc.).
48
- bf16 (unquantized) checkpoints now load. Rope factory (llama3/yarn/longrope)
49
- verified bit-exact vs the oracle.
50
- - **First three archs verified at L1 parity** (bit-exact per-step logits):
51
- Llama-3.2-1B-Instruct-4bit, Qwen2.5-0.5B-Instruct-4bit, gemma-2-2b-it-4bit.
52
- - Dispatch ladder: dedicated → generated → generic → reject-with-helpful-error.
53
- Targeted models keep their optimized paths; a model can graduate.
54
- Design: docs/design/generic-model-support.md.
55
-
56
- ## Fixed (the adversarial-review wave)
57
-
58
- - **`--l2` tier contract restored:** the L2 preset was enabling an
59
- envelope-gated perf kernel (not bit-exact vs optiq). Bare `--l2` is now
60
- genuinely optiq-bit-exact; the perf kernel is `--l3`/explicit opt-in.
61
- `generate --l2/--l3` no longer silently degrades to L1.
62
- - Batched same-millisecond seed collision (identical concurrent completions);
63
- streaming per-layer KV-quant conversion (the missing half of optiq's
64
- tight-RAM fix); segmented compiled-decode mid-step failure KV corruption;
65
- `MLX_BUN_TRAIN_ATTN=flash` now refused on Gemma (unrevalidated crash path);
66
- eval-loss error swallowing; wrong tokens_per_sec metric; silent steel-kernel
67
- fallbacks now warn; flash-attention tests extended (D=256, sliding-window,
68
- non-tile T).
69
- - Memory (the Dreaming): batching default flipped to serial (measured 1.7–1.9×
70
- faster for the real workload); `memory status` truth; third-person voice fix
71
- merged.
72
- - CLI audit (14 findings): `fit --ctx` help matched code, `embed` auto-pick
73
- fixed, pi flag leakage into first message fixed, `--l1/2/3` + `generate` +
74
- `train-watch` documented, `setup` is a real alias, doc lies corrected.
75
-
76
- ## Performance truth (research, groundwork for the next release)
77
-
78
- - The "decode is at the memory floor" claim was **overturned** with measured
79
- rooflines: only the 12B is at the bandwidth wall (~92%); CPM5/e4b/26B sit at
80
- 58–70% with the host-side graph build as the top recoverable term. Ranked
81
- fix plan in-repo; wins land next release.
82
- - The batching engine was audited (numerics solid, engine naive) — hotfixes +
83
- containment landing; plan: docs/design/batching-v2-plan.md.
84
- - Registry duplicates root-caused (snapshot-per-commit accumulation);
85
- dedupe + `gc` landing.
86
-
87
- ## Infra
88
-
89
- - CI gate added (typecheck + model-free tests on push/PR) — previously nothing
90
- ran on push.
91
- - Repo hygiene: scratch artifacts untracked, megakernel research relocated,
92
- STATUS.md rewritten as a true current-state front door, doc map regenerated.
93
-
94
- ## Late additions (landed after the first draft)
95
-
96
- - **Batching engine v2 (steps 1–3):** Qwen3.5/SSM models no longer fail under
97
- `--batch` (capability gate + serial drain); per-row failure containment; no
98
- serial-lane starvation; pipelined batched decode + sane cache cadence; the
99
- huge admit transient fixed; all GPU work under one lock.
100
- - **Model management:** `ls` deduplicates to one row per repo (snapshot
101
- history via `ls --all-revisions`); new `mlx-bun gc` reclaims superseded
102
- snapshots (24.7 GB found on the dev machine) with a safety guard for
103
- unique files; `get` accepts substring queries; download lockfile, streamed
104
- resume verification, gated-repo auth hints; vision capability detected from
105
- config (the unified-vision 12B now shows `vision`). New doc:
106
- docs/reference/models.md.
107
- - **Pi integration:** web-chat memory tools actually callable; `harness pi`
108
- registers exactly the served model; tool-calling fixed for Tier-0 generic
109
- models (Gemma sentinels no longer applied to non-Gemma tokenizers); vision
110
- advertised to pi; `mlx-bun pi` no longer leaks unknown flags into the first
111
- message.
112
- - **Website + README:** six-goals restructure, drop-in guide, memory guide,
113
- the lab page, full CLI reference from a tracked source; deploy now triggers
114
- on reference-doc edits. NOTE the release sequence: push and publish in the
115
- same sitting — the site deploys from the push.
116
- - **Test infra:** batched-serving goldens are machine-keyed (the M1-Max
117
- "failures" were M4-Pro fixtures; all code exonerated — mlx-lm reproduces
118
- mlx-bun token-for-token per machine); CI gate (typecheck + model-free tests).
119
- - **Research (the lab):** decode-roofline re-measurement overturned the "at
120
- the floor" assumption (docs/archive/investigations/decode-roofline-lookagain.md);
121
- curve-sampler distinctness theorem + witness numbers + preregistered
122
- protocol (docs/planning/curve-sampler-research-plan.md).
@@ -1,49 +0,0 @@
1
- # mlx-bun v0.2.0
2
-
3
- Version 0.2.0 is the first release with the complete Qwen3.8 serving path:
4
- text, images, video, thinking controls, tool calls, and native MTP speculation.
5
- It also ships the serving and memory work completed since v0.0.13.
6
-
7
- ## Highlights
8
-
9
- - Qwen3.8 image input now runs through the dedicated vision tower and mRoPE
10
- path. Video content parts decode through the bundled AVFoundation helper,
11
- sample frames at 2 fps, and use the gated Qwen video pipeline.
12
- - Qwen native MTP can mount from a separate companion or an artifact's `mtp/`
13
- directory. Rejected drafts restore recurrent DeltaNet state correctly.
14
- - The default continuous scheduler now shares request planning, sampling,
15
- usage accounting, cache selection, and protocol events with the strict
16
- serial executor. `--batch 1` remains the explicit serial pin.
17
- - Memory admission treats `max_tokens` as a ceiling. If the prompt fits, the
18
- server caps generation to the safe remaining context instead of rejecting a
19
- broad client default.
20
- - `convert --rotate-weights` folds supported rotations before quantization.
21
- The offline pipeline also gained streamed shard handling, 3-bit GPTQ, and
22
- atomic output publication.
23
-
24
- ## Reliability and performance fixes
25
-
26
- - Large Qwen models now enter the same wired-memory scope as mlx-lm during
27
- serial and continuous execution. This removes the token-zero residency
28
- stall on machines whose recommended working set grew beyond the old cutoff.
29
- - DeltaNet prefill and batch-row extraction now copy owned cache state instead
30
- of pinning whole chunk buffers.
31
- - SSD prompt-cache snapshots stay dirty until atomic storage completes.
32
- `POST /admin/cache/flush` and normal SIGINT/SIGTERM shutdown provide an
33
- explicit durability boundary.
34
- - Rotating-cache batch joins now dispatch by cache capability and preserve the
35
- correct rotating signature.
36
- - Qwen and GLM MTP sampling no longer passes a rank-3 logits tensor into the
37
- rank-2 sampler.
38
-
39
- ## Distribution
40
-
41
- - macOS on Apple Silicon remains the supported platform.
42
- - Source and npm installs require Bun 1.4.0 or newer.
43
- - Direct downloads and Homebrew use the signed, notarized self-contained
44
- archive.
45
- - npm and `bunx` use native pack v0.3.0, which includes MLX, the bounded expert
46
- I/O helper, and the AVFoundation frame extractor.
47
-
48
- Upgrade with `brew upgrade joshuarossi/tap/mlx-bun`, `bun update -g mlx-bun`,
49
- or rerun the direct installer.
@@ -1,35 +0,0 @@
1
- # mlx-bun v0.3.0
2
-
3
- This release adds the Qwen inference performance work, fixes long-generation
4
- memory retention, and makes configured serving benchmarks reproducible.
5
-
6
- - Packed Trellis decode and prefill kernels, interleaved weight readers,
7
- joint TurboQuant K/V operations and inverse rotation optimizations.
8
- - Opt-in Qwen uniform KV4 speculation with MTP and bounded paired target/draft
9
- RAM prefixes. Exact history, model identity and adapter namespace govern
10
- reuse; paired speculative state does not persist across server restarts.
11
- - Model-owned structural token appends, serving ownership and parser fixes,
12
- and a bounded range cache for sustained generation.
13
- - SSD flushes recognize prefixes covered by snapshots committed later in the
14
- same flush, preserving errors for genuinely missing state.
15
- - Native runtime pack 0.4.0, bundling MLX 0.32.2 and the matching MLX-C API.
16
- Persistent cache compatibility includes the runtime and GPU identity.
17
- - Serving benchmark controls for explicit draft, KV and prompt-cache settings,
18
- with saved commands, request hashes, complete-request timing and raw results.
19
-
20
- The required packed Qwen target completes the fresh Luke Kanban task with
21
- thinking enabled and the published profile. Its configured KV4/MTP serving
22
- suite passes every phase on the M4 Pro. Full measurements, machine labels and
23
- limits are in the [benchmark record](https://github.com/joshuarossi/mlx-bun/blob/v0.3.0/docs/reference/benchmarks.md).
24
- No matched successful original/final Kanban timing is available, so this
25
- release claims no percentage reduction in full-task completion time.
26
-
27
- Optimization defaults remain gated. The standard-suite MiniCPM/Qwen timed
28
- output differences against the reference and the larger Qwen 4/8-bit
29
- artifact's prefill memory failures on the 24 GB Mac remain under investigation.
30
- The SSD restart failures from that suite are fixed and all four affected
31
- default/mixed serving repeats pass on their first attempt.
32
-
33
- The [server configuration reference](https://github.com/joshuarossi/mlx-bun/blob/v0.3.0/docs/reference/server-config.md)
34
- documents experimental switches and their supported combinations. Requires
35
- Apple Silicon, macOS 14 or later, and Bun 1.4.0 or later for npm installs.
@@ -1,45 +0,0 @@
1
- # mlx-bun v0.4.0
2
-
3
- This release brings shared batched decode, generated-history cache reuse and
4
- resumable generation together through separate scheduling, inference, sampling
5
- and persistence interfaces.
6
-
7
- - Shared ordinary and speculative execution supports Qwen MTP, prompt lookup,
8
- standalone, assistant, DeepSpec and DSpark/DFlash providers on qualified
9
- model/request combinations. Single requests run at B=1 through the scheduler.
10
- - Full and rotating affine/TurboQuant cache layouts compose with delayed and
11
- per-layer precision, speculative rollback and generated target/draft state.
12
- - Completed decode populates the shared RAM/SSD cache so later turns can reuse
13
- generated history. SSD persistence is queued and runs during idle ownership.
14
- - Ordinary interrupted-generation resume now works through shared execution,
15
- including compatible adapters and quantized caches. Restored sampler history,
16
- pending tokens and usage accounting preserve the continuation contract.
17
- - Ordinary paged storage and adapter-qualified prompt lookup use the same state
18
- and execution interfaces. GLM native MTP gains shared cache transactions and
19
- row state; final real-artifact testing remains deferred.
20
- - Measured Trellis v13 is selected by default, and eligible Qwen KV4 speculation
21
- is enabled. Workload-dependent lookup and other experimental settings remain
22
- opt-in. Memory fit estimates are advisory unless users choose explicit limits.
23
- - Benchmark reporting retains request/source identities, paired comparisons,
24
- failures and configuration differences. CI and the release build use Bun 1.4.2.
25
-
26
- Serving keeps its existing `--batch 8` default. A lone eligible request starts
27
- immediately at B=1; the cap does not wait for eight requests. `--batch 1` retains
28
- the serial executor, and unsupported compositions can still use it. Removing
29
- serial and completing every feature combination are follow-up work.
30
-
31
- Checkpoint capture is eventually persistent: queued snapshots can remain in RAM
32
- during uninterrupted traffic. A successful explicit flush is the durability
33
- boundary. Media, fill/grammar-jump and direct paged-attention work remain tracked.
34
- No DSpark/DFlash checkpoint has been trained for this campaign; execution fixtures
35
- do not establish trained-drafter performance.
36
-
37
- Measured performance and its workload limits are in the
38
- [benchmark record](https://github.com/joshuarossi/mlx-bun/blob/v0.4.0/docs/reference/benchmarks.md).
39
- This release does not claim a matched full-task Kanban speedup or completion of
40
- the entire optimization program. Supported settings are documented in the
41
- [server configuration reference](https://github.com/joshuarossi/mlx-bun/blob/v0.4.0/docs/reference/server-config.md).
42
-
43
- Requires Apple Silicon and macOS 14 or later. npm installs require Bun 1.4.0 or
44
- later; Bun 1.4.2 is the tested version. The existing native runtime pack 0.4.0
45
- provides MLX 0.32.2 and its matching C API.