Skip to content

Calls: freeze per-class startup runtime graphs - #514

Merged
CaelmBleidd merged 5 commits into
mainfrom
caelmbleidd/calls-startup-runtime-resolution
Oct 15, 2026
Merged

CaelmBleidd merged 5 commits into
mainfrom
caelmbleidd/calls-startup-runtime-resolution

Conversation

@CaelmBleidd

@CaelmBleidd CaelmBleidd commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

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.

acquisitionComplete establishes 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 as b6047efc, +281/−78 across 8 files) supplies the shared cyclic/startup traversal, and PR #509 (a12b19cf, cherry-picked as ba46d207, +91/−5 across 3 files) supplies package configuration resolution. Their changes are inherited rather than a second traversal implementation. The own runtime component is 2bf9b73a; graph wiring/freezer is 22e59eb5; tool fingerprints are 5b03f1de. 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 checkLicense task, so commits bypass it after focused checks.

@CaelmBleidd CaelmBleidd changed the title Calls: resolve acquired startup runtime sources and boundaries Calls: freeze per-class startup runtime graphs Oct 14, 2026
@CaelmBleidd
CaelmBleidd force-pushed the caelmbleidd/calls-startup-runtime-resolution branch from f1fe4d5 to 1c05706 Compare October 15, 2026 13:50
@CaelmBleidd
CaelmBleidd merged commit 94c1323 into main Oct 15, 2026
6 checks passed
@CaelmBleidd
CaelmBleidd deleted the caelmbleidd/calls-startup-runtime-resolution branch October 15, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant