Repository navigation
fix(runtime): isolate JVM and Gradle verification homes - #793
Conversation
…unt-level-configuration: isolate JVM and Gradle verification homes (#775)
|
To preview the documentation for this pull request, visit the following URL:
|
Bugbot: review complete
|
Copilot approval · Human review neededStatus: Only open, non-draft, complete same-repository pull requests are eligible. Technical evidenceRevision: |
…unt-level-configuration: diagnose native JVM setup ownership and cover continuation boundaries
…unt-level-configuration: provision the native JDK within its owned verification profile
…unt-level-configuration: download a real JDK into the approved native tool cache
There was a problem hiding this comment.
Current status: All findings originating in this review are resolved.
Last reconciled ona9d7de1. See aggregate Bugbot status.
🤖 Bugbot review snapshot
Bugbot reported 1 potential problem when commit e9a2370 was analyzed. This snapshot is historical; use the status block above for current state. 1 finding is linked to changed code.
Findings
- medium: The JDK tool cache path can resolve to the filesystem root —
src/tooling/__tests__/fixtures/verification_native_fixture.ts:56
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #793 +/- ##
===========================================
+ Coverage 94.50% 94.90% +0.40%
===========================================
Files 1035 1090 +55
Lines 33299 35310 +2011
Branches 9824 10489 +665
===========================================
+ Hits 31468 33510 +2042
+ Misses 699 677 -22
+ Partials 1132 1123 -9
🚀 New features to boost your workflow:
|
Java 17 can keep discovering the operating-system account home even when verification has a private HOME. Copilot now derives a single JVM user.home argument and GRADLE_USER_HOME from each fresh verification profile, and passes those same host-derived values to native setup. The argument encoder preserves whitespace, quotes, Unicode and Windows separators. Preparation failures clean the owned profile; native requests reject missing or foreign derived values before exposing setup metadata.
Inherited tool-option injection stays excluded, and setup responses still accept only approved PATH/JAVA_HOME metadata. Native acceptance downloads a real Temurin 17 installation using setup-java's supported force-download input, so a hosted tool-cache alias cannot escape the existing canonical-root guard. JVM/Gradle account configuration remains private for every verifier. The generated coordinator, operator guidance, owning SDDs and catalog cover the same contract. Shared YAML steps keep the smoke workflow within its existing 100 KB review limit without changing parsed jobs or permissions.
Validation:
CI and all three platforms pass on a9d7de1. Codecov reports 94.90% project coverage. Its automatic comparison selects a historical base, so a separate audit uses the exact-head Codecov line report and the actual develop-to-head Git diff: 37/37 added instrumented lines fully hit (100%; no misses or partials). The generator keeps its existing executable workflow-contract tests. Bugbot review is complete with complete context, zero active findings and all threads resolved.
One unchanged-head CI retry passed the entire benchmark (116/116) after two 5-second timeouts in the first attempt. Those cases had passed in that same attempt's full suite; the isolated benchmark also passed 116/116 before the retry. No test, threshold, timeout or source changed for the retry.
Closes #775