Security & correctness hardening + zero-regression roadmap sweep (22/23 review items)#13
Open
aksOps wants to merge 24 commits into
Open
Security & correctness hardening + zero-regression roadmap sweep (22/23 review items)#13aksOps wants to merge 24 commits into
aksOps wants to merge 24 commits into
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
Security/correctness hardening + a zero-regression sweep of the architecture-review roadmap. 22 of 23 review items addressed across 20 commits. Every change is either purely additive or guarded by a before/after equivalence test.
No regression: the test suite went 358 → 404 (+46) with 0 failures on every gate; a plain
mvn verifyis behaviorally unchanged; no new runtime dependencies were added (only build/CI plugins).What's in here (by area)
Security / supply chain
SONAR_DIST_SHA256/SONAR_JDK_SHA256/SONAR_ALLOW_UNVERIFIED); releases now publishSHA256SUMS+ GPG.ascsignatures. (refactor(plugin): install via marketplace; skill bundle fetched lazily from Maven Central #1, #14)--diff(reject--prefixed refs +--); XXE + tar-slip guard tests; atomic offline-bundle extraction (stage→verify→move) + owner-only execute clamp. (#17, #18)Correctness
--version, theversionsubcommand, and SARIFdriver.version/informationUri(were0.1.0/ stale repo URL). (#15, #23)Performance / observability
--timingsflag (stderr-only round-trip timing) + CI warm-scan benchmark. (chore: bump pom to 0.3.1-SNAPSHOT after v0.3.1 release #11)project.build.outputTimestamp, verified identical dist-zip SHA) + hermetic offline-build CI job. (Security & correctness hardening + zero-regression roadmap sweep (22/23 review items) #13)Reliability / DX
daemon.log) instead of an opaque exit code;SONAR_DEBUG. (feat(daemon): classify test vs production files per SonarQube convention #3)Maintainability
LanguageMap(was 4 lockstep tables);analyzeLockedsplit;BaseDirGuardlifted + independently tested;PluginsDir.forEachJardedup; dead migration code removed;cli↛daemonboundary + manifest-drift + engine-API guard tests. (feat(agents): Copilot scanner agent using the Nexus-bootstrap wrapper #12, #20, #23, refactor!: repackage dev.sonarcli -> io.github.randomcodespace.sonarpredict #7, feat: Nexus-bootstrap CLI wrapper + LTA 2026.1 manifest refresh #10-partial)Operator heads-up (release notes)
The bootstrap install now fails closed if no checksum is available — air-gapped installs must serve
SHA256SUMS/.sha256.txt, setSONAR_DIST_SHA256/SONAR_JDK_SHA256, or opt out withSONAR_ALLOW_UNVERIFIED=1. (#1)Intentionally deferred (out of zero-regression scope)
RULE_METADATAprotocol redesign — a wire-contract change; the output-identical cache stopgap shipped instead.PluginVerifierblocks stub plugins); the engine-API arity guard shipped.Verify on first CI run
--sbom/max_severityfield (fails open, so it can't wrongly block).Test plan
mvn verifygreen at 404 tests, 0 failures-Psbom packageproduces a CycloneDX BOM