Skip to content

Preserve supported class entries after unsupported inputs or initial UNSAT - #515

Merged
CaelmBleidd merged 2 commits into
mainfrom
caelmbleidd/ts-symbolic-entry-startup
Oct 15, 2026
Merged

CaelmBleidd merged 2 commits into
mainfrom
caelmbleidd/ts-symbolic-entry-startup

Conversation

@CaelmBleidd

Copy link
Copy Markdown
Member

A class-wide TypeScript analysis aborted while constructing one callback or BigInt entry input, discarding independently supported methods of the same class. This occurred on original CustomPathedSource, Logging, SpeechToText, and EBMLWriter sources in the fixed 200-class startup smoke. Bot additionally exposed an initial solver UNSAT result treated as a generic failure.

Account for each entry independently. Explicitly reject callback and BigInt input domains that initial-state construction does not model, including aliases and generic upper bounds; retain their method-qualified reasons in unsupportedPaths. Continue constructing and executing other entries without changing the original class surface or denominator. This does not implement callback execution or coerce BigInt to number.

Handle actual solver UNSAT with a narrowly typed initialization exception and retain those entry signatures in the separate additive infeasibleEntryPoints result field. Solver UNKNOWN keeps its existing distinct exception/status path. Unexpected initialization/configuration defects still propagate.

Validation: five new focused startup regressions and five existing shared-analysis checks pass. They include source execution of the supported member, mixed and wholly unsupported entry sets, explicit UNSAT contract checks, and unexpected-error propagation. Disabling the input guard makes the same mixed-entry test fail with the original Expected EtsClassType or EtsUnclearRefType, but got EtsFunctionType diagnostic. Strict usvm-ts main/test Detekt reports zero findings. Full suites are left to CI.

The injected UNSAT tests verify solver-outcome accounting; they do not establish the root cause of the real Bot constraints. Real-corpus startup is rechecked in the integrated smoke run.

Related to #487 and the fixed-corpus startup work.

@CaelmBleidd
CaelmBleidd force-pushed the caelmbleidd/ts-symbolic-entry-startup branch from 5b5ae3e to 8f3d525 Compare October 15, 2026 13:22
Replace the positional Triple with InitialStatesResult and named constructor fields. Keep analyzeWithMetadata within the Detekt length limit without changing its stop-reason behavior.
@CaelmBleidd
CaelmBleidd merged commit e4a42ae into main Oct 15, 2026
7 checks passed
@CaelmBleidd
CaelmBleidd deleted the caelmbleidd/ts-symbolic-entry-startup branch October 15, 2026 13:42
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