Skip to content

Collect stopped TypeScript inputs through observers - #502

Merged
CaelmBleidd merged 3 commits into
mainfrom
caelmbleidd/pr479-retain-stopped-ts-states
Oct 14, 2026
Merged

CaelmBleidd merged 3 commits into
mainfrom
caelmbleidd/pr479-retain-stopped-ts-states

Conversation

@CaelmBleidd

@CaelmBleidd CaelmBleidd commented Oct 14, 2026 •

Copy link
Copy Markdown
Member

TypeScript analysis discards unfinished inputs when an unknown-call fallback prunes a path or an execution limit leaves states queued. Add an opt-in TsStoppedStatesObserver that sends these inputs to a caller-provided consumer, separately from completed witnesses.

UMachine.run retains its Unit contract. The shared machine observer and machine options retain their existing APIs, and analysis results do not gain a suspended-state list. TsMachine accepts an observer factory bound to the current selector. Unknown-call prefixes are snapshotted before pruning; reachable runtime-bound states are observed before ordinary witness filtering. After successful analysis, the caller collects the remaining queue while the machine is still open. This preserves stop metadata and avoids treating an exceptional onMachineStopped callback as successful analysis. Queue collection performs no additional execution steps or SAT checks; sink failures remain visible when collection completes.

Guarded residuals keep only cached models satisfying their guard, and the step limit stops at the requested count. Void-returning calls use undefined-compatible storage, with a source-level regression test.

Validation after rebasing onto main at e09199a5a0bb9aeb6eb4eecdcbaf25a3ec16737b: 17 focused TS tests and 21 solver/selector observation tests passed, with no failures or skips. Eight Calls tests also passed with the prepared local consumer migration; that migration remains separate from this PR. Disabling queue extraction made both timeout/step-limit regression checks fail; restoring it made them pass. Whitespace checks passed. These checks establish lifecycle, prefix/model, and fixture integration behavior, not representative real-program coverage.

@CaelmBleidd
CaelmBleidd force-pushed the caelmbleidd/pr479-retain-stopped-ts-states branch from 34752e5 to 1352314 Compare October 14, 2026 15:46
@CaelmBleidd
CaelmBleidd force-pushed the caelmbleidd/pr479-machine-query-quantum-metrics branch from 68bbaf6 to 23f29c8 Compare October 14, 2026 15:46
Base automatically changed from caelmbleidd/pr479-machine-query-quantum-metrics to main October 14, 2026 16:16
CaelmBleidd and others added 3 commits October 14, 2026 19:21
Preserve the Unit-returning machine loop and shared observer API. Bind an optional TS observer to each analysis queue and let the caller collect unfinished inputs after successful analysis, while retaining unknown-call prefixes before pruning.
@CaelmBleidd
CaelmBleidd force-pushed the caelmbleidd/pr479-retain-stopped-ts-states branch from 1416a0d to 2b7355b Compare October 14, 2026 16:27
@CaelmBleidd CaelmBleidd changed the title Retain stopped TypeScript inputs for later extraction Collect stopped TypeScript inputs through observers Oct 14, 2026
@CaelmBleidd
CaelmBleidd merged commit 5b79aae into main Oct 14, 2026
6 checks passed
@CaelmBleidd
CaelmBleidd deleted the caelmbleidd/pr479-retain-stopped-ts-states branch October 14, 2026 16:30
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