v0.78.0

Netw0rkNoob/VulnClawv0.78.0Oct 4, 2026by github-actions[bot]

Upgrading?

AI Summary

Feature release adding plugin capabilities, payment lifecycle and wallet-plugin controls, cross-language agent streaming APIs, and routing/observability improvements. It includes many fixes for timeouts, model-open queuing, Windows stalled frames, wallet profiles, repetition penalties, and Metal fallback. Security hardening stamps the local endpoint id as the frame source.

Key Highlights

  • Plugins can request a primary tab, contribute web UI slots, hide the host page header, pin catalog versions/SHA-256, and install default plugins on first run.
  • Payments gain provider-side lifecycle events, wallet plugin switching, exchange IDs, and settlement events with credited amount and fee.
  • Adds cross-language agent streaming APIs and a preview OpenAI Decisions API shape.
  • Routing/observability additions include exchange events, operator-local peer blocks, ?target= chat routing, twin_bracket_id, and echoed client nonce.
  • Fixes include downstream read timeout restoration, model-open queue sizing, Windows stalled-frame handling, wallet profile persistence, repetition penalties, and Metal device fallback.

New Features

  • Plugin primary-tab requests
  • Plugin web UI contribution slots
  • Plugin page header control
  • Catalog version and per-platform SHA-256 pinning
  • Default plugin installation on first run
  • Host MoA as a virtual model
  • Provider-side payment lifecycle events
  • Wallet plugin selection and switching
  • Cross-language agent streaming APIs
  • OpenAI Decisions API preview
  • Operator-local peer blocks
  • Chat page ?target= routing
  • twin_bracket_id on exchange envelopes

Full Release Notes

## [0.78.0] - 2026-10-04

### Added

#### plugins

* A plugin page may ask for a primary tab; the operator decides by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2130
* Two web UI contribution slots, a chat message and a Logs request by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2140
* A plugin page can turn off the host's page header by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2141
* Catalog entries can pin a version and a per-platform SHA-256 by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2167
* Install a short list of default plugins on first run, pinned by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2188
* Host MoA as a virtual model by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2045

#### payments

* Provider-side payment.lifecycle.v1 events at the seller ops by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2108
* Let operators choose and switch wallet plugins by @benthecarman in https://github.com/Mesh-LLM/mesh-llm/pull/2133
* One exchange id for the provider's two channels by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2139
* Settlement events carry the wallet's credited amount and fee by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2169

#### Other

