Repository navigation
Conversation
On a host without a JDK, stories fetch their own toolchain into scratch, but the run verifier on the merged tree has none, so a Maven/Gradle run silently ends not verified. The missing toolchain is now named before any story runs. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
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.
Fixes #219
Summary
The issue lists three options. This PR does the second one: find the missing toolchain up front and tell the user before any story runs. The other two options (one shared toolchain for the run, or leaving it to the host) stay open as a product decision; see Not in this PR.
jvmToolchainGap(cwd, probe)insrc/verification/jvm-commands.ts. It uses the same checks asdetectJvmCommands/resolveJvmBuildTool: doesjava -versionrun (honouringJAVA_HOME), and does the wrapper or the build tool on PATH resolve. If the run verifier would skipmvn testand/orgradle test, it returns one line saying why; otherwise it returnsnull. It never starts a JDK probe in a repository that is not a Maven/Gradle build.orchestrate.tscalls it on the integration root right after dependency materialization, before any story is spawned. A gap is written to stderr aswarn: …and, under the TUI, sent as aplan-lanewarnactivity, so it shows as a note in the session feed.no JDK runs on this host (java -versionfailed), so the run verifier will skipmvn test. Install the toolchain on the host (or set JAVA_HOME / commit the build wrapper) for the merged result to be test-verified.Not in this PR
JAVA_HOME/PATH) into the story shells and intoverifyBuild.pom.xml/build.gradleonly from a story (a from-scratch Java project) is not caught up front. The check only sees build files that are in the tree when the run starts.Test plan
jvmToolchainGap (#219)tests intest/verification/jvm-commands.test.ts: no JDK (with and withoutJAVA_HOME) names both gates; with a JDK, only the build that does not resolve is named; no output and no JDK probe for non-JVM repositories; no output when every gate resolves.node --import tsx --import ./test/env.ts --test test/verification/jvm-commands.test.ts: 11/11 pass.npm run typecheck -w @baro/orchestrator,npm run build -w @baro/orchestrator,npm run build -w baro-aiall succeed.test/verification/*.test.tsplus theorchestrate-*/orchestration-run-idtests: 263/268 pass. Four of the five failures (command-timing×2,continuous-gate-runner,verify-retry-classification) also fail with this PR'ssrcreverted toorigin/mainon the same host, so they are pre-existing or environmental. The fifth (verify.test.tsprocess-tree drain, "fixture did not create … descendant-started") was not re-checked; it was a timing fixture running under load average ~40.npm testdid not finish: the first run was interrupted, the second was stopped while the host was heavily loaded. CI or a reviewer should run it.Generated with Devin