Skip to content

docs: refresh README, ARCHITECTURE, DOCS, CONNECTION-ENGINE post-daemon#207

Merged
mrjeeves merged 1 commit into
mainfrom
claude/charming-turing-PMIK8
May 28, 2026
Merged

docs: refresh README, ARCHITECTURE, DOCS, CONNECTION-ENGINE post-daemon#207
mrjeeves merged 1 commit into
mainfrom
claude/charming-turing-PMIK8

Conversation

@mrjeeves
Copy link
Copy Markdown
Owner

Why

The migration off Trystero onto the standalone myownmesh daemon (PRs #201 / #203 / #204 / #205 / #206) shipped the code but the docs all still described the pre-migration world. Walking through what was wrong:

  • README claimed mesh discovery went "via Trystero over public Nostr relays" and that agent permissions persisted under Config.agent_permissions.by_device[<device_id>]. Trystero is gone; agent permissions are now per-network at Config.cloud_mesh.networks[*].agent_permissions.
  • ARCHITECTURE.md had a mesh/ Rust module row that described identity / signing / roster as in-tree responsibilities (now thin re-exports of myownmesh_core while the live transport lives in the daemon). The TS modules table had a 4-paragraph entry for mesh-client.svelte.ts (deleted in PR mesh: migrate to myownmesh daemon (phases A–D) #203) and didn't mention any of the seven mesh-*.ts files that replaced it (mesh-daemon.svelte.ts, mesh-gossip.ts, mesh-inference.ts, mesh-file.ts, mesh-move.ts, mesh-transcribe.ts, mesh-governance.ts).
  • CONNECTION-ENGINE.md was a 535-line spec of the 4-layer connection engine + 7-tier reconnect ladder. None of it lives in this repo anymore — every paragraph referenced src/mesh-client.svelte.ts or mesh-scheduler-worker.ts, neither of which exists.
  • DOCS.md Cloud Mesh section walked the user through Trystero rooms, the legacy on-the-wire MeshMessage JSON envelope (infer_request / infer_chunk / move_offer / file_chunk / etc), described five sub-tabs (current code has seven), and the example config was missing label, kind, topology, auto_approve, auto_gossip, agent_permissions, prompts — every new field per-network state gained across the multi-network + governance + auto-gossip PRs.
  • PROGRESS.md was a historical bug-fix doc for a Trystero subscription-state quirk (@trystero-p2p/core not re-running subscribe() after a socket reconnect) that no longer applies — the engine isn't here anymore.

What this PR changes

README.md

Replace the Trystero discovery claim with the bundled myownmesh daemon model; correct the agent-permissions storage path to the per-network shape and mention the auto_gossip gate.

ARCHITECTURE.md

  • Rewrite the one-picture diagram to show the myownmesh serve sidecar alongside Ollama (control socket + event forwarding).
  • Rewrite the Cloud Mesh intro paragraph (transport lives in the daemon; LLM owns layer 4 on top).
  • Rewrite the mesh/ Rust module row to describe daemon.rs, daemon_commands.rs, the detect-and-share socket order (~/.myownmesh/daemon.sock~/.myownllm/daemon.sock → spawn with MYOWNMESH_HOME=~/.myownllm), and the relationship to myownmesh_core (thin re-exports for headless ops).
  • Rewrite the TS modules table to list every mesh-*.ts file actually in the tree with its current role: mesh-daemon.svelte.ts (reactive store + event subscription + handler install), mesh-protocol.ts (LLM-specific wire types), mesh-capabilities.ts (local snapshot + predicates), mesh-inference.ts (infer RPC), mesh-file.ts (file_offer RPC + file_chunks/<id> channel), mesh-move.ts (session_fetch / session_save / move_take / move_drop), mesh-transcribe.ts (transcribe RPC + transcribe_audio/<request_id> channel), mesh-gossip.ts (catalog / permissions / prompts), mesh-governance.ts.
  • Refresh the CloudMesh sub-tab inventory (Status / Settings / Connections / Graph / Governance / Activity / HTTP — added Graph and Governance, the latter for closed-network signed-proposal flow).
  • Refresh the persistence section to show daemon.sock and the per-network config layout under cloud_mesh.networks[*].

CONNECTION-ENGINE.md

Replace 535 lines of Trystero-era engine spec with a short pointer doc:

  • Statement that layers 1–3 (signaling, WebRTC + ICE, the cryptographic handshake) and the resilience ladder all live in MyOwnMesh now.
  • ASCII diagram of how the LLM talks to the daemon (Tauri backend → IPC → myownmesh serve sidecar).
  • Detect-and-share resolution + binary discovery order.
  • Table of the LLM-side RPC methods + typed channels currently in use, with each one's initial-payload / chunk / response shape.

DOCS.md (Cloud Mesh section)

  • Replace the Trystero transport paragraph with the daemon's detect-and-share model; cross-link to MyOwnMesh.
  • Refresh every What-the-mesh-does-for-you row to match current behavior:
    • Push / Pull described in terms of move_take / session_fetch + move_drop.
    • Click-to-open remote conversations (the session_fetch + session_save round-trip) added as its own row.
    • Remote inference described as the infer streaming RPC.
    • Remote transcribe described accurately (no longer "protocol surface, receiver pipeline staged" — it's wired).
    • File transfer described with the file_offer RPC + file_chunks/<id> typed channel + degenerate file_send end-of-stream signal.
    • New row: Permissions + prompts gossip with the auto_gossip gate.
    • New row: Graph view (force-directed mesh topology).
    • New row: Governance view (closed-network signed proposals).
    • "Cached service availability" rewritten to mention the CapabilityAdvert.extra unwrap on the receive side (the LLM's Capabilities blob rides opaquely through the daemon).
  • Replace the JSON-over-data-channel wire-protocol box with the daemon RPC + typed-channel surface. Two layers: the daemon's own protocol (handshake / ping / governance / RPC envelopes — spec'd downstream) and the LLM-specific protocol on top of those primitives (infer / transcribe / session_* / move_* / file_* / the three gossip channels).
  • Refresh the example config to include label, kind, topology, auto_approve, auto_gossip, agent_permissions, prompts — every per-network field the schema actually has.
  • Refresh the Persistence section to mention daemon.sock and the per-network LLM-side state in config.json.

PROGRESS.md (deleted)

Historical Trystero bug-fix doc. The Nostr REQ subscription-state quirk it documents (PR #186) doesn't apply post-daemon. Two // see PROGRESS.md breadcrumbs in source code updated to free-standing explanations:

  • src-tauri/src/asr/mod.rs: AsrCaps's dead-code allowance now explains why (label / multilingual / streaming are emitted to JSON for the TS UI to read).
  • src-tauri/src/diarize/cluster.rs: ClusterConfig.stale_after's dead-code allowance now explains it's reserved for the cold-start re-label pass.

Validation

  • pnpm run check: 164 files, 0 errors, 0 warnings.
  • grep -rn "Trystero\|trystero\|mesh-client\.svelte" --include="*.md" . returns nothing.
  • grep -rn "PROGRESS.md" . returns nothing.
  • grep -rn "by_device" --include="*.md" . returns nothing.
  • Read the rendered README at the new tip and confirm the "what it does" bullets are coherent.
  • Skim the rendered DOCS.md Cloud Mesh section to confirm a new user could follow it cold.

Notes

  • Rust code unchanged except for two breadcrumb comments. No semantic change.
  • I didn't touch CONTRIBUTING.md, RELEASE.md, NOTICE.md — those were already consistent with the current code.
  • TS code comments in mesh-daemon.svelte.ts / mesh-governance.ts / config.ts still mention Trystero in places (historical context comments explaining migration intent). Left in place since they're code-context, not user-facing docs — happy to follow up if you want them cleaned too.

https://claude.ai/code/session_01RLu1LdTgtxEDdzhybzqFrk


Generated by Claude Code

The migration off Trystero onto the standalone myownmesh daemon
(PRs #201 / #203 / #204 / #205 / #206) shipped the code but left
every doc still describing the world before the move:

- README claimed mesh discovery went "via Trystero over public
  Nostr relays" and that agent permissions persisted under
  `Config.agent_permissions.by_device[<device_id>]`.
- ARCHITECTURE.md's mesh-module section described `mesh-client.svelte.ts`
  (deleted), Trystero room ownership (gone), and a TS module table
  that didn't list any of the files Phase C–D actually shipped
  (`mesh-daemon.svelte.ts`, `mesh-gossip.ts`, `mesh-inference.ts`,
  `mesh-file.ts`, `mesh-move.ts`, `mesh-transcribe.ts`,
  `mesh-governance.ts`).
- CONNECTION-ENGINE.md was a 535-line spec for the 4-layer
  connection engine that no longer lives in this repo — every
  paragraph referenced `src/mesh-client.svelte.ts` or
  `mesh-scheduler-worker.ts`, neither of which exists.
- DOCS.md's Cloud Mesh section walked the user through Trystero
  rooms, the legacy on-the-wire `MeshMessage` JSON envelope
  (`infer_request` / `infer_chunk` / `move_offer` / `file_offer`),
  and a config example missing every field the per-network
  schema gained (`label`, `kind`, `topology`, `auto_approve`,
  `auto_gossip`, `agent_permissions`, `prompts`).
- PROGRESS.md was a historical bug-fix doc for a Trystero
  subscription-state quirk that no longer applies — the engine
  isn't here anymore.

What this commit changes:

**README.md**: replace Trystero claim with the bundled
`myownmesh` daemon model; correct the agent-permissions storage
path to the per-network shape (`Config.cloud_mesh.networks[*].
agent_permissions`) and mention the `auto_gossip` gate.

**ARCHITECTURE.md**: rewrite the one-picture diagram to show
the daemon sidecar alongside Ollama; rewrite the mesh intro
paragraph; rewrite the `mesh/` Rust module row to describe
`daemon.rs`, `daemon_commands.rs`, the detect-and-share socket
order, and the relationship to `myownmesh_core`; rewrite the
TS module table to list every `mesh-*.ts` file actually in the
tree with its current role; refresh the CloudMesh sub-tab
inventory (Status / Settings / Connections / Graph / Governance
/ Activity / HTTP); refresh the persistence section to show
`daemon.sock` + the per-network config layout.

**CONNECTION-ENGINE.md**: rewrite as a short pointer. The
4-layer engine + 7-tier reconnect ladder live in MyOwnMesh now;
this doc explains what the LLM still owns on top (the layer-4
LLM-specific protocol), how the LLM talks to the daemon
(detect-and-share IPC), and lists the LLM-side RPC methods +
typed channels currently in use (`infer`, `transcribe`,
`file_offer` / `file_send` + `file_chunks/<id>`, `session_*` /
`move_*`, `catalog/announce`, `permissions/snapshot`,
`prompts/snapshot`).

**DOCS.md Cloud Mesh section**: replace the Trystero transport
paragraph with the daemon's detect-and-share model; refresh
every What-the-mesh-does-for-you row to match current behavior
(click-to-open, click-through Pull, file transfer wire shape,
permissions+prompts gossip with the auto_gossip gate, Graph
view, Governance view, no Phase-1/Phase-2 split); replace the
JSON-over-data-channel wire-protocol box with the daemon
RPC + typed-channel surface; refresh the example config to
include `label`, `kind`, `topology`, `auto_approve`,
`auto_gossip`, `agent_permissions`, `prompts`.

**PROGRESS.md**: deleted. The Trystero subscription-state bug
it documents doesn't apply post-daemon. Two `// see PROGRESS.md`
breadcrumbs in `src-tauri/src/asr/mod.rs` and
`src-tauri/src/diarize/cluster.rs` updated to free-standing
explanations.

Validation:
- `pnpm run check`: 164 files, 0 errors, 0 warnings.
- `grep -rn "Trystero\|trystero\|mesh-client\.svelte" --include="*.md" .`
  returns nothing.
- `grep -rn "PROGRESS.md" .` returns nothing.

https://claude.ai/code/session_01RLu1LdTgtxEDdzhybzqFrk
@mrjeeves mrjeeves merged commit 742eaf5 into main May 28, 2026
4 checks passed
@mrjeeves mrjeeves deleted the claude/charming-turing-PMIK8 branch May 28, 2026 06:53
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.

2 participants