feat: add blast radius analysis with risk scoring#148
Open
maplenk wants to merge 9 commits intoDeusData:mainfrom
Open
feat: add blast radius analysis with risk scoring#148maplenk wants to merge 9 commits intoDeusData:mainfrom
maplenk wants to merge 9 commits intoDeusData:mainfrom
Conversation
This was referenced Mar 26, 2026
Owner
|
Thanks @maplenk — blast radius analysis would be very useful for impact assessment. Will review. |
Account for optional signatures in the search_graph and trace_call_path size estimators, and improve compact trace chains to report omitted-node counts. This also documents the normal-path output enrichment introduced with Task 4: search_graph results now include file_path, start_line, end_line, and signature, and trace_call_path hop items now include file_path, start_line, and signature.
- Guard cbm_mcp_text_result() against NULL text - Fix memory leak in handle_get_key_symbols() REQUIRE_STORE path (focus not freed) - Wire qn_pattern through handle_search_graph() - Fix OOM infinite loop in markdown_builder_reserve() - Return 0 instead of CBM_STORE_ERR from summary_count_nodes() on prepare fail Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Prefer non-test symbol matches before pagerank for ambiguous short names. Batch-load visited node metadata and pagerank scores to remove per-node query loops during impact analysis. Hide test counts from the public summary when include_tests=false, and add max_tokens truncation support to get_impact_analysis with MCP coverage.
Add the impact-analysis store API declaration, expose get_impact_analysis in CLI help text, and cover the tool with the existing integration fixture.
- Chunk impact_fetch_nodes_with_scores() into batches of 900 to stay under SQLite's SQLITE_MAX_VARIABLE_NUMBER bind limit - Replace REQUIRE_STORE in handle_get_impact_analysis() with explicit cleanup that frees symbol on early return - Fix pre-existing test_integration assertion that used escaped JSON field matching (was already failing on origin/feat/blast-radius) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5c5517c to
31de109
Compare
Owner
|
@maplenk — I've updated the CONTRIBUTING.md with clearer guidelines. The key one: please open an issue first to discuss the feature before implementing it. This applies to all feature PRs. I appreciate the effort, but submitting fully implemented features without prior discussion makes it much harder to align on whether the feature is needed, how it should work, and whether it fits the project's direction. It also increases the likelihood that the PR gets closed. Could you open an issue describing the use case for blast radius analysis? I'd like to discuss the approach before any code is written. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
New
get_impact_analysistool that answers "what breaks if I change this function?" with risk-tiered results and test coverage detection.New tool:
get_impact_analysisParameters:
project,symbol,depth(default 3),include_tests(default true),max_tokens(default 2000)Key features
cbm_store_bfs().Tests
New tests in
test_store_search.c(risk tiers, routes+tests, disambiguation) andtest_mcp.c(basic, missing symbol, disambiguation, include_tests, route typing).Part 2 of a 4-PR series. Depends on #147.
Built with OpenAI Codex and Claude Code.