mirror of
https://github.com/DeusData/codebase-memory-mcp.git
synced 2026-11-04 08:13:37 +08:00
Three bugs fixed in MCP tool validation layer: 1. sort_by: validator only checked 3 of 5 valid values (relevance/name/degree). Added missing strcmp for 'calls' and 'linkrank' at mcp.c:1625-1627. 2. name_pattern/qn_pattern: glob wildcards (*tool*) rejected as invalid regex. On regex compile failure, glob_to_regex() converts bare * -> .* and ? -> . before retrying. Valid regex patterns have zero overhead (no conversion). Applied to both name_pattern and qn_pattern validation blocks. 3. trace_call_path: exact case-sensitive name match too strict. On node_count==0, fallback to cbm_store_search with case_sensitive=false and min/max_degree=-1 (no degree filter). Uses found result's project for the re-query to handle NULL project correctly. Zero overhead on exact hit. TDD: 10 new tests in test_input_validation.c covering all three bugs: - f6_sort_by_calls_accepted, f6_sort_by_linkrank_accepted - f9_glob_star_autoconverted, f9_glob_question_autoconverted, f9_valid_regex_still_works, f9_truly_invalid_pattern_still_errors, f9_qn_pattern_glob_autoconverted - trace_case_mismatch_finds_via_fallback, trace_exact_match_still_works, trace_truly_missing_still_errors All 2252 tests pass. Signed-off-by: Andrew Hundt <ATHundt@gmail.com>