Skip to content

History / Mesh Trust Model

Revisions

  • Mesh: untrust --identity withdraws the grant alone (records and denies stay, envoy memory kept); unblock says what serves the instance afterwards; key-change markers name a next command that works; deny is a share rule, block the peer refusal (TASK-176)

    @Dark-Alex-17 Dark-Alex-17 committed Oct 19, 2026
  • Mesh: trust verbs split; untrust removes the grant alone and refuses under an identity grant, block refuses an instance or an identity, unblock lifts only the deny or block, forget --identity erases; state table on the trust-model page, verb entries on the commands page, knock line says block --identity (TASK-176)

    @Dark-Alex-17 Dark-Alex-17 committed Oct 18, 2026
  • docs(mesh): .mesh message, brief note, autostart notice (TASK-175)

    @Dark-Alex-17 Dark-Alex-17 committed Oct 16, 2026
  • docs(mesh): the trust remedy needs a peer table row, which survives a restart

    @Dark-Alex-17 Dark-Alex-17 committed Oct 14, 2026
  • docs(mesh): a knock is not first contact The Trust Model's Knocks section and the .mesh knock entry say a knock is heard only by a peer that already trusts this identity (a new instance of a known identity), that a stranger's silence is reported as unanswered rather than unreachable, and that first contact is .mesh trust on both sides after exchanging destination hashes, as the two laptops walkthrough shows. The knock entry quotes the new preview tail, the stored-after- silence report and the no-propagation-node error as the code prints them.

    @Dark-Alex-17 Dark-Alex-17 committed Oct 13, 2026
  • docs(mesh): the trust list is shared live between sessions on one config dir The two-sessions prose on Deployment and Configuration drops the restart caveat: a trust, untrust or block made in one REPL is seen by the other before its next decision, and the write is serialised through mesh/trust.yaml.lock. The Trust Model page says so where it names the file; the Directories row and the Mesh page's on-disk table list the two lock files.

    @Dark-Alex-17 Dark-Alex-17 committed Oct 13, 2026
  • docs: answer what a first-time mesh reader could not work out A read-through by someone new to Reticulum who wanted two laptops to coordinate stalled on: where function_calling_support lives, what a knock is (the three pages defined it three ways), which hash to verify out of band, who sees a .mesh reply, how to tell from rnstatus that the other daemon is there, which ports the firewall sentence means, whether anything hurries the up-to-15-minute announce wait, and what a "turn" is.

    @Dark-Alex-17 Dark-Alex-17 committed Oct 12, 2026
  • docs: Mesh Trust Model intro for readers new to Reticulum

    @Dark-Alex-17 Dark-Alex-17 committed Oct 12, 2026
  • docs(TASK-137): Mesh: envoy conversation memory — .mesh memory forget, envoy_memory keys, what is remembered

    @Dark-Alex-17 Dark-Alex-17 committed Oct 9, 2026
  • docs(TASK-130): the presence memo names the key first heard, is armed on the refusal, and is cleared by trust and block

    @Dark-Alex-17 Dark-Alex-17 committed Oct 7, 2026
  • docs(TASK-130): the quoted presence lines name the instance as presence_collision_text does presence_collision_text shortens the old destination only, so the two quoted lines read <dest8>, not <label or dest8>; the record-collision lines above keep their label.

    @Dark-Alex-17 Dark-Alex-17 committed Oct 7, 2026
  • docs(TASK-130): the presence lines are quoted; a holder refused by another holder's memory earns no line Mesh-Trust-Model's identity-tier Note names the pair as instance and identity it was heard under, says that a remembered holder another holder's memory refuses earns no line of its own with .mesh block of the other key restoring it, and quotes the warning: and error: presence lines. Mesh-Configuration's collision_protection section says nothing is marked for a collision found only in the peer table. Both are pinned by tests/mesh_wiki_docs.rs in the repo.

    @Dark-Alex-17 Dark-Alex-17 committed Oct 7, 2026
  • docs(TASK-130): a line that reached no surface arms no memory; a key the memory alone refuses is still told once

    @Dark-Alex-17 Dark-Alex-17 committed Oct 7, 2026
  • docs(TASK-130): a refused key you trusted with --identity is told once itself; the memory's direction after a restart

    @Dark-Alex-17 Dark-Alex-17 committed Oct 7, 2026
  • docs(TASK-130): a presence refusal under collision_protection is remembered while the node runs; the peer-table clause names the trusted-for-all qualifier

    @Dark-Alex-17 Dark-Alex-17 committed Oct 7, 2026
  • docs(TASK-130): collision_protection covers a rotation known only from the peer table; trust labels show the grant

    @Dark-Alex-17 Dark-Alex-17 committed Oct 7, 2026
  • docs(TASK-130): collision marking on every path, collision_protection, one clearing action Every name-hash collision now marks the colliding record and tells the owner (a warning when the presenting identity is served, an error when it is refused); mesh.collision_protection moves the collision rung ahead of the identity-wide grant; a mark clears only on .mesh trust of the new destination; an identity-tier rotation is surfaced from the peer table when heard, never marked. Mesh-Commands, Mesh-Trust-Model, Mesh-Configuration and Hooks reworded to match the shipped strings.

    @Dark-Alex-17 Dark-Alex-17 committed Oct 7, 2026
  • docs(TASK-120): SCOPE name, file-sharing page, 27-verb layout, hooks 46, nine tools - Mesh.md leads with SCOPE - Session Coordination & Presence Exchange, the spec tagline and the reference-implementation sentence; destination derivation now scope.session.<instance_id>; nine mesh__* tools with the untrusted-content fence; envoy disposition table; [mesh:access] source; on-disk stores for shares, grants and the staging inbox; conformance section with the §20 pointer, Rust-only file-sharing vectors, interop 95 and the Windows exemption; single-segment fetch ceiling as a known gap. - New Mesh-File-Sharing.md: the share set (write rule, deny-wins, built-in deny, protected set, overrides), the three grant shapes, every file verb, the staging inbox, what a peer can and cannot learn, fenced fetched content, limits, notifications and hooks. - Mesh-Commands.md: the settled 27-verb table, untrust/forget refusal semantics, block remembers, sync replaces the LXMF-sync fetch, file verbs, --attach and --purge-files, TAB completion per verb, peer deny/undeny gone. - Mesh-Trust-Model.md: refusal vs forget vs block, the deny-only row and its remedy, hook silence, regular-files-only store writes. - Mesh-Configuration.md: about, fetch.inline_max_bytes, fetch.max_bytes, fetch.inbox_dir with their validation and the ceiling caveat; .mesh sync. - Hooks.md / Home.md: 46 events, mesh.fetch.served, mesh.access.requested, mesh.access.decided with their variables; Sidebar links the new page; Deployment and Platform Support refreshed.

    @Dark-Alex-17 Dark-Alex-17 committed Oct 5, 2026
  • docs(TASK-100): automatic propagation sync, .mesh fetch, .mesh knock and joining at REPL start Mesh-Commands gains the two verbs with what they print and refuse; Mesh-Configuration gains propagation_sync_interval_secs, the announce: false rule (no automatic sync, .mesh fetch still works), the one-year cap and what enabled: true does at REPL start; Mesh, Mesh-Trust-Model and Mesh-Deployment drop the not-yet caveats and describe the deferral window (three fetches and one peer heartbeat) and what a restart costs; Mesh-Platform-Support notes the no-session refusal in the manual procedure.

    @Dark-Alex-17 Dark-Alex-17 committed Sep 30, 2026
  • docs(TASK-097): fix the relay stanza and the instance-lock wording after round three

    @Dark-Alex-17 Dark-Alex-17 committed Sep 29, 2026
  • docs(TASK-097): correct the mesh pages after review

    @Dark-Alex-17 Dark-Alex-17 committed Sep 29, 2026
  • docs(TASK-097): add the Mesh hub, commands, configuration and trust-model pages Derived from the code repo at feat/PLAN-mesh: - Mesh.md: assets/config-template.yaml, src/config/mesh_config.rs, src/mesh/identity.rs, src/config/session.rs, src/repl/mesh.rs, src/mesh/announce.rs, src/function/mesh.rs, src/mesh/message.rs, src/mesh/node.rs, src/supervisor/notification.rs, src/mesh/notify.rs, assets/envoy/config.yaml, assets/envoy/tools.py, src/config/mesh_envoy.rs, src/function/mod.rs, src/mesh/brief.rs, src/config/mesh_digest.rs, src/mesh/card.rs, src/mesh/mod.rs, src/mesh/lock.rs, src/mesh/pending.rs, src/mesh/knocks.rs, src/mesh/schema.rs, src/mesh/fuzz/mod.rs, .github/workflows/ci.yaml, scripts/mesh-interop/README.md, scripts/mesh-netns/README.md, src/mesh/conformance/netns.rs - Mesh-Commands.md: src/repl/mesh.rs (VERBS, help, previews and results), src/mesh/trust.rs (MESH_OFF), src/mesh/node.rs (MESH_ALREADY_ON), src/mesh/lock.rs, src/mesh/card.rs (StatusError), src/mesh/r3/error.rs, src/config/macros.rs, src/repl/mod.rs, src/config/request_context.rs - Mesh-Configuration.md: assets/config-template.yaml, src/config/mesh_config.rs (defaults, validate, TryFrom<RawMeshInterface>, render_mesh_info), src/mesh/announce.rs, src/mesh/limits.rs, src/config/paths.rs, src/config/request_context.rs - Mesh-Trust-Model.md: src/mesh/trust.rs (authorize, identity_standing, note_key_change, key_change_text, mutations), src/mesh/knock.rs, src/mesh/knocks.rs, src/mesh/identity.rs, src/mesh/lock.rs, src/repl/mesh.rs

    @Dark-Alex-17 Dark-Alex-17 committed Sep 29, 2026