Skip to content

[TS Calls] Capture class candidates and accept matching replay coverage - #478

Merged
CaelmBleidd merged 2 commits into
mainfrom
caelmbleidd/ts-calls-class-coverage-search
Oct 13, 2026
Merged

CaelmBleidd merged 2 commits into
mainfrom
caelmbleidd/ts-calls-class-coverage-search

Conversation

@CaelmBleidd

@CaelmBleidd CaelmBleidd commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

Calls can lose private-method and constructor paths when a wrapper adds no new entry-function statements. It can also include native replay coverage when symbolic and concrete completions disagree. This PR fixes both boundaries in separate commits.

  • An optional source-file-qualified symbolicCoverageClass in the source manifest selects candidate novelty and the machine's fixed CLASS scope. Constructor/private-method statements contribute; wrapper and foreign-class statements cannot create candidates. Missing or ambiguous classes fail before search. Existing function scope remains the default, and the existing manifest hash/resume guards bind the class selection.
  • Coverage checkpoints aggregate source hits only from error-free replays with the same RETURNED/THREW completion as their symbolic candidate. Replay journals, replay counts and completion-mismatch counts preserve rejected observations.

Based on main at 5cecdb6743e3d7d0ced3930b198e5a786004766c, including merged #414, #416, #417, #418 and #476. Existing collectors, source replay, common metrics, solver identity and object snapshots are reused.

Validation on JDK 21 with the native TypeScript frontend: all 142 Calls tests passed, zero failures/errors/skips. Calls Detekt main/test reported zero findings; diff checks passed. New tests cover four-profile class novelty, private helpers, constructors, exact source paths, foreign/wrapper-only paths, unmapped targets and frozen-manifest scope changes. Emitted fixture inputs replay to both original TypeScript if arms. Native replay checks retain rejected observations while excluding their hits. Two candidate regressions and the checkpoint acceptance regression fail on result assertions with the corresponding fixes disabled.

These changes establish symbolic class novelty and a completion-acceptance gate. Class-only executable source-statement denominators/mapping, constructor plus method-sequence harnesses, shared class scheduling and scenario/solver attribution, returned-value/receiver-state equivalence, class manifests/eligibility and a two-class 30/120-second pilot still remain. A class campaign has not run. Fresh CI for the second commit is pending.

@CaelmBleidd CaelmBleidd changed the title [TS Calls] Select coverage candidates by target class [TS Calls] Capture class candidates and accept matching replay coverage Oct 13, 2026
@CaelmBleidd
CaelmBleidd marked this pull request as ready for review October 13, 2026 23:21
@CaelmBleidd
CaelmBleidd merged commit 19866c9 into main Oct 13, 2026
7 checks passed
@CaelmBleidd
CaelmBleidd deleted the caelmbleidd/ts-calls-class-coverage-search branch October 13, 2026 23:23
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