mirror of
https://github.com/DeusData/codebase-memory-mcp.git
synced 2026-11-04 08:13:37 +08:00
Phases 1-8 from comprehensive plan (notes/2026-03-26-0013-plan-*.md): Phase 1 — Input validation (F1,F4,F6,F7,F9,F10,F15): mcp.c: empty label→NULL, limit≤0→default, sort_by/mode enum validation, regex pre-validation via cbm_regcomp, depth clamp, direction validation Phase 2 — B7 Cypher param fix + CQ-2 project expansion: mcp.c:handle_query_graph reads "cypher" first with "query" fallback, uses resolve_project_store for "self"/"dep"/path shortcuts Phase 3 — DRY resolve_project_store in 5 handlers: handle_get_graph_schema, handle_index_status, handle_get_architecture, handle_get_code_snippet, handle_index_dependencies Phase 4 — DF-1 degree precompute (100× faster queries): store.c: node_degree table DDL, search SELECT uses LEFT JOIN with HC-6 fallback to edge COUNT, cbm_store_node_degree reads precomputed table, arch_hotspots uses nd.calls_in, arch_boundaries adds behavioral types pagerank.c: is_calls field, degree accumulation during edge iteration, node_degree batch INSERT after LinkRank, OOM-safe allocations Phase 5 — B2/B5 name-based caller fallback: pass_calls.c: 3-step resolution (exact QN → shared helper → Module) graph_buffer.c: cbm_gbuf_resolve_by_name_in_file DRY helper (HC-1) Phase 6 — B17/B13 class-method edge repair: NEW pass_normalize.c: enforces I2 (Method→Class) and I3 (Field→Class) invariants via QN prefix + name+label+file fallback. O(M+F) runtime. pipeline.c: normalize pass before dump. Makefile.cbm updated. Phase 7 — CBMLangSpec section_node_types field: lang_specs.h: added section_node_types (17th field) lang_specs.c: all 64 language specs updated with NULL initializer Phase 8 — IX-1..3 indexing pathway fixes: mcp.c: autoindex_failed + just_autoindexed flags in server struct, REQUIRE_STORE captures pipeline return code, build_resource_status shows "indexing" state + failure detail + action_required hints Additional fixes: G1: summary mode adds results=[] + results_suppressed=true CQ-3: Cypher + filter params produces warning Tests: 2238 pass (11 new in test_input_validation.c covering F1,F6,F9, F10,F15 edge cases, G1, CQ-3, IX-2). Updated test_store_nodes.c for total degree. Updated test_token_reduction.c for G1 results key. Signed-off-by: Andrew Hundt <ATHundt@gmail.com>