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 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'docs/MESHBAY_DESIGN.md') 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. -- cgit v1.2.3