From 58f010f302823c4facd606f39d14f91c030369f0 Mon Sep 17 00:00:00 2001 From: Cameron Cordes Date: Fri, 1 May 2026 20:05:58 +0000 Subject: [PATCH] docs(claude): pin excluded_dirs entry-form syntax MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The two entry shapes for libraries.excluded_dirs / EXCLUDED_DIRS are not symmetric: - /sub/path → multi-segment, library-root-anchored, recursive - name → single component anywhere in the tree Without this pinned, a reasonable read of the column doc would be "any path-like string works" — but a multi-segment string without a leading slash silently never matches (the no-slash form scans path components for exact string equality, and components are slash-free). No code change; just documentation. Co-Authored-By: Claude Opus 4.7 (1M context) --- CLAUDE.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index de0ad44..984febd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -216,7 +216,15 @@ var, that's applied **in union** with the env-var globals when a walker scans this library. Use case: mount a parent directory as a new library while a sibling library covers a child subtree, and exclude that child subtree from the parent so the two libraries -don't double-walk and double-write `image_exif`. Hash-keyed derived +don't double-walk and double-write `image_exif`. Two entry forms +(parsed by `memories::PathExcluder`): +- `/sub/path` — leading slash flags it as a path under the library + root. Joins to root + matches by `path.starts_with(...)`. Works + at any depth (`/photos`, `/media/2024/raw`). +- `name` — no leading slash flags it as a component name to skip + anywhere in the tree (`@eaDir`, `.thumbnails`). Single segment + only — `media/photos/a` without a leading slash never matches + anything. Hash-keyed derived data (faces, tags, insights) is unaffected either way — those follow the bytes — but `image_exif` row count, walker CPU, and thumbnail disk usage all drop to 1× instead of 2× for the overlap.