Repository navigation
[Calls] Preserve reached inputs and measure native class coverage - #479
Merged
Merged
Conversation
CaelmBleidd
marked this pull request as ready for review
October 13, 2026 23:57
This was referenced Oct 14, 2026
CaelmBleidd
changed the base branch from
main
to
caelmbleidd/pr479-ts-primitive-string-conversion
October 14, 2026 15:35
CaelmBleidd
force-pushed
the
caelmbleidd/ts-calls-class-measurement
branch
2 times, most recently
from
October 14, 2026 15:46
e0f349b to
700f8b9
Compare
CaelmBleidd
force-pushed
the
caelmbleidd/pr479-ts-primitive-string-conversion
branch
2 times, most recently
from
October 14, 2026 19:44
3370736 to
38ff497
Compare
Base automatically changed from
caelmbleidd/pr479-ts-primitive-string-conversion
to
main
October 14, 2026 19:49
Connect class candidate extraction to the merged TS observer factory and collect queued inputs after successful analysis. Remove references to the retired shared callback and option while preserving stopped-versus-terminal candidate accounting.
CaelmBleidd
force-pushed
the
caelmbleidd/ts-calls-class-measurement
branch
from
October 14, 2026 20:06
700f8b9 to
079b434
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.
Calls previously measured members independently and mixed native coverage with symbolic-result agreement. Measure exact executable original TypeScript statements of one class under a shared 30- or 120-second budget, retaining input candidates when symbolic execution reaches an unsupported call or an execution limit.
The frozen class surface schedules the constructor, every member and ordered two-member scenarios on one receiver. A single machine retains scenario queues with constant-time fairness, a 250 ms quantum, Yices and class-only symbolic novelty. The original AST denominator stays fixed across profiles and budgets; wrappers, foreign classes, model bodies and type-only declarations stay outside coverage.
Primary coverage requires complete, agreeing original and independently instrumented native replays with checked target-class statement IDs. Symbolic returned-value/state consistency is a separate strict diagnostic. Candidate origin participates in deduplication, so a stopped prefix cannot hide a later terminal observation with the same inputs. In-search candidates retain their actual emission times; final queue extraction contributes only to the final budget checkpoint. Candidate caps, extraction failures and overruns remain visible.
Class measurement connects
TsStoppedStatesObserverto the caller's candidate consumer. It snapshots feasible unknown-call prefixes before pruning, observes reachable runtime-bound inputs, and collects queued inputs after successful analysis while the machine remains open. The sharedUMachine.run, observer and options contracts come from main unchanged. Collection performs no additional execution steps or SAT checks and preserves stop metadata.JacoDB remains pinned to
37327563abfrom UnitTestBot/jacodb#437 for constructor parameter-property binding. Schema 2 binds coverage and stopped-input policies; source closure, harness, domains, models, frontend and clean tool revision are bound into each cell. Source/instrumentation corruption, foreign hits and resume drift invalidate the acquisition attempt.Rebased onto main at
26f00125a3eb7ebbb1fbc8fcff8e1813f2e3926b. Already-merged engine changes are excluded from this PR; the additional observer migration touches three Calls files.Local validation of the rebased code: 64 Kotlin class/coverage tests, 41 Node source-inspection tests and 22 Python driver tests passed, with no failures or skips. Calls Detekt, whitespace checks and installDist passed. Broader suites remain for CI. These checks establish fixture behavior and packaging; they are not a rerun of the scientific campaign.
Historical evidence at
421dd926ee39312ec678bfc23be5390066f5a398: one unchanged HashMap, seed 17, a requested 30s in each profile, 91 scenarios and 66 original-class statements. All 475 candidate pairs passed complete agreeing original/instrumented replay without extraction, replay or native infrastructure failures.Those measurements are a failure reproduction on one class. The sealed v7 campaign covers three unique classes and retains its historical strict metric; neither data set establishes ecosystem representativeness. The historical results remain tied to their original revision and were not recomputed by this rebase.