Skip to content

v0.76.0

Latest

Choose a tag to compare

@github-actions github-actions released this 10 Sep 07:49
· 15 commits to main since this release

[0.76.0] - 2026-09-10

Added

Serving and inference

  • Durable KV prefix cache: agent prefixes survive eviction, restart, and cold nodes by @michaelneale in #1228
  • skippy-quantize: compose-mtp — splice an MTP draft into a sharded target GGUF by @i386 in #1439
  • Load SafeTensors checkpoints directly by @i386 in #1619
  • Complete graph-derived v2 model splitting by @i386 in #1672
  • Iteration-level scheduler for concurrent staged serving (#1416) by @i386 in #1420
  • Route repeated prompts to workers with verified radix cache reuse by @i386 in #1449
  • Reuse warm prefixes across agent sessions by @i386 in #1601
  • Stream tool calls as they are generated instead of after the turn ends by @michaelneale in #1371
  • Pass reasoning effort through Skippy templates by @i386 in #1211
  • Expose model-bound tokenizer capability by @i386 in #1227
  • Support staged Qwen3.8 Flash-Next inference by @michaelneale in #1509
  • Route Qwen3.8 identities to the qwen35 recurrent family by @michaelneale in #1283
  • Make plugin-only Serve mode nodes discoverable/reachable by other mesh peers by @MahdiHedhli in #1192
  • Add mode-aware management health endpoint by @i386 in #1351
  • OpenAI exchange lifecycle hooks for out-of-process plugins (#1331) by @StevenMih in #1437
  • Integrate exact lifecycle and trusted sessions by @ndizazzo in #1258
  • Explain native runtime catalog selection and rejection by @Virgile-pct in #1675

Model catalog

Logging and observability

  • Add durable lifecycle logging foundation by @ndizazzo in #1174
  • Expose audited local log APIs and runtime telemetry by @ndizazzo in #1175
  • Add typed logs ledger and maintenance UI by @ndizazzo in #1176
  • Make operational logs durable, attributable, and queryable by @ndizazzo in #1440
  • Add lifecycle timelines and recovery to the logs console by @ndizazzo in #1441

Configuration (settings that were previously inert are now honored)

  • One canonical configuration reference with schema parity enforcement by @ndizazzo in #1474
  • Derive static validation from an exhaustive schema-status manifest by @ndizazzo in #1475
  • Wire kv_offload, kv_unified, and swa_full model_fit controls by @ndizazzo in #1476
  • Wire hardware placement and model loading settings (PR 3/8, #1462) by @ndizazzo in #1477
  • Make Skippy throughput and lifecycle config effective by @ndizazzo in #1480
  • Wire speculative decoding configuration into Skippy by @ndizazzo in #1483
  • Honor sampling, chat, and reasoning defaults in Skippy by @ndizazzo in #1485
  • Honor multimodal model settings in Skippy by @ndizazzo in #1490
  • Complete host wiring for aliases, plugins, and prompt-shape metrics by @ndizazzo in #1488

Documentation surfaces

  • Publish Rust crate API docs with the website by @i386 in #1230
  • Add generated CLI explorer to docs by @ndizazzo in #1546

Changed

Request handling and context

  • Consolidate model=auto and model=mesh into one automatic-routing directive by @michaelneale in #1309
  • Treat max_tokens as a ceiling, not a context reservation by @michaelneale in #1354
  • Stop aborting healthy long prefills at five minutes by @michaelneale in #1355
  • Return a visible error when streaming prompts exceed context by @michaelneale in #1352
  • Compact oversized chat context for provider windows by @i386 in #1280
  • Default auto context to the 128k agent-serving ceiling by @i386 in #1529

Caching, scheduling, and routing

  • Replace flat prefix caches with unified radix by @i386 in #1429
  • Make resident KV admission capacity aware by @i386 in #1452
  • Add scheduler lab and cache-aware radix scheduling by @i386 in #1447
  • Improve Skippy concurrent serving and cache-aware routing by @i386 in #1478
  • Route warm prefixes by measured service cost by @i386 in #1603
  • Spread concurrent new sessions with local route reservations by @michaelneale in #1631
  • Send remote mesh inference directly into the serving pipeline by @michaelneale in #1463
  • Improve MoA routing under fleet churn and load by @michaelneale in #1519
  • Reuse recurrent KV across growing chat turns by @i386 in #1253
  • Make Skippy negotiate real activation boundaries by @i386 in #1585
  • Derive KV policy from loaded model by @i386 in #1588
  • Remove runtime-slice architecture allowlist by @i386 in #1602

Performance

Console and startup

Dependencies

Removed

Fixed

Inference, KV cache, and MoA

Split and distributed serving

Models, packaging, and downloads

Platform and hardware

Console, CLI, and logs

  • Retry transient model route misses in console chat by @i386 in #1277
  • Harden lifecycle capture and console recovery by @ndizazzo in #1268
  • Render LaTeX in active chat responses by @ndizazzo in #1466
  • Use advertised capacity for node and mesh VRAM totals by @ndizazzo in #1746
  • Make the dashboard immune to stray console output by @ndizazzo in #1382
  • Keep --log-format json parseable and block new raw console prints in CI by @ndizazzo in #1376
  • Surface serve and client commands in --help output by @wedigcode in #1607
  • Close the four rc6 release-validation defects by @ndizazzo in #1405

Security

Internal

CI, build, test, and repository work with no user-facing behavior change (120 changes)

CI and release engineering

Build, dependencies, and the llama.cpp pin

  • Update pinned llama.cpp revision by @i386 in #1216
  • Regenerate patch queue for latest upstream by @i386 in #1232
  • Pin iroh to 1.0.3 explicitly by @michaelneale in #1257
  • Advance llama.cpp and simplify the Skippy patch queue by @i386 in #1402
  • Address #1402 review follow-up (dead comparison + Inkling test coverage) by @i386 in #1412
  • Link libvendor-hash.a and test Rust on llama.cpp pin bumps by @michaelneale in #1419
  • Tiered family battery + agent-repaired canary on the family-certify runner by @i386 in #1436
  • Run the llama.cpp canary daily and accept split GGUF metadata by @i386 in #1457
  • Fix llama canary family certification failures by @i386 in #1471
  • Wire the agent repair loop into the upstream canary by @i386 in #1481
  • Heartbeat, arm64 build guard, and push-permission diagnostics for the canary repair loop by @i386 in #1489
  • Preflight repair-token push permission before any repair work by @i386 in #1493
  • Probe actual token write capability in the repair preflight by @i386 in #1496
  • Prune stale /tmp worktrees and fix the preflight probe delete by @i386 in #1499
  • Auto-approve agent tool permissions in the repair sandbox by @i386 in #1502
  • Rebase patch queue onto upstream b19cbe925b by @i386 in #1504
  • Rebase patch queue onto upstream b19cbe925b by @i386 in #1505
  • Ensure the repair PR exists before applying the agent's body by @i386 in #1506
  • Review certified canary repairs with a fresh agent turn by @i386 in #1507
  • Certify the multimodal path with a real mmproj smoke lane by @i386 in #1508
  • Certify Qwen3.8 Flash-Next in the llama family battery by @i386 in #1513
  • Disable ggml compiler-cache autodetection when we decline sccache by @danielwinterw in #1531
  • Rebase patch queue onto upstream cc83d7b482 by @i386 in #1533
  • Rebase patch queue onto upstream 662a0b0121 by @i386 in #1564
  • Restore deterministic llama patch replay by @i386 in #1587
  • Keep llama canary repairs on the certified pin by @i386 in #1627
  • Expand family battery with 15 additional architectures by @i386 in #1683
  • Rebase patch queue onto upstream b31b71f3a0 by @i386 in #1721

Tests and benchmarks

  • Run SWE-Gym through Harbor by @i386 in #1239
  • Wire Playwright into CI and fix the 9 pre-existing /logs failures by @ndizazzo in #1377
  • Tolerate hosted-runner frame cadence by @ndizazzo in #1386
  • Pin scheduler workload fixtures by @i386 in #1450
  • Keep PR tests portable across socket timer granularities by @michaelneale in #1555
  • Close the direct prediction return ring in the distributed driver by @danielwinterw in #1560
  • Add layered KV coverage and performance history by @i386 in #1572
  • Prevent false Iroh diagnoses on macOS LAN tests by @michaelneale in #1573
  • Allow trusted manual benchmark runs by @i386 in #1574
  • Add Agentic Replay for commit performance comparisons by @i386 in #1578
  • Route nightlies to the dedicated white runner by @i386 in #1579
  • Tolerate rejected direct-return writes by @i386 in #1600
  • Certify KV reuse with captured agentic replay by @i386 in #1606
  • Run SafeTensors runtime smoke on affected PRs by @i386 in #1626
  • Compare agentic replay across inference engines by @i386 in #1655
  • Measure CPU runtime seed reuse and explicitly exclude the ineffective seed by @ndizazzo in #1704

Refactors, docs, and repo hygiene

  • Split Skippy by functional boundary by @i386 in #1194
  • Update mesh-llm-ui console dependencies by @ndizazzo in #1286
  • Record unsafe Depot PR authority by @ndizazzo in #1328
  • Define Depot PR cache isolation contract by @ndizazzo in #1329
  • Record Depot PR rollout evidence by @ndizazzo in #1341
  • Complete evidence-backed codebase audit waves by @ndizazzo in #1396
  • Split root Justfile into semantic imports by @ndizazzo in #1458
  • Assign imported Just files to Rust ownership by @ndizazzo in #1464
  • Windows section - native CUDA works on CUDA 13 drivers; document current workarounds by @Virgile-pct in #1535
  • Rework 0009 tagged tool-arg ordering to permute(required) by @i386 in #1540
  • Apply rustfmt to dynamic_library.rs by @Virgile-pct in #1541
  • Silence cfg-gated macOS clippy warnings by @i386 in #1591
  • Quarantine name-driven topology adapter by @i386 in #1604
  • Clean warning and deprecation noise by @i386 in #1618
  • Register skippy-model ownership by @i386 in #1620
  • Make pre-commit validation change-scoped by @i386 in #1580
  • How to run crate test gates on a bare Windows checkout by @Virgile-pct in #1657
  • Silence the Windows-only dead-code lints in mesh-llm-system by @Virgile-pct in #1659

New Contributors

Full Changelog: v0.75.1...v0.76.0