fix(search): cap path_prefixes at the MCP tool; widen path filter tests
Round 2 review follow-ups: - Add Field(max_length=20) to the nc_semantic_search path_prefixes param so an LLM client can't build an unbounded OR-filter (mirrors the cap the Astrolabe PHP controller applies on the UI path). - Note in normalize_path_prefixes that the two-pass collect-then-strip is deliberate (the `if path_prefix:` guard is truthy for whitespace-only input; the strip pass is what drops it). - Tests: exercise build_base_filter_conditions with 3 folders (guards the list comprehension) and parametrize the no-path case over None, empty list, and blank-only inputs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
cd243ed6c3
commit
ea108140ab
@@ -217,6 +217,9 @@ def normalize_path_prefixes(
|
||||
if path_prefixes:
|
||||
raw.extend(path_prefixes)
|
||||
|
||||
# Two-pass on purpose: the ``if path_prefix:`` guard above is truthy for a
|
||||
# whitespace-only string like ``" "``, so the strip-and-drop pass below is
|
||||
# what actually removes it — collecting first keeps the dedup order stable.
|
||||
seen: set[str] = set()
|
||||
cleaned: list[str] = []
|
||||
for value in raw:
|
||||
|
||||
Reference in New Issue
Block a user