feature: release: 2026-04-27 - KIR-0000 disclosure fidelity, auth validation, dynamic-test hardening#29
Open
feature: release: 2026-04-27 - KIR-0000 disclosure fidelity, auth validation, dynamic-test hardening#29
Conversation
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
Quality and reliability fixes across the static-analysis pipeline, the disclosure/report renderer, and the Docker-isolated dynamic test runner. No breaking changes; existing pipelines keep working.
Fixed
Vulnerable Codeblock matches the real source.openant set-api-keyvalidates the key on save and fails loudly on bad input.openant scanprints a blocking warning and exits non-zero when zero API calls succeed, so an all-401 run can no longer masquerade as a clean repo.pipeline_output.jsoncarries non-nullcwe,cwe_id, andvulnerability_typefor every finding. Stage 1 prompt asks for them directly rather than relying on the renderer LLM to infer them from prose.[NOT PROVIDED]placeholders eliminated. Repo name, commit SHA, and file count are threaded into every phase report envelope (parse.report.json,scan.report.json) instead of being lost between stages.Verifiedcolumn reflects the highest evidence tier.dynamic>verified>static, so dynamically reproduced findings show asdynamicand the disclosure footer reads "Confirmed via dynamic test" where applicable.openant dynamic-testpre-stages the vulnerable source file into the Docker build context end-to-end through the dynamic-test chain — first-try Docker builds no longer fail because the source isn't in context.agreeflag, so high-confidence dynamic results aren't dropped by a stale agreement signal.attack_vectortext, so small wording differences no longer split what's logically the same finding.Diff stats
29 files changed, +1925 / −38. New regression test suite under
libs/openant-core/tests/covers each fix.Test plan
cd apps/openant-cli && go build ./...succeeds.pytest libs/openant-core/tests/passes.openant scanon a small Python repo produces a report with non-null CWE, no[NOT PROVIDED]placeholders, and verbatimVulnerable Codeblocks.Squash-merge once approved.