Skip to content

mesh: upgrade runtime, enforce membership, add shared compute provider#1656

Open
michaelneale wants to merge 35 commits into
mainfrom
micn/mesh-upgrade
Open

mesh: upgrade runtime, enforce membership, add shared compute provider#1656
michaelneale wants to merge 35 commits into
mainfrom
micn/mesh-upgrade

Conversation

@michaelneale

@michaelneale michaelneale commented Jul 8, 2026

Copy link
Copy Markdown

So this updates buzz to use mesh-llm (a released version of it) via the rust SDK for it.

This also shifts things to use the mesh-llm cryptographic admission control, instead of relying on anon tokens and relay from buzz (doesn't/shoudln't require anything specific from buzz relays - just their membership is enough). This uses the mesh relays (different thing) which are e2e encrypted for better network hole punching, but keeps the membership with the buzz server (actually is more locked down than before).

Also adds a provider type of buzz compute etc - and some ergonomics to do with that.

Had to make a small change to fizz to ensure it would call the right tool to respond (odd, and also saw it with even frontier models, not sure what that was about!).

Doesn't have zero cost when compiled in, adds about 20mb to size due to deps (runtimes are pulled down etc). not looked at that too closely but that is the cost so far.

PTAL!

Summary

  • MeshLLM owns peer transport through direct QUIC and encrypted iroh relay fallback;
  • Buzz clients publish ordinary client-signed NIP-33 discovery notes — no Buzz relay code changes or mesh connection coordinator are required;
  • Buzz supplies current member identities to MeshLLM's native owner-attestation allowlist;
  • roster drift restarts the local MeshLLM node so removed members lose admission;
  • discovery is owner/device-scoped for members sharing one Buzz identity, and stale crashed/offline devices expire after two minutes;
  • restores shared compute before auto-started agents and waits for a real chat completion;
  • exposes provider ID relay-mesh as Buzz shared compute;
  • persists auto or a currently advertised explicit model, with no custom-model escape hatch;
  • translates the native provider to buzz-agent's OpenAI-compatible transport only at spawn time;
  • uses a 1,024-token response budget so ACP/MCP context fits suitable shared models;
  • avoids Keychain dependencies in hardware/admission test paths.

User flow

  1. Open Settings → Compute, choose a model, and enable Share this machine.
  2. Create or edit Fizz/another agent and choose Buzz shared compute.
  3. Choose Default (auto) or a live advertised model.
  4. Start the agent normally. Buzz restores/connects shared compute and waits for inference readiness before spawning it.

Security and architecture

  • Mesh peers attest stable owner identities and MeshLLM enforces the allowlist.
  • Status/discovery notes are signed by the Buzz member and stored by an unchanged generic Nostr relay.
  • Endpoint addresses contain MeshLLM's iroh relay routing; Buzz no longer publishes connect requests or call-me-now events.
  • Admission and model discovery use the intersection of member-signed owner notes and the latest Buzz direct-member roster; removed members disappear from both.
  • Roster lookup fails closed to self-only admission rather than opening the mesh.

Validation

  • Rebased onto current origin/main.
  • Full pre-push gate passed: Rust, desktop frontend, desktop Tauri, and mobile tests.
  • Mesh-enabled desktop clippy with -D warnings: passed.
  • Focused mesh/provider frontend tests: 91 passed.
  • Mesh runtime/admission/provider Rust tests: passed.
  • Post-v0.72.2 passive-stream admission patch verified with the strict three-process hardware harness: trusted inference routed; a stranger reused the same invite token, saw model gossip, and received a 503 when it attempted inference.
  • Physical two-machine proof passed: mini served Qwen3.5 4B with native owner admission; this machine joined as an allowlisted owner and the real release buzz-agent, initialized over ACP with the exact built-in Fizz system prompt, replied MINI_FIZZ_MESH_OK; a second non-allowlisted owner reused the same invite, saw gossip, and received HTTP 503 on inference.
  • Real hardware agent E2E with Qwen3.5 4B: 4/4 passed:
    • explicit model inference
    • auto inference
    • context-fit rejection
    • MCP tool call and file write
  • Real Tauri/Fizz path on one node re-verified at current HEAD after the admission patch and latest-main rebase: desktop restored Qwen3.5 4B, spawned Fizz → buzz-acp → buzz-agent with native shared-compute env, received a Buzz mention, and Fizz published the exact expected response in 33 seconds.

The hardware harness may print a known llama.cpp Metal static-destructor backtrace only after checks complete successfully.

A step-by-step local dev GUI/Fizz verification runbook is in docs/buzz-shared-compute-dev.md.

Remaining review gate

  • Human PR review/approval.

@michaelneale michaelneale changed the title mesh: upgrade to mesh-llm v0.72.2, relay tunneling on, membership-derived admission (WIP) mesh: upgrade runtime, enforce membership, add native agent provider Jul 9, 2026
@michaelneale michaelneale force-pushed the micn/mesh-upgrade branch 2 times, most recently from 89fac0f to 0387003 Compare July 10, 2026 03:22
@michaelneale michaelneale changed the title mesh: upgrade runtime, enforce membership, add native agent provider mesh: upgrade runtime, enforce membership, add shared compute provider Jul 10, 2026
@michaelneale michaelneale force-pushed the micn/mesh-upgrade branch 5 times, most recently from 412f7fb to 2e69859 Compare July 13, 2026 06:39
@michaelneale michaelneale marked this pull request as ready for review July 14, 2026 08:24
@michaelneale michaelneale requested a review from a team as a code owner July 14, 2026 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant