From 382fcc5f675f9942350013780335315757c245c5 Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Thu, 15 Oct 2026 01:12:16 +0200 Subject: feat(cli): rm, and Delete in the interactive mode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rm deletes files, resolved as get resolves paths and patterns, with the node's rule (design §5.4): the uploading account's devices, or the node's operator account. The whole run is checked against the index first (the entry's uploader_id, the role the join result gives this key): a file outside the rule, or a folder, refuses it before anything is asked or sent. Then one confirmation, or --yes. The node's challenge is checked against what was asked before it is signed. In the interactive mode, Delete on the right pane does the same, asked once per batch. Co-Authored-By: Claude Opus 5.5 --- docs/MESHBAY_DESIGN.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'docs/MESHBAY_DESIGN.md') diff --git a/docs/MESHBAY_DESIGN.md b/docs/MESHBAY_DESIGN.md index c5a0847..b579b7b 100644 --- a/docs/MESHBAY_DESIGN.md +++ b/docs/MESHBAY_DESIGN.md @@ -3012,7 +3012,7 @@ MSE string) fed to a source buffer, with the node holding one slot per viewer. `meshbay-cli` (`packages/meshbay-cli`) is a member's groups and files from a terminal: `login`, `logout`, `groups`, `invitations`, `join`, `decline`, -`leave`, `ls`, `get`, `put`, `devices`, `trust`, `browser-access`, and with no +`leave`, `ls`, `get`, `put`, `rm`, `devices`, `trust`, `browser-access`, and with no argument an interactive two-pane view (Textual) over the same library. It is not an operator tool — a node is administered through `meshbay-node` and its loopback API (§6.7) — and it does not stream, play or chat: those belong to an engine @@ -3042,6 +3042,12 @@ code goes to the node the link names and to no other. `leave`, like `decline` and `devices revoke`, asks first on a terminal and refuses without `--yes` where there is none. +**Deleting** (`rm`) is `file_delete` signed with the machine's key on the node +(§5.4): the node accepts the uploading account's devices and the operator's. +The client checks the same rule against the index first (`uploader_id`, and the +`role` the join result gives its key) and refuses the whole run, before asking +anything, when one file falls outside it. + **Browser access is the application's setting, kept per machine** (§3.7): `browser-access on` leaves a copy of the identity sealed under `M` on each node it opens a group on, when the node holds none or an outdated one; `off` @@ -4582,7 +4588,7 @@ and download stages, account recovery, the Windows port through packaging, and the Android client — the shell, native keys, downloads and uploads, casting, and notifications while it is closed, fetched or pushed (§11.3) — and the command-line client: groups, joining and leaving them, listing, downloads and -uploads with resume, device linking and approval, browser access, and an +uploads with resume, deleting, device linking and approval, browser access, and an interactive two-pane view (§8.6). The packages install: a machine has been taken from the built artefacts to a -- cgit v1.2.3