fix(core): Base only analysis rewrite - #391
Draft
Saloed wants to merge 13 commits into
Draft
Conversation
Saloed
force-pushed
the
saloed/staged-analysis-clean
branch
from
September 2, 2026 10:00
fef9def to
7f68797
Compare
Add the bounded BaseOnly and BaseOnlyField abstractions used by the shallow scan. Adapt generic fact-edge insertion only as required to publish the multiple deltas that this domain can produce; this does not change IFDS scheduling.
The analyzer shares this interner across worker threads. Unsynchronized reads of the previous resizing open-addressed map could spin forever after observing mixed table generations. Publish dense IDs through concurrent forward and reverse maps, serializing only creation of a new accessor.
Represent an exact rule selection as statement/rule/action tuples. JVM lookups use that projection when installed and delegate to the complete provider when it is absent.
Introduce prescan, shallow, and full-scan lifecycle states. The JVM installs an exact selection only for the full phase; Go remains unrestricted.
Normalize only zero and ClassStatic shallow facts to the empty method context, while preserving exact contexts for ordinary facts, lambdas, and functional-interface constraints. Apply the same normalization during trace lookup.
Walk materialized source-to-sink traces and collect the exact statement/rule/action tuples needed by the precise scan. Keep action-variant handling because variants may carry distinct source actions.
Share a small processing-time budget between trace resolution and actionable-rule search for each shallow discovery. Propagate a derived cancellation condition through graph materialization and report incomplete work explicitly to the fail-open orchestrator.
Keep TaintAnalyzer as the dependency/setup facade and move phase control plus bounded rule discovery into StagedAnalysisRunner. Any incomplete discovery installs no selection, causing the full scan to delegate to all rules.
Saloed
force-pushed
the
saloed/staged-analysis-clean
branch
from
September 4, 2026 12:24
7f68797 to
49327b3
Compare
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.
No description provided.