Repository navigation
fix(manifest): report a facts build that fails before writing its records - #1643
Merged
Jeppe Fredsgaard Blaabjerg (jfblaa) merged 1 commit intoOct 23, 2026
Merged
Conversation
…ords A facts generator signals failure by returning null, which the auto-manifest abort missed when the exit code was already set. sbt roots share one global base, so a build that died before writing could be read as the previous root's records; records.tsv is now removed before each invocation.
This was referenced Oct 23, 2026
Oskar Haarklou Veileborg (BarrensZeppelin)
approved these changes
Oct 23, 2026
Oskar Haarklou Veileborg (BarrensZeppelin)
left a comment
Member
There was a problem hiding this comment.
LGTM
| ) | ||
| }) | ||
|
|
||
| describe('shared sbt global base', () => { |
There was a problem hiding this comment.
This is quite a contrived case, right? So I don't know if it deserves a test.
1 task
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.
LLM Description written by Claude Code:claude-opus-5-5
Two ways a failed JVM facts build could pass as a good one.
nullon failure, and that is what is checked now.records.tsvwas read as the previous root's records. The file is now removed before each invocation.Testing: new unit tests for both.
🤖 Generated with Claude Code
Note
Medium Risk
Changes failure detection for SBOM/manifest generation paths; incorrect handling could still under-report dependencies, but the fix tightens abort behavior and stale-record handling.
Overview
Fixes two cases where a failed JVM Socket facts run could look successful under
--auto-manifest/--dynamic-sbom-inference.Auto-manifest: Facts generation for Gradle, Maven, and sbt now surfaces failure via a
nullreturn fromrunManifestFacts(propagated through theconvert*ToFactshelpers).--auto-manifestaborts on that outcome instead of only whenprocess.exitCodechanges, so a facts failure is not missed when the exit code was already non-zero.Shared sbt global base: When multiple sbt roots reuse one global base,
records.tsvis deleted before each invocation. A root that exits before writing no longer inherits the previous root’s records and is reported as failed with empty facts.Reviewed by Cursor Bugbot for commit fc9277b. Configure here.