docs: refresh README, ARCHITECTURE, DOCS, CONNECTION-ENGINE post-daemon#207
Merged
Conversation
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The migration off Trystero onto the standalone
myownmeshdaemon (PRs #201 / #203 / #204 / #205 / #206) shipped the code but the docs all still described the pre-migration world. Walking through what was wrong:Config.agent_permissions.by_device[<device_id>]. Trystero is gone; agent permissions are now per-network atConfig.cloud_mesh.networks[*].agent_permissions.mesh/Rust module row that described identity / signing / roster as in-tree responsibilities (now thin re-exports ofmyownmesh_corewhile the live transport lives in the daemon). The TS modules table had a 4-paragraph entry formesh-client.svelte.ts(deleted in PR mesh: migrate to myownmesh daemon (phases A–D) #203) and didn't mention any of the sevenmesh-*.tsfiles 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).src/mesh-client.svelte.tsormesh-scheduler-worker.ts, neither of which exists.MeshMessageJSON envelope (infer_request/infer_chunk/move_offer/file_chunk/ etc), described five sub-tabs (current code has seven), and the example config was missinglabel,kind,topology,auto_approve,auto_gossip,agent_permissions,prompts— every new field per-network state gained across the multi-network + governance + auto-gossip PRs.@trystero-p2p/corenot re-runningsubscribe()after a socket reconnect) that no longer applies — the engine isn't here anymore.What this PR changes
README.mdReplace the Trystero discovery claim with the bundled
myownmeshdaemon model; correct the agent-permissions storage path to the per-network shape and mention theauto_gossipgate.ARCHITECTURE.mdmyownmesh servesidecar alongside Ollama (control socket + event forwarding).mesh/Rust module row to describedaemon.rs,daemon_commands.rs, the detect-and-share socket order (~/.myownmesh/daemon.sock→~/.myownllm/daemon.sock→ spawn withMYOWNMESH_HOME=~/.myownllm), and the relationship tomyownmesh_core(thin re-exports for headless ops).mesh-*.tsfile 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(inferRPC),mesh-file.ts(file_offerRPC +file_chunks/<id>channel),mesh-move.ts(session_fetch/session_save/move_take/move_drop),mesh-transcribe.ts(transcribeRPC +transcribe_audio/<request_id>channel),mesh-gossip.ts(catalog / permissions / prompts),mesh-governance.ts.daemon.sockand the per-network config layout undercloud_mesh.networks[*].CONNECTION-ENGINE.mdReplace 535 lines of Trystero-era engine spec with a short pointer doc:
myownmesh servesidecar).DOCS.md(Cloud Mesh section)move_take/session_fetch+move_drop.session_fetch+session_saveround-trip) added as its own row.inferstreaming RPC.file_offerRPC +file_chunks/<id>typed channel + degeneratefile_sendend-of-stream signal.auto_gossipgate.CapabilityAdvert.extraunwrap on the receive side (the LLM'sCapabilitiesblob rides opaquely through the daemon).infer/transcribe/session_*/move_*/file_*/ the three gossip channels).label,kind,topology,auto_approve,auto_gossip,agent_permissions,prompts— every per-network field the schema actually has.daemon.sockand the per-network LLM-side state inconfig.json.PROGRESS.md(deleted)Historical Trystero bug-fix doc. The Nostr
REQsubscription-state quirk it documents (PR #186) doesn't apply post-daemon. Two// see PROGRESS.mdbreadcrumbs in source code updated to free-standing explanations:src-tauri/src/asr/mod.rs:AsrCaps's dead-code allowance now explains why (label/multilingual/streamingare 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.Notes
mesh-daemon.svelte.ts/mesh-governance.ts/config.tsstill 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