feat: preserve finding relationships in scan history - #574
Conversation
|
Codex Review: Didn't find any major issues. You're on a roll. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review The description now includes the final QA results and merge order. Please review the current head, |
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@codex review Please review the current head, |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary
Teach the existing SQLite workbench to store related findings and reuse confirmed finding links. This is the first feature PR split from #567. The existing matcher and CLI still work on this branch; #575 adds the new matcher on top.
Changes
relatedlist alongside confirmed and uncertain matches. Related findings stay separate. Invalid results cannot replace a saved comparison.The old workbench rejects the new
relatedfield, so this PR needs to land before the new matcher is enabled. It does not change the public CLI commands or call an LLM.Testing
How to test in QA
From the repository root:
These tests use synthetic in-memory databases and temporary scan history. They check upgrades, both JSON transports, older plugins, invalid-result rollback, cached comparisons, incomplete coverage, and batched lookups. They also run the existing matcher and CLI against the new workbench. No credentials or network are needed.
Checks run at
02a2e338:git diff --checkpassed.12345and1885190066.cd4b7a67c7.Risk and rollout
The database migration adds indexes without rewriting saved comparisons or scan artifacts. Building the indexes can hold the normal database write lock on a large history. Older plugins need an upgrade to save related links or results too large for command-line arguments. The existing input format remains supported.
Merge this PR before #575. The independent MCP test cleanup in #573 can merge first.
Public disclosure review