Repository navigation
[TS PBT] Record scoped campaign metadata and observed Node versions - #548
Open
CaelmBleidd wants to merge 1 commit into
Open
CaelmBleidd wants to merge 1 commit into
CaelmBleidd wants to merge 1 commit into
Conversation
This was referenced Oct 16, 2026
CaelmBleidd
force-pushed
the
caelmbleidd/pbt-campaign-cli
branch
from
October 16, 2026 16:47
0e32fa6 to
57897a2
Compare
CaelmBleidd
force-pushed
the
caelmbleidd/pbt-campaign-metadata
branch
from
October 16, 2026 16:51
f4f1b5f to
b320896
Compare
This was referenced Oct 16, 2026
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.
Record optional campaign metadata before engine work: the canonical source root, requested Node command, SHA-256 snapshots of the direct predicate/precondition modules, and the explicitly supplied concrete-runtime tsconfig file. Capture consumes the campaign's existing deadline. Concrete results now carry an optional
runtimeVersionfrom the process that actually ran the property; the adapter captures it before loading property code, and no additional Node version probe is introduced.The source scope is explicitly
PROPERTY_ENTRY_MODULES. Imported dependencies, extended or automatically discovered tsconfig settings, effective machine options, build identity and the full environment remain unrecorded. Metadata is a pre-run snapshot: later candidates may carry a different source revision after PBT changes a file. This change does not impose one immutable source revision across a campaign. The later candidate source capture and native freshness validation are retained; the initial metadata never substitutes for either check.Artifacts without metadata or runtimeVersion remain readable with unknown values. The existing CLI still executes one campaign and writes the same completed snapshot to stdout and the requested file. Findings remain available when later work cannot complete.
Stacked on #545 (
caelmbleidd/pbt-campaign-cli). Refs #354; this is a limited metadata addition, not a complete reproducibility contract or completion of the campaign issue.Validation:
process.version.installDistpassed; all three installed CLI modes ran in separate Java processes with matching stdout/file artifacts and the expected presence or absence of a concrete runtime version.usvm-ts-pbt:detektMainandusvm-ts-fast-check:detektMain/detektTestwithignoreFailures=false.These are local checks; GitHub CI is checked separately.