Preserve literal characters in shared file paths

This commit is contained in:
2026-10-10 14:20:54 +00:00
parent 54cc6baf95
commit c09c7a2ac7
3 changed files with 38 additions and 2 deletions

View File

@@ -267,7 +267,13 @@ reference-cycle, outside-checkout, unavailable-content, and source-tag guards.
## Issue 8: Preserve literal shared filenames (P2)
Status: open. Category: unrequested path prohibition.
Status: complete. Category: unrequested path prohibition.
**Completion:** Shared selection preserves literal backslashes in committed Git
paths. A Unix regression selects and reads such a file once despite duplicates;
traversal, absolute paths, and directories remain invalid selections. Existing
literal-metacharacter, missing/default/empty-list, scope, and lazy-input tests
pass offline.
**Evidence:** [`normalizeSharedFile`](../../internal/validation/tree.go) rejects
every backslash. On Linux, a committed file named `docs/notice\copy.txt` is a