Conversation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…l detection Instead of classifying all 134 packages into v3/adapter/v2/shared, detect leaks by finding all callers of Graph class and applying exclude/include rules: 1. Class exclude (V2Backed*) — adapter classes always OK 2. Package include (v2.engine.v3) — overrides exclude for monitoring 3. Package exclude (v2.engine, server.api.graph.v2) — V2 internals OK 4. Everything else calling Graph = leak Config reduced from 208 lines to 38 lines. Validated against pre-#201 code: correctly detects V3MutationService as leak (6 edges). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Track direct references to Graph, Entity classes, DDL requests, StorageType, and ScanFilter — not just Graph alone. Reveals 103 leaks across 6 classes (was 25/4 with Graph-only). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Prepare for renaming V3Compat*/V3MetadataConverter/V3TableDescriptor to V2Compat* convention. Once renamed, these bridge classes will be automatically excluded from leak detection. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add 11 v2.core type/metadata classes to targets (Direction, Field, etc.) - Add v2.core to excluded packages (V2 internal usage is OK) - Track GETSTATIC/GETFIELD/PUTSTATIC/PUTFIELD for enum constants and field access, not just method calls - Include <init> calls (constructor usage = direct V2 dependency) 176 leaks across 7 classes (was 103/6 with method-calls-only). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Default output shows class names and edge counts only. Pass -Pverbose for full method-level detail. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Auto-scan all classes for Spring MVC endpoints (no manual seed list) - Filter to /graph/v3 paths, BFS trace to V2 target classes - Skip adapter classes (V2Backed*, V2Compat*) during traversal - Group output by path with HTTP methods: /path (GET, POST) - Unify terminology: "leak/boundary" → "V2 dependency" - Default shows both by-class and by-path reports - --verbose shows call chains Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Auto-scan all endpoints instead of manual seed list - Extract shared targets set as lazy field - Merge annPaths/annMethods into generic annStrings/annEnums - Add isAdapter() helper, Endpoint.controller property - Simplify report grouping Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
Author
|
current output: |
This was referenced Mar 26, 2026
eazyhozy
pushed a commit
that referenced
this pull request
Apr 1, 2026
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
Tool to find V3→V2 direct dependencies — candidates for decoupling via adapter abstractions (same pattern as #201).
Note
Remove this tool when dependencies reach zero.
Related: #200, #201
Changes
How it works
Two reports
By Class — which V3 classes directly call V2 targets
By Path — which V3 API paths have V2 dependencies
How to Test