* Add cross-language agent streaming APIs by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2071
* Report upgrades and execution environment by @danielwinterw in https://github.com/Mesh-LLM/mesh-llm/pull/2102
* Make the split performance settings reachable and documented (#2112 workstream 1) by @danielwinterw in https://github.com/Mesh-LLM/mesh-llm/pull/2113
* Keep the echoed client nonce on a chat message by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2131
* Exchange id on Logs requests by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2132
* The exchange event names both nodes, with digests on the routed and Responses paths by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2138
* Operator-local peer blocks, which a plugin can request by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2142
* The chat page can send to one node with ?target= by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2143
* An optional twin_bracket_id on the exchange envelopes by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2144
* Let small nodes contribute Laya decisions by @michaelneale in https://github.com/Mesh-LLM/mesh-llm/pull/2148
* Support preview OpenAI Decisions API shape by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2160

### Changed

* Buffer the GGUF metadata readers by @Virgile-pct in https://github.com/Mesh-LLM/mesh-llm/pull/2152

### Fixed

* Restore the downstream read timeout on the handle that changed it by @Virgile-pct in https://github.com/Mesh-LLM/mesh-llm/pull/2103
* Size the model-open queue to the native progress bound by @Virgile-pct in https://github.com/Mesh-LLM/mesh-llm/pull/2104
* Let the inbound reader give up a stalled frame on Windows by @Virgile-pct in https://github.com/Mesh-LLM/mesh-llm/pull/2105
* Preserve wallet profiles and release payments on restart by @michaelneale in https://github.com/Mesh-LLM/mesh-llm/pull/2111
* Initialize the ggml timer for the ngram cache by @Virgile-pct in https://github.com/Mesh-LLM/mesh-llm/pull/2129
* Publish the exchange event on the paid serving path by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2109
* Fall back to MTLCopyAllDevices when the default Metal device is nil by @mayoalexander in https://github.com/Mesh-LLM/mesh-llm/pull/2156
* Reuse verified local-required sources on Windows by @Virgile-pct in https://github.com/Mesh-LLM/mesh-llm/pull/2145
* Make repetition penalties take effect by @benthecarman in https://github.com/Mesh-LLM/mesh-llm/pull/2162
* Pack decode rows past large chunks by @benthecarman in https://github.com/Mesh-LLM/mesh-llm/pull/2157
* Resolve auto fused ops from the stage's own layers by @Virgile-pct in https://github.com/Mesh-LLM/mesh-llm/pull/2174
* Name the payer on the paid serving path's terminal event by @StevenMih in https://github.com/Mesh-LLM/mesh-llm/pull/2176
* Point Docs links at the documentation hub by @iamthesvn in https://github.com/Mesh-LLM/mesh-llm/pull/2153

### Security

* Stamp the local endpoint id as the frame source by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2117

### Internal

<details>
<summary>CI, build, test, and repository work with no user-facing behavior change (37 changes)</summary>

#### CI and release engineering

* Smoke Laya across platform lanes by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2092
* Align ownership with standalone Skippy by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2101
* Stop the Windows PR lane requiring a smoke it cannot run by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2110
* Route the crates verified green on Windows to the windows-unit row by @Virgile-pct in https://github.com/Mesh-LLM/mesh-llm/pull/2068
* Restore Windows and Vulkan Laya smokes by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2118
* Stop routing retired mesh-wallet-lexe by @michaelneale in https://github.com/Mesh-LLM/mesh-llm/pull/2149
* Pin resolve-cargo-packages to resolver that tolerates deleted crates by @michaelneale in https://github.com/Mesh-LLM/mesh-llm/pull/2150
* Resolve standalone frontend in legacy plans by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2161
* Gate the Laya GPU smokes on an exact lowercase true by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2116
* Register Windows unit crate ownership by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2165
* Unblock standalone Skippy PR validation by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2170
* Accept relocated llama.cpp pin in PR guard by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2172
* Run mesh-llm-commands and mesh-llm-system in the windows-unit row by @Virgile-pct in https://github.com/Mesh-LLM/mesh-llm/pull/2128
* Run extracted adapter tests with dynamic runtime on Windows by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2175
* Preserve failed llama canary repair source by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2179
* Diagnose and avoid canary cleanup failures by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2180
* Allow v0.77.0 crates recovery to pull runner image by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2178
* Align static ABI cache and consumers with patched llama by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2181
* Drop the unit row stack reservation by @Virgile-pct in https://github.com/Mesh-LLM/mesh-llm/pull/2177
* End sibling lane monitors after PR edits and closes by @Virgile-pct in https://github.com/Mesh-LLM/mesh-llm/pull/2184
* Retry llama canary family regressions by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2107
* Verify Node SDK assets before publishing by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2185
* Bind protected static ABI cache to patched llama revision by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2187
* Prepare v0.78.0 source by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2203

#### Build and dependencies

* Compile the built-in Lexe wallet out by default by @michaelneale in https://github.com/Mesh-LLM/mesh-llm/pull/2121
* Bump iroh 1.1.0 -> 1.3.0 by @michaelneale in https://github.com/Mesh-LLM/mesh-llm/pull/2171

#### Tests

* Qualify solo agentic replay runtime by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2095
* Check every auto fused op on split stages by @Virgile-pct in https://github.com/Mesh-LLM/mesh-llm/pull/2186

#### Refactors, docs, and hygiene

* Remove unreachable skippy-prompt launch lane and passive/MCP runtime compat lane by @michaelneale in https://github.com/Mesh-LLM/mesh-llm/pull/2073
* Run Laya directly from published model weights by @michaelneale in https://github.com/Mesh-LLM/mesh-llm/pull/2120
* Add the DwarfStar (ds4) engine plugin guide by @michaelneale in https://github.com/Mesh-LLM/mesh-llm/pull/2114
* Design notes around wallet impls by @michaelneale in https://github.com/Mesh-LLM/mesh-llm/pull/2126
* Remove the built-in Lexe wallet by @michaelneale in https://github.com/Mesh-LLM/mesh-llm/pull/2134
* Add security policy by @iamthesvn in https://github.com/Mesh-LLM/mesh-llm/pull/2125
* Fix config example values the validator rejects by @Virgile-pct in https://github.com/Mesh-LLM/mesh-llm/pull/2155
* MacOS Local Network check is troubleshooting, not a deploy gate by @michaelneale in https://github.com/Mesh-LLM/mesh-llm/pull/2124
* Sync the repeat-window copy and note the legacy -1 alias by @i386 in https://github.com/Mesh-LLM/mesh-llm/pull/2168

</details>

## New Contributors
* @mayoalexander made their first contribution in https://github.com/Mesh-LLM/mesh-llm/pull/2156

**Full Changelog**: https://github.com/Mesh-LLM/mesh-llm/compare/v0.77.0...v0.78.0

Related Repositories