From ed0c680790950354f15fb5835e1d7b213efa1bf8 Mon Sep 17 00:00:00 2001 From: Christophe Besson Date: Thu, 8 Oct 2026 01:11:38 +0200 Subject: fix(node): name a root after its drive when its basename is taken Two drives with a folder of the same name made the second add fail, and no screen could supply another name. add_root now names it "Name (H)" or "Name (parent)"; a name the operator typed is still refused on a clash. Co-Authored-By: Claude Opus 5.5 --- docs/MESHBAY_DESIGN.md | 9 ++++++--- docs/USERGUIDE.md | 6 ++++-- 2 files changed, 10 insertions(+), 5 deletions(-) (limited to 'docs') diff --git a/docs/MESHBAY_DESIGN.md b/docs/MESHBAY_DESIGN.md index 9decd34..23ced38 100644 --- a/docs/MESHBAY_DESIGN.md +++ b/docs/MESHBAY_DESIGN.md @@ -1503,9 +1503,12 @@ stored.** Never recomputed from the path: renaming a folder on disk would otherwise silently re-identify a whole library and break every stored reference to it. Four rules make basename naming safe: -- **A duplicate basename is refused, case-insensitively.** Collisions are common in - practice (`D:\Films` and `E:\Films`). Refusing is correct; an explicit alias is - the escape hatch (open item O11). +- **A duplicate name is refused, case-insensitively.** Collisions are common in + practice (`D:\Films` and `E:\Films`), and the interface has no field for a name, + so `add_root` gives a folder whose basename is taken a name saying where it is: + `Films (E)`, or `Films (b)` for `/mnt/b/Films` (`roots.distinct_name`). Only a + name the operator typed is refused on a clash. A drive root, which has no + basename at all, still needs an explicit alias (open item O11). - **No root may contain another**, compared case-insensitively and after canonicalisation. Two nested roots would index the same bytes twice under two identities. diff --git a/docs/USERGUIDE.md b/docs/USERGUIDE.md index ea81c76..adca9e3 100644 --- a/docs/USERGUIDE.md +++ b/docs/USERGUIDE.md @@ -504,8 +504,10 @@ meshbay-node root remove Films Rules that will bite you if you do not know them: -- **Two roots cannot share a basename**, even on different drives. `/mnt/a/Films` - and `/mnt/b/Films` is refused; name one of them explicitly. +- **Two roots cannot share a name**, even on different drives. When you add + `/mnt/b/Films` beside `/mnt/a/Films`, the second one is called `Films (b)` + (on Windows, `H:\Films` beside `G:\Films` becomes `Films (H)`). A name you + give with `--name` that is already taken is refused. - **No root inside another.** The same bytes would be indexed twice under two identities. - **Renaming a root rewrites every path under it**, so it is an explicit act, -- cgit v1.2.3