Repository navigation
Calls: freeze per-class startup runtime graphs - #514
Merged
Merged
Conversation
CaelmBleidd
force-pushed
the
caelmbleidd/calls-startup-runtime-resolution
branch
from
October 15, 2026 13:50
f1fe4d5 to
1c05706
Compare
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.
Class startup needs the actual original runtime/config graph before measuring the engine. This adds runtime acquisition resolution, connects it to the shared startup traversal, and provides a repeatable graph-to-manifest CLI. It follows real TS/JS and generated runtime bytes, preserves target/import bytes, and records JSON, native builtin and unresolved dynamic-module boundaries explicitly. Checked/native-replay admission remains unchanged.
The freezer verifies consumed bytes against immutable project snapshots or the exact original Git revision, materializes narrow runtime closures in shared project roots with an explicit installed-source namespace mapping, and writes all original class rows plus frozen graph receipts. An unrelated failed devDependency installation does not veto a class whose complete graph is proven; failed or changed graph inputs remain incomplete with their original installation provenance. No project code, package installation or build script runs during graph freezing or measurement.
Startup frontend compatibility is explicit: the exact pinned compiler inventory/SHA is captured, unsupported type-check-only options and newer declaration libraries get documented before/after boundaries, and unknown semantic options stay intact. Original resolved options and generator/inspector/Node/compiler fingerprints are frozen. A library projection such as ES2024 to the frontend's ESNext declarations does not implement missing runtime operations.
acquisitionCompleteestablishes a per-class acquired graph including opaque boundaries. Genuine original-class entry, usable concrete candidates and class-only replay-checked coverage remain separate checks.This PR targets main and has a linear history with explicit existing dependencies: PR #510 (
dcd80360, cherry-picked asb6047efc, +281/−78 across 8 files) supplies the shared cyclic/startup traversal, and PR #509 (a12b19cf, cherry-picked asba46d207, +91/−5 across 3 files) supplies package configuration resolution. Their changes are inherited rather than a second traversal implementation. The own runtime component is2bf9b73a; graph wiring/freezer is22e59eb5; tool fingerprints are5b03f1de. When #509/#510 merge, GitHub's inherited diff will disappear.Validation: TypeScript build and 67 focused runtime/source-closure tests passed; 5 Python tests exercise the actual Node graph inspector, unchanged original bytes, namespace mappings, changed-runtime rejection, failure retention, irrelevant failed devDependencies and explicit compiler projection. The unchanged original 200-class graph proof run is in progress; frozen installations exist for 189 classes and all prior failure receipts remain. These counts are not a claim of 189 engine starts. Broad suites are left to CI. The local hook calls the removed
checkLicensetask, so commits bypass it after focused checks.