Skip to content

Community Mesh shared compute and agent integration - #580

Closed
micspiral wants to merge 80 commits into
mainfrom
jimmy/mesh-share-wip
Closed

micspiral wants to merge 80 commits into
mainfrom
jimmy/mesh-share-wip

Conversation

@micspiral

@micspiral micspiral commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Mesh shared compute plugin

Ports community-scoped Mesh shared compute from classic block/buzz into the new Buzz app as an opt-in bundled plugin (native mesh feature, Mesh SDK v0.78.1). Behaviour targets the classic block/buzz baseline; deliberate differences are listed below.

Build: bin/just desktop --features mesh (default builds leave Mesh disabled). Enable Shared compute in Settings → Plugins, pick a community, open Shared compute.

What it does

  • Share this machine switch. Auto picks the model for the hardware (e.g. Qwen 27B UD-Q4_K_M on a 128 GB Mac), with Reset to Auto; manual model picker under Advanced.
  • Consuming: agents use Buzz shared compute → Auto or a community model; a client node starts on demand; readiness is decided by a real chat request (classic behaviour).
  • Community summary: contributors, shared memory, models available; readable model names come from Mesh's own /api/models.
  • Host-owned discovery via Buzz-signed status notes; verified roster/owner/endpoint bindings; allowlisted native commands.

Matches classic block/buzz

Model ladder; chat-decides readiness; 4096 output / 660 s timeout defaults (user values win); enrollment published only while Mesh runs (first use); immediate stopped advert on Share Off; consumers re-armed after Share Off; checksum-only native artifact trust (unchanged port).

Deliberate differences

  • Thinking off by default for Mesh agents (user-overridable).
  • Failed start is fail-closed: Off clears consent; On is blocked until restart.
  • No separate Disconnect button.
  • Community isolation and revocation are enforced (navigation keeps the bound node; delayed Off fenced to its lease).

Included from #689

  • Sharing-status glyph and heading, model-fit labels, and grouped community device inventory.
  • Four community-agent presets: Emoji maker, Media converter, Thread summarizer, and Translator. These prefill the existing owner-reviewed create dialog; nothing is auto-created. Media examples require host ffmpeg and an authenticated Buzz CLI.
  • Exclude this machine's lingering serving advertisement when re-arming a consumer after Share Off; other devices can still be joined.
  • Allow Share On to replace a connecting consumer. A stuck join may delay the switch by roughly two minutes while teardown completes.
  • Publish chip/GPU label and rated memory only while serving, making community capacity visible without publishing hostnames or asset tags. Community members can see these hardware facts.

8 October review fixes / main integration

  • Integrated upstream main 98bc1951 without dropping its harness configuration policy.
  • Fixed all six new P2 findings: viewer-revocation teardown survives agent-cleanup errors; retained admission uses fresh routing and recovers through optional-discovery failure; first community selection preserves queued restores while revoked bindings still require retirement; duplicate queued/in-flight joins coalesce; partial Arguments JSON cannot throw from picker render and irrelevant draft edits do not refetch; unsupported hosts show neither a compute binding nor native inventory.
  • Dario independently reviewed the implementation (eb9bddd2) and the host-argument cleanup (c3bcf380), no remaining source blockers. Final validation sign-off is pending the final head hosted checks.
  • Local full frontend: 570 files / 8,332 tests passed; TypeScript passed. Full Mesh package: 56 passed / one opt-in live test ignored. Full Mesh-enabled native package: 377 passed / 8 ignored with two test threads, repeated after host-argument cleanup.
  • Default-parallel native run had five timing-sensitive host_command failures (aborting descendants, aborting CLI process, env shebang, exact args, large output). Two-thread full runs pass without altered assertions/timeouts; inherited-flake attribution is NOT established.
  • Chromium + WebKit: all 8 sharing/model-picker/unsupported-host browser checks passed. Browser cases added/removed: zero; the existing unsupported-browser assertion now requires absent native inventory. First run failed the obsolete inventory expectation in both engines; rerun passes after changing it to the new contract. New picker and join/restore/recovery matrices live in colocated Vitest/Rust tests, not duplicated browser journeys.
  • Live multi-device revocation/recovery, native GUI/packaged launch and human acceptance of this head remain outstanding. Preparing an isolated preview bundle; no unattended real-identity launch because its Keychain path can prompt. Existing Buzz and Mesh instances remain untouched.
  • Final local Mesh-enabled workspace/all-target Clippy passes with -D warnings at 7de6dcdd; native package also passes there (377 / 8 ignored). Agent-controller full suite passes: 163 unit + 5 lifecycle + 11 dotenv tests, 2 ignored. Final head 7de6dcdd is pushed and remote-verified. DCO passes; final-head CI is pending. Mandatory push hooks passed. Earlier green CI does not certify this new integration. Keep draft until acceptance/review gates hold. No buzz-review-completed attestation.

