From 59c831906a75cdae76424260351088335aad9ac4 Mon Sep 17 00:00:00 2001 From: prosdev Date: Tue, 31 Mar 2026 23:43:32 -0700 Subject: [PATCH] test(mcp): add adapter-level tests for dependsOn and connected components Cover the two untested graph feature paths: RefsAdapter dependsOn (path tracing, hop count, no-path, missing indexer) and MapAdapter connected components (multi-cluster subsystems, single-cluster skip). Clean up stale scratchpad entries for already-wired features. Co-Authored-By: Claude Opus 4.6 (1M context) --- .claude/scratchpad.md | 5 - .../adapters/__tests__/map-adapter.test.ts | 116 ++++++++++++++++++ .../adapters/__tests__/refs-adapter.test.ts | 92 ++++++++++++++ 3 files changed, 208 insertions(+), 5 deletions(-) diff --git a/.claude/scratchpad.md b/.claude/scratchpad.md index c61085a..95c72f1 100644 --- a/.claude/scratchpad.md +++ b/.claude/scratchpad.md @@ -12,14 +12,11 @@ ## Future Work - Antfly SDK: server-side path filter for `getDocsByFilePath` (eliminates 5k cap) -- Wire `shortestPath` into `dev_refs` as a "trace path" feature (graph.ts is ready, adapter wiring is separate scope) -- Wire `connectedComponents` into `dev_map` verbose output (graph.ts is ready) - Betweenness centrality — identifies bridge files between subsystems. Worth adding if agents need refactoring guidance. graphology (MIT, 1.6k stars) is the upgrade path if we need more than 3 hand-rolled algorithms. - **Connected components hub filtering** — widely-shared utility files (e.g., logger.ts imported by 50+ files) merge separate subsystems into one component. Filter out hub nodes (high in-degree) before computing components for better subsystem identification. - **PageRank at 10k+ nodes** — convergence tolerance 1e-6 may require all 100 iterations for large sparse graphs. Monitor performance. Consider reducing maxIterations or loosening tolerance for dev_map where approximate ranks are fine. - **getAll(limit: 10000) truncation** — medium-large monorepos may exceed 10k docs. Warning is logged but results are silently incomplete. Long-term: paginate or make limit configurable. - E2E tests in CI — blocked on Antfly memory requirements vs GitHub runner limits (7GB) -- **Python language support** — plan written at `.claude/da-plans/core/phase-4-python-support/`. 4 parts: bundle WASM + queries, PythonScanner, pattern rules, test fixtures + docs. - Vue/Svelte SFC support — `.vue`/`.svelte` files have embedded `