v1.108.164 - path-shaped repo arg returns a routed error (#376)
Fixed
A path-shaped repo argument now returns a routed error instead of crashing in the storage layer (#376).
An agent without a repository id at hand guesses a path. resolve_repo split any
repo containing a slash on the FIRST separator and returned the halves
unvalidated, so repo="src/auth/service.ts" became owner="src",
name="auth/service.ts". Callers do catch ValueError from the resolver, but that
pair then reached store.load_index and raised ValueError: Path separator in name
from _safe_repo_component, outside every handler.
A real owner/name id can never carry a second separator, since the store rejects
one at write time. So every two-slash repo argument was a guaranteed crash, and it
affected every tool routing through the shared resolver, not just search_symbols.
A post-split name that still contains a separator is now treated as a path. It tries
the existing path-resolution route first, which picks up bare relative multi-segment
paths like apps/web/src that _looks_like_path is deliberately too conservative to
match, and otherwise raises an actionable error naming resolve_repo,
index_folder, and file_pattern= when the argument looks like a file. Single-slash
ids and every real owner/name are untouched.
Reported from a daily Ubuntu install; split out of
#375. New
tests/test_v1_108_164.py (8). No schema, tool-count, or INDEX_VERSION change.