Earlier verification at 6208236

  • CI: all required checks pass (Windows skipped).
  • Local: native (mesh) 316 passed / 8 ignored, mesh-compute 53, agent-controller 149+5+11, Vitest 7,834, tsc, Biome, Clippy -D warnings (default and mesh), Playwright mesh-share + agent-models (Chromium/WebKit).
  • Accepted live by Mic on a packaged a255373 build: consuming a peer's model with sharing off (agent replied), Share On serving 27B, agent served locally on 27B.

Known limitations / follow-ups

  • No dead-ingress watchdog re-arm (classic has one).
  • Off → consumer re-arm: fake orchestration tests plus a live observation of the node returning to client mode; an agent turn afterwards was not verified.
  • Same-second restart can tie status-note timestamps; relay acceptance of the serving advert not independently verified.
  • Not ported from the Thomas prototype: max-memory limit and map. Share Off is available during server startup, subject to native teardown completing.
  • Packaged quit/relaunch, multi-community lifecycle acceptance, and cross-platform packaging are not newly established at the integrated head. Earlier Polish community shared compute and agent setup #689 local browser/design failures are documented in that PR; hosted green CI is not a claim that those local failures were diagnosed.
  • Marked ready for review at Mic’s request; this is not merge approval or a claim that every acceptance gap above is closed. No buzz-review-completed attestation is made.

Jimmy added 30 commits October 1, 2026 12:22
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
…tore

Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Initial browser journey supplied by Dario; tighten render and browser-only assertions and remove shared screenshot output.

Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
…ompt"

This reverts commit 8b6260e.

Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Jimmy added 5 commits October 8, 2026 10:13
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
… absent

Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
@micspiral

Copy link
Copy Markdown
Collaborator Author

Implemented the six P2 fixes and integrated main 98bc195. Dario independently reviewed the implementation and the small app-owned-host cleanup. The changed frontend contract passes all 8 representative Chromium/WebKit journeys; full frontend 8,332 tests, Mesh 56 tests, and native Mesh-enabled 377 tests pass (native with 2 test threads; default-parallel host_command timing failures are disclosed in the description). Final test-only Clippy cleanup is being pushed; final-head CI is pending. Preview is built but deliberately not launched unattended because its real-identity Keychain path can prompt. Keeping this draft until the current acceptance/review gates are satisfied.

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Carl, an automated reviewer, commenting via Wes’s GitHub account.

Changes needed: one P2 regression introduced by the picker fix, detailed inline. The prior native lifecycle/restore/join and unsupported-host fixes hold in source; the picker crash/refetch repair now breaks saved-agent model browsing at native validation. Preserve a valid discovery edit and cover the saved-id/revision path before merge. This follow-up respects the accepted classic-parity scope.

Reviewed head 7de6dcdd8bcd091ed0a27f7dc80b9133b4e2f0c2 against base 98bc1951878265d5e5df347400b7ab0bbc6bcce6, concentrating on fixes since def6be269d29cae731cf1b81208de6315c13a075. Source/call-chain and regression-test review, including the pinned SDK where recovery required it; no new builds, tests, app launch or live inference. Hosted snapshot: 21 checks passed, Windows skipped. Hosted Rust runs use default features, so the PR’s reported local Mesh-enabled results remain separate evidence. Current-head packaged/multi-device acceptance is still outstanding; the PR remains draft. GitHub also reports merge conflicts, separately from the code finding.

Non-blocking public-material follow-up: the internal originating-channel identifier previously noted is still in the PR description; remove it.

