Skip to content

fix(core): Base only analysis rewrite - #391

Draft
Saloed wants to merge 13 commits into
mainfrom
saloed/staged-analysis-clean
Draft

fix(core): Base only analysis rewrite#391
Saloed wants to merge 13 commits into
mainfrom
saloed/staged-analysis-clean

Conversation

@Saloed

@Saloed Saloed commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

No description provided.

@Saloed
Saloed force-pushed the saloed/staged-analysis-clean branch from fef9def to 7f68797 Compare September 2, 2026 10:00
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
Saloed force-pushed the saloed/staged-analysis-clean branch from 7f68797 to 49327b3 Compare September 4, 2026 12:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant