mirror of
https://github.com/DeusData/codebase-memory-mcp.git
synced 2026-10-24 06:23:06 +08:00
The doc<->code candidate scoring (#2574, doc_section_worker in semantic_edges) scores every documentation section against the functions that share a key term with it, key terms being those held by at most funcs/20 functions. Its cost therefore grows with sections x functions. Measured on 11 corpora (10-09 main vs4d9592b5, semantic_edges): under a second up to ~100k functions, +12.6 s on java (325k), +14.6 s on csharp (451k), +174 s on the Linux kernel (784k functions, 28k sections), almost all of the kernel's regression against v0.11.0. A new boolean setting, doc_candidates (default true), and an optional index_repository argument of the same name switch the scoring off: no candidate rows are stored and nodes and edges are unchanged. The argument wins over the setting. The index handler resolves the value once and passes it to a daemon job or supervised worker as an argument, the same way as the resource policy, so every route sees one decision; the session auto-index reads the setting. With the switch off, a delta-route reindex replaces the candidate rows it would otherwise keep, so turning it off leaves no stale candidates. The default output is unchanged. Tests (each fails on its assertion when the switch has no effect): - pipeline_doc_candidates_off_stores_none_and_keeps_graph: no rows, same node and edge counts as the default run, which has rows; - pipeline_doc_candidates_off_clears_rows_on_delta: a closure-repair reindex with the switch off removes the earlier rows; - tool_index_repository_doc_candidates_switch: argument false -> none; setting default -> rows; setting false -> none; argument true over setting false -> rows. Proof, release-built binaries on macOS arm64 (M5 Pro 18c/48 GB): - django, main4d9592b5vs this change with defaults: nodes (63,441), edges (307,584) and doc_link_candidates rows (11,304) hash-identical; - django with doc_candidates false: nodes and edges hash-identical, no candidate rows; - Linux kernel with doc_candidates false: semantic_edges 17.9 s (191.9 s on main, 17.6 s before #2574), whole index 210.9 s (v0.11.0: ~234 s), no candidate rows. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>