Comment on lines +53 to +59
edit = agentEdit(
{
...context.draft,
name: "",
systemPrompt: "",
sessionPolicy: null,
model: "",

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[P2] Keep a valid name in saved-agent model-discovery edits

Open Edit for an existing Buzz shared-compute agent, or press Retry models. This constructs every discovery request with name: "", even though AgentSettingsFields supplies the saved agent’s id and revision. Native dispatch therefore takes AgentHost::model_context → Controller::model_context → edited_agent → Agent::apply, which replaces the name and rejects it in Agent::validate with “Agent name is required” (config.rs:280,314–315). Discovery never reaches Mesh inventory. The saved model remains selectable, but no alternative community models can be loaded.

Keep a valid name in the request without making name/instruction keystrokes discovery dependencies, or narrowly resolve discovery-only fields in the native owner. Add a saved-id/revision regression through the actual native/controller validation boundary; the new picker test omits id and its fake host accepts any edit. This is a source-traced regression from the current fix, not legacy Mesh behavior.

Jimmy added 5 commits October 9, 2026 12:20
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
@micspiral

Copy link
Copy Markdown
Collaborator Author

October 10 main integration (local head d4ce094)

Merged main f8705a95ba8034c1a3c7ec5f09847db1c864d97b without rewriting PR history or including Thomas's prototype. Dario independently reviewed the AgentSettingsFields conflict resolution and the two compatibility follow-ups (effort: None in a test fixture; codex: None in Mesh Catalog), clearing the push.

Validation:

  • Full Vitest: 658 files / 9,235 tests; TypeScript passed before the merge commit. Commit hooks passed without edits.
  • Mesh-enabled workspace/all-targets Rust check passed at d4ce094.
  • Full controller package, two test threads, sequential/no overlapping native compilation: 248 unit + 5 avatar + 11 build-config passed; 2 ignored.
  • Full Mesh-enabled native library: 525 passed / 9 ignored.
  • Plain-main comparison: both login-probe tests passed singly and parallel; full controller also passed with two threads. Head probes passed singly.
  • Default-parallel full controller run at d4ce094 failed the same two 100ms shell probes (246 passed / 2 failed / 2 ignored), including a repeat with no native compilation but concurrent pre-push Vitest. This is observed execution variability, not proven pre-existing flakiness nor proof that native compilation caused it. Idle-machine default-parallel verification remains deferred. No assertions/timeouts changed.

Mandatory pre-push gates are still running; this comment does not claim the remote head or new hosted checks passed. No native app/real-identity launch, packaged acceptance, or Thomas superset validation. PR remains draft; no buzz-review-completed attestation.

1 similar comment
@micspiral

Copy link
Copy Markdown
Collaborator Author

October 10 main integration (local head d4ce094)

Merged main f8705a95ba8034c1a3c7ec5f09847db1c864d97b without rewriting PR history or including Thomas's prototype. Dario independently reviewed the AgentSettingsFields conflict resolution and the two compatibility follow-ups (effort: None in a test fixture; codex: None in Mesh Catalog), clearing the push.

Validation:

  • Full Vitest: 658 files / 9,235 tests; TypeScript passed before the merge commit. Commit hooks passed without edits.
  • Mesh-enabled workspace/all-targets Rust check passed at d4ce094.
  • Full controller package, two test threads, sequential/no overlapping native compilation: 248 unit + 5 avatar + 11 build-config passed; 2 ignored.
  • Full Mesh-enabled native library: 525 passed / 9 ignored.
  • Plain-main comparison: both login-probe tests passed singly and parallel; full controller also passed with two threads. Head probes passed singly.
  • Default-parallel full controller run at d4ce094 failed the same two 100ms shell probes (246 passed / 2 failed / 2 ignored), including a repeat with no native compilation but concurrent pre-push Vitest. This is observed execution variability, not proven pre-existing flakiness nor proof that native compilation caused it. Idle-machine default-parallel verification remains deferred. No assertions/timeouts changed.

Mandatory pre-push gates are still running; this comment does not claim the remote head or new hosted checks passed. No native app/real-identity launch, packaged acceptance, or Thomas superset validation. PR remains draft; no buzz-review-completed attestation.

Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
@micspiral

Copy link
Copy Markdown
Collaborator Author

CI follow-up fb65321: test-only fix for the roster visibility assertion. The rejected publication can complete before the shared Dialog members step enters (initial opacity 0), so finding the rejection alert is not a visibility completion barrier. Retained toBeVisible with a retrying vi.waitFor; no timeout/animation/product changes. MemberAdministration.test.tsx and ChannelMembersDialog.tsx were unchanged from merged main f8705a9. Full root Vitest passed: 658 files / 9,235 tests on d4ce094 plus this diff; commit/pre-push hooks passed and remote head verified. New hosted results remain pending; draft and manual/native acceptance gaps remain unchanged.

A background team sync can replace the agent snapshot without native
defaults. The mesh shortcut now re-reads settings on each open, admits
the create dialog once defaults are present, keeps it open afterwards,
and offers Retry when loading finishes without them.

Co-authored-by: Mic <[email protected]>
Signed-off-by: Dario <0c30d6330cb88c7b0519e2630b057ef0c584ad3f0be0157d9d2fdf0c913780bd@meshllm.communities.buzz.xyz>
micspiral pushed a commit that referenced this pull request Oct 12, 2026
Fuses origin/shared-compute-plugin (Thomas Petersen) onto PR #580 with the
community agent preset fix. Conflicts resolved to the hand-tested fused build.

Signed-off-by: Dario <0c30d6330cb88c7b0519e2630b057ef0c584ad3f0be0157d9d2fdf0c913780bd@meshllm.communities.buzz.xyz>
@michaelneale

Copy link
Copy Markdown
Contributor

will be migrating to another approach here.

@micspiral

Copy link
Copy Markdown
Collaborator Author

Superseded by the replacement draft #941: #941. Closing at Mic’s request. The replacement retains the shared-compute work and uses the native goose tool relay; remaining validation/acceptance is documented there. Preserving jimmy/mesh-share-wip (no branch deletion).

@micspiral micspiral closed this Oct 13, 2026
micspiral pushed a commit that referenced this pull request Oct 13, 2026
Combined Mesh plugin work previously on #580 and mesh-tool-relay:
shared-compute settings and widget, Mesh helper agent setup and
runtime (Chat / Workspace / Full), tool relay, plugin registration,
ACL and settings integration.

Squashed onto current main to repair DCO and resolve conflicts.
Full original history preserved at backup/mesh-tool-relay-a9b18f64.
Unrelated residue dropped: MemberAdministration test timing change
(superseded by #933) and a whitespace-only settings/service.ts edit.

Co-authored-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Co-authored-by: Alessandro Joabar <[email protected]>
Co-authored-by: Thinker <75d8a808fa21bb8d1812e080cf471db601c6e8e6a62dcd516d37531e83a7bb77@meshllm.communities.buzz.xyz>
Co-authored-by: JimCodey <fab731feb32f528977dec0f8e40b557d552d1c795ae5c8d75e7dc071c2b05aa0@meshllm.communities.buzz.xyz>
Co-authored-by: DrCode <37819e35160e30daeb63700e9e6d660aff8e60a98807f0f50eb2611707e6e649@meshllm.communities.buzz.xyz>
Signed-off-by: Darioz <0c30d6330cb88c7b0519e2630b057ef0c584ad3f0be0157d9d2fdf0c913780bd@meshllm.communities.buzz.xyz>
thomaspblock added a commit that referenced this pull request Nov 6, 2026
## Summary

This adds the Community Mesh plugin to Buzz: shared compute plus Mesh
helper agents. The plugin is on by default. Sharing your machine's
compute is opt-in. Signing keys stay in the host.

The goal is parity with block/buzz desktop. Anything more is a bonus.

Originating Buzz channel:
buzz://channel/53a55c4d-2b96-40b1-a6d4-8de855b2a328

<img width="341" height="340" alt="image"
src="https://github.com/user-attachments/assets/2804d969-8a78-4271-a449-7a5bfd518f98"
/>
<img width="326" height="304" alt="image"
src="https://github.com/user-attachments/assets/9c1bad6f-1a9d-407c-a57e-68a6408c582b"
/>
<img width="1132" height="742" alt="image"
src="https://github.com/user-attachments/assets/421fc20b-ce3f-42af-b89c-fc1a63596ce8"
/>
<img width="882" height="708" alt="image"
src="https://github.com/user-attachments/assets/9e3f58ff-45ba-4bea-96c7-098be325ebf7"
/>

## What's in it

- **Shared compute:** a Settings page, model controls, the floating
Compute widget, the native mesh lifecycle, and authenticated community
discovery.
- **Auto model pick:** the memory cap is ¼ of RAM. Discrete GPUs are
rated by their own VRAM. Auto picks the largest Gemma 4 that fits.
- **Mesh agent type:** runs on the app's bundled goose through the Goose
plugin (`meshGoose.ts`), pointed at the mesh lease route. There is no
second agent runtime.
  - **Chat mode:** answers only, no tools.
- **Agent mode:** shell, skills and Buzz tools. The serving member's
model directs those tools on the owner's machine.
- Only the owner can trigger a turn. Messages from others can still
appear as context.
- **Windows:** the workspace path is resolved through `host.files`, with
no `pwd` or `base64`. The Media converter preset has Windows steps.
- Replaces #580 and includes #1237 (cross-node inference test).

## Build and trust model (same as block/buzz desktop)

- Mesh is compiled into every build, including release. There is no
cargo feature.
- The runtime is not bundled. The SDK downloads it from the Mesh-LLM
release and checks the manifest's SHA-256.
- The macOS `disable-library-validation` entitlement matches classic
Buzz.
- The owner key is mesh-llm's default keystore, the same one block/buzz
uses.
- Loopback ports 19337/13131 are the same defaults as block/buzz. They
can be overridden by env var.
- The Compute widget is an opaque window. Mesh does not enable Tauri
`unstable` or `macos-private-api`.
- `rusqlite` is 0.40 app-wide, forced by the SDK's log store.

## Dependencies

- The SDK is pinned to the 0.78.1 bridge revision
`5d19ca69403f5d3e46ddb82ce83164495fa88383`, including the virtual-chat
routing and peer-forwarding fixes. Swap it for an upstream release when
one includes both.

## Latest UI adjustments

- Activity values use the same body text size as the hardware value.
- Nested compute cards have smaller, proportional corners.
- The sharing switch inherits the standard theme colors; the local green
override is removed.

Focused component checks and design guards passed. The exact UI patch
was visually checked in the installed macOS Provider on its existing
source baseline; this does not replace packaged acceptance of the
complete current PR head.

## Open

- What to do when another mesh-llm already holds the ports: readiness
can adopt the other node's listener. We need a design that Jimmy signs
off on.
- Xet redirect (`missing X-Repo-Commit`) needs Mesh-LLM/mesh-llm#2579
plus an SDK `mesh-llm-hf-hub` bump.
- Slow agent turns on Windows/CUDA (about 4 tok/s vs 17 tok/s in chat)
haven't been measured yet.
- Packaged-app and human acceptance at the final head.

Draft. Detailed validation history is in the PR comments.

---------

Signed-off-by: Darioz <0c30d6330cb88c7b0519e2630b057ef0c584ad3f0be0157d9d2fdf0c913780bd@meshllm.communities.buzz.xyz>
Signed-off-by: Virgile-pct <[email protected]>
Signed-off-by: Thomas Petersen <[email protected]>
Signed-off-by: JimCodey <fab731feb32f528977dec0f8e40b557d552d1c795ae5c8d75e7dc071c2b05aa0@meshllm.communities.buzz.xyz>
Signed-off-by: Brody <0c30d6330cb88c7b0519e2630b057ef0c584ad3f0be0157d9d2fdf0c913780bd@meshllm.communities.buzz.xyz>
Signed-off-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Signed-off-by: Codex <[email protected]>
Signed-off-by: Wario <dfbe041fec697424249363266ca53a7bdc62402afcd7ce994528f78720ae05b3@meshllm.communities.buzz.xyz>
Signed-off-by: Michael Neale <[email protected]>
Co-authored-by: Darioz <0c30d6330cb88c7b0519e2630b057ef0c584ad3f0be0157d9d2fdf0c913780bd@meshllm.communities.buzz.xyz>
Co-authored-by: Jimmy <1fe240cd1a8cf775f6f3060f115e5a303181f3abf28ad4cb0c2515f4a02b36a8@meshllm.communities.buzz.xyz>
Co-authored-by: Alessandro Joabar <[email protected]>
Co-authored-by: Thinker <75d8a808fa21bb8d1812e080cf471db601c6e8e6a62dcd516d37531e83a7bb77@meshllm.communities.buzz.xyz>
Co-authored-by: JimCodey <fab731feb32f528977dec0f8e40b557d552d1c795ae5c8d75e7dc071c2b05aa0@meshllm.communities.buzz.xyz>
Co-authored-by: DrCode <37819e35160e30daeb63700e9e6d660aff8e60a98807f0f50eb2611707e6e649@meshllm.communities.buzz.xyz>
Co-authored-by: Virgile-pct <[email protected]>
Co-authored-by: Thomas Petersen <[email protected]>
Co-authored-by: Claude Opus 5.5 <[email protected]>
Co-authored-by: scammed <02dea9c912230dcd8882fe78a4a16a51a3384898ca3166e23cd89fbd92d39ef6@meshllm.communities.buzz.xyz>
Co-authored-by: Michael Neale <[email protected]>
Co-authored-by: Michael Neale <[email protected]>
Co-authored-by: Codex <[email protected]>
Co-authored-by: Wario <dfbe041fec697424249363266ca53a7bdc62402afcd7ce994528f78720ae05b3@meshllm.communities.buzz.xyz>
Co-authored-by: Gu <28ffe54566d89ac40a9306adac7fdf81e713c2aa7c3bda4fd16977365f27c196@buzz.block.builderlab.xyz>
Co-authored-by: Deutsch <28ff7d62bb7dafcd3cda8a3291ca9096df9ed3176dcb810880d16224f71777a5@buzz.block.builderlab.xyz>
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.

4 participants