Skip to content

[TS PBT] Confirm and shrink named DSL check witnesses - #541

Open
CaelmBleidd wants to merge 1 commit into
caelmbleidd/ts-pbt-external-witness-replayfrom
caelmbleidd/pbt-dsl-named-witness
Open

CaelmBleidd wants to merge 1 commit into
caelmbleidd/ts-pbt-external-witness-replayfrom
caelmbleidd/pbt-dsl-named-witness

Conversation

@CaelmBleidd

@CaelmBleidd CaelmBleidd commented Oct 15, 2026 •

Copy link
Copy Markdown
Member

Generated DSL checks could not use external-witness confirmation: their diagnostic companion throws NamedCheckFailure, which replay classified as an adapter error, and a named target required a separate witness hook. Replay now accepts an explicitly selected declared check through the existing companion, preserving its check ID, actual/expected values and false-versus-exception outcome.

Native shrinking and final validation retain the same check, outcome, error name and message. An earlier failed check, rejected precondition, unsupported input or exception before the selected check cannot confirm it. Contextual and hypothesis targets continue to require their exact executable hook binding.

This is a small continuation of #353, stacked on #506 at 0715401d5d973479bc677072322925c47a501c77. The shared process-shutdown repair belongs to that base; this PR retains only the named-check integration. It does not close #353. The caller still selects the check explicitly: symbolic boolean results do not yet carry check identity, and automatic DslPropertyRunner wiring is deferred. Matching exception messages is conservative and can limit reduction when messages depend on input.

Validation:

  • Seven new integration tests include DSL compilation → real USVM search → native confirmation, actual native shrinking from 80 to 15, and negative admission/check/outcome/context cases.
  • Full FastCheck suites: 125 Kotlin tests and 186 Node tests passed. Strict Detekt on both changed Kotlin files reported zero findings; git diff --check passed.

No experimental campaign was run.

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