feat: import Chinese-localized Buzz source snapshot
Docker image / Build (linux/amd64) (push) Has been cancelled
Docker image / Build (linux/arm64) (push) Has been cancelled
Docker image / Merge release multi-arch manifest (push) Has been cancelled
Docker image / Merge debug multi-arch manifest (push) Has been cancelled
Docker image / Build public push gateway (linux/amd64) (push) Has been cancelled
Docker image / Build public push gateway (linux/arm64) (push) Has been cancelled
Docker image / Publish public push gateway image (push) Has been cancelled
Sprig image / Build (linux/amd64) (push) Has been cancelled
Sprig image / Build (linux/arm64) (push) Has been cancelled
Sprig image / Merge multi-arch manifest (push) Has been cancelled
Harbor Buzz Orchestra / Python tests and lint (push) Has been cancelled
CI / Detect Changed Paths (push) Has been cancelled
CI / Rust Lint (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Desktop Core (push) Has been cancelled
CI / Desktop Smoke E2E (1) (push) Has been cancelled
CI / Desktop Smoke E2E (2) (push) Has been cancelled
CI / Desktop Smoke E2E (3) (push) Has been cancelled
CI / Desktop Smoke E2E (4) (push) Has been cancelled
CI / Desktop (push) Has been cancelled
CI / Desktop E2E Relay (push) Has been cancelled
CI / Desktop E2E Integration (1/2) (push) Has been cancelled
CI / Desktop E2E Integration (2/2) (push) Has been cancelled
CI / Desktop E2E Integration (push) Has been cancelled
CI / Backend Integration (relay e2e) (push) Has been cancelled
CI / Relay E2E (push) Has been cancelled
CI / Web (push) Has been cancelled
CI / Mobile (push) Has been cancelled
CI / Security (push) Has been cancelled
CI / Dead Token Reference Guard (push) Has been cancelled
CI / Server Cross-Compile (aarch64-unknown-linux-musl) (push) Has been cancelled
CI / Server Cross-Compile (x86_64-unknown-linux-musl) (push) Has been cancelled
CI / Windows Rust (x86_64-pc-windows-msvc) (push) Has been cancelled
CI / Desktop Build (macOS) (push) Has been cancelled
helm chart / lint + unittest + render matrix (push) Has been cancelled
helm chart / install on kind (gated) (push) Has been cancelled
helm chart / publish chart to GHCR (push) Has been cancelled
Mesh Lifecycle / Relay-Driven Mesh Lifecycle Smoke (push) Has been cancelled
Sprig / Build (aarch64-unknown-linux-musl) (push) Has been cancelled
Sprig / Build (x86_64-unknown-linux-musl) (push) Has been cancelled
Sprig / Publish rolling release (push) Has been cancelled
Sprig / Publish tagged release (push) Has been cancelled
Docker image / Build (linux/amd64) (push) Has been cancelled
Docker image / Build (linux/arm64) (push) Has been cancelled
Docker image / Merge release multi-arch manifest (push) Has been cancelled
Docker image / Merge debug multi-arch manifest (push) Has been cancelled
Docker image / Build public push gateway (linux/amd64) (push) Has been cancelled
Docker image / Build public push gateway (linux/arm64) (push) Has been cancelled
Docker image / Publish public push gateway image (push) Has been cancelled
Sprig image / Build (linux/amd64) (push) Has been cancelled
Sprig image / Build (linux/arm64) (push) Has been cancelled
Sprig image / Merge multi-arch manifest (push) Has been cancelled
Harbor Buzz Orchestra / Python tests and lint (push) Has been cancelled
CI / Detect Changed Paths (push) Has been cancelled
CI / Rust Lint (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Desktop Core (push) Has been cancelled
CI / Desktop Smoke E2E (1) (push) Has been cancelled
CI / Desktop Smoke E2E (2) (push) Has been cancelled
CI / Desktop Smoke E2E (3) (push) Has been cancelled
CI / Desktop Smoke E2E (4) (push) Has been cancelled
CI / Desktop (push) Has been cancelled
CI / Desktop E2E Relay (push) Has been cancelled
CI / Desktop E2E Integration (1/2) (push) Has been cancelled
CI / Desktop E2E Integration (2/2) (push) Has been cancelled
CI / Desktop E2E Integration (push) Has been cancelled
CI / Backend Integration (relay e2e) (push) Has been cancelled
CI / Relay E2E (push) Has been cancelled
CI / Web (push) Has been cancelled
CI / Mobile (push) Has been cancelled
CI / Security (push) Has been cancelled
CI / Dead Token Reference Guard (push) Has been cancelled
CI / Server Cross-Compile (aarch64-unknown-linux-musl) (push) Has been cancelled
CI / Server Cross-Compile (x86_64-unknown-linux-musl) (push) Has been cancelled
CI / Windows Rust (x86_64-pc-windows-msvc) (push) Has been cancelled
CI / Desktop Build (macOS) (push) Has been cancelled
helm chart / lint + unittest + render matrix (push) Has been cancelled
helm chart / install on kind (gated) (push) Has been cancelled
helm chart / publish chart to GHCR (push) Has been cancelled
Mesh Lifecycle / Relay-Driven Mesh Lifecycle Smoke (push) Has been cancelled
Sprig / Build (aarch64-unknown-linux-musl) (push) Has been cancelled
Sprig / Build (x86_64-unknown-linux-musl) (push) Has been cancelled
Sprig / Publish rolling release (push) Has been cancelled
Sprig / Publish tagged release (push) Has been cancelled
Signed-off-by: cls_宁波本机 <908705107@qq.com>
This commit is contained in:
@@ -0,0 +1,167 @@
|
||||
# Buzz shared compute: local GUI verification
|
||||
|
||||
This runbook verifies the actual desktop path used by the built-in **Fizz** agent:
|
||||
|
||||
`Buzz Desktop → buzz-acp → buzz-agent → MeshLLM SDK → local/remote compute`
|
||||
|
||||
It does not use a substitute agent harness.
|
||||
|
||||
## Before starting
|
||||
|
||||
Run from the `block/buzz` repository root on the mesh-enabled branch.
|
||||
|
||||
For a completely fresh, deterministic local state, use:
|
||||
|
||||
```bash
|
||||
. ./bin/activate-hermit
|
||||
just mesh-dev-fresh
|
||||
```
|
||||
|
||||
This removes development app data, the development keyring entry,
|
||||
`~/.buzz-dev`, and local Docker volumes; it preserves the installed Buzz app's
|
||||
data, production keyring, and `~/.buzz`. The first dev page load also clears
|
||||
only that dev server origin's WebKit storage, so saved fields from an earlier
|
||||
run cannot leak into the fresh state. It then seeds local channels and starts
|
||||
the mesh-enabled desktop with the repository's public Tyler test identity.
|
||||
That identity is a fixture and must never be pointed at staging or production.
|
||||
|
||||
If using `mesh-dev-fresh`, the clean window opens at **Welcome to Buzz**. Join
|
||||
the seeded local community before continuing:
|
||||
|
||||
1. Click **Join a community**.
|
||||
2. Use any local name, such as **Local Buzz**.
|
||||
3. Set **Community URL** to `ws://localhost:3000` and join.
|
||||
4. Complete the short profile setup if it appears.
|
||||
|
||||
The recipe already supplied the repository's public test identity and seeded
|
||||
the local channels. Do not import or generate another key. Continue at **Share
|
||||
this machine** below.
|
||||
|
||||
Free the development ports if a previous run was interrupted:
|
||||
|
||||
```bash
|
||||
lsof -nP -iTCP:3000 -iTCP:8080 -iTCP:9102 -iTCP:9337 -iTCP:3131
|
||||
```
|
||||
|
||||
Stop only stale Buzz/MeshLLM processes shown by that command. Do not leave a
|
||||
standalone `mesh-llm` process using `9337` or `3131`; the desktop owns those
|
||||
ports during this test.
|
||||
|
||||
## 1. Launch the mesh-enabled desktop
|
||||
|
||||
```bash
|
||||
. ./bin/activate-hermit
|
||||
just mesh=1 dev
|
||||
```
|
||||
|
||||
Keep that terminal open. The first run may build/install the native runtime and
|
||||
take several minutes. Wait for the Buzz window to open and for the terminal to
|
||||
stop printing build progress.
|
||||
|
||||
Using plain `just dev` is not sufficient: the Compute UI and embedded MeshLLM
|
||||
runtime are behind the `mesh-llm` feature.
|
||||
|
||||
## 2. Share this machine
|
||||
|
||||
1. Open **Settings**.
|
||||
2. Select **Compute**.
|
||||
3. Under **Share compute**, choose a suggested model.
|
||||
- On a 16 GB Apple Silicon machine, use a suggested Qwen3.5 4B quantized
|
||||
model when available.
|
||||
- `unsloth/Qwen3.5-4B-GGUF:Q4_K_M` is the model used by the hardware proof.
|
||||
- Do not use a sub-1B model for the channel-reply proof. It can prove that
|
||||
inference is reachable while still failing the agent's long prompt and
|
||||
required message-send tool call.
|
||||
4. Turn on **Share this machine**.
|
||||
5. Wait until the card says it is sharing/running. Do not start Fizz while the
|
||||
card says downloading, preparing, or starting.
|
||||
|
||||
Buzz may download the model on first use. The model picker ranks models for the
|
||||
current hardware; avoid entering a model the card marks too large.
|
||||
|
||||
## 3. Make shared compute the agent default
|
||||
|
||||
1. Open **Agents** from the left sidebar.
|
||||
2. In **Agent defaults**, set **Default LLM provider** to
|
||||
**Buzz shared compute**.
|
||||
3. Set **Default model** to **Default (auto)**.
|
||||
4. Click **Save defaults** and wait for **Saved**.
|
||||
|
||||
Fizz has no pinned runtime/provider/model, so it inherits these defaults and
|
||||
resolves to the bundled `buzz-agent`. No API key is required.
|
||||
|
||||
## 4. Start the real Fizz path
|
||||
|
||||
1. Find the **Fizz** card on the Agents screen.
|
||||
2. If Fizz is stopped, click the small play badge over its avatar. If it is
|
||||
running, the badge is a green status dot instead of a stop control.
|
||||
3. Wait for its runtime indicator to become active.
|
||||
4. Add Fizz to a channel if it is not already a channel member.
|
||||
5. In that channel, send:
|
||||
|
||||
```text
|
||||
@Fizz Reply exactly: FIZZ_MESH_OK
|
||||
```
|
||||
|
||||
6. Confirm that Fizz replies `FIZZ_MESH_OK` in the channel.
|
||||
|
||||
That channel response is the end-to-end proof. A green Compute card alone proves
|
||||
only model serving; it does not prove the Fizz harness and provider inheritance.
|
||||
|
||||
To stop a running agent, click the body/name of its card to open its profile,
|
||||
then click **Stop** near the top. The green avatar badge is status-only while the
|
||||
agent is running. Once stopped, the profile action becomes **Respawn** and the
|
||||
avatar badge becomes a play button.
|
||||
|
||||
To create a separate test agent, choose **New agent → New agent**, use
|
||||
**buzz-agent** as the runtime, **Buzz shared compute** as the LLM provider,
|
||||
**Default (auto)** as the model, and **This computer** under **Run on**. Shared
|
||||
compute is an LLM provider; do not select a remote compute backend as the run
|
||||
location merely because its name mentions mesh.
|
||||
|
||||
## 5. Optional diagnostics
|
||||
|
||||
While Buzz is running:
|
||||
|
||||
```bash
|
||||
# The desktop should own both ports.
|
||||
lsof -nP -iTCP:9337 -iTCP:3131
|
||||
|
||||
# The embedded OpenAI-compatible ingress should advertise the model.
|
||||
curl -sS http://127.0.0.1:9337/v1/models | jq '.data[].id'
|
||||
|
||||
# Fizz should resolve through the real managed-agent subprocesses.
|
||||
ps -eo pid,ppid,command | grep -E '[b]uzz-(desktop|acp|agent)'
|
||||
```
|
||||
|
||||
If Fizz fails, open its runtime details from the Agents screen first. Common
|
||||
causes are:
|
||||
|
||||
- launched with `just dev` instead of `just mesh=1 dev`;
|
||||
- a stale process owns `9337`/`3131`;
|
||||
- the model is still downloading or preparing;
|
||||
- Fizz is not a member of the channel;
|
||||
- defaults were changed but not saved;
|
||||
- no current Buzz membership snapshot is available (admission fails closed).
|
||||
|
||||
## Security boundary
|
||||
|
||||
Buzz publishes member-signed discovery notes through an ordinary relay-supported
|
||||
NIP-51 event. The note includes a MeshLLM-key signature binding the member to the
|
||||
advertised MeshLLM node identity, plus a second signature over the exact endpoint
|
||||
tokens in the note. Current Buzz membership controls which node identities are
|
||||
admitted. A serving target is selectable only when its endpoint signature is
|
||||
valid, its invite token decodes as a bounded Iroh endpoint, and every advertised
|
||||
relay URL matches this machine's locally configured Iroh relay policy.
|
||||
|
||||
`BUZZ_MESH_IROH_RELAYS` defaults to Iroh's production relay set. Set it to `0`
|
||||
for direct QUIC only, or to a comma-separated HTTPS allowlist for custom relays.
|
||||
Plain HTTP is accepted only for loopback development relays. Remote status notes
|
||||
cannot expand this local allowlist.
|
||||
|
||||
MeshLLM—not the Buzz relay—carries inference over direct QUIC or its encrypted
|
||||
iroh relays and enforces the owner allowlist. The dependency is pinned to the
|
||||
post-v0.72.2 admission fix that prevents a non-member with a leaked invite token
|
||||
from using passive inference streams. MeshLLM v0.73.1 still performs its owner
|
||||
check during gossip after transport connection; authenticating before any gossip
|
||||
is an upstream protocol change and is not claimed by the Buzz-side checks above.
|
||||
Reference in New Issue
Block a user