UnitTestBot / UnitTestBot/usvm

[Epic][TS Calls] Introduce explicit fallback policies and partial semantic models

Open
#360 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Kotlin
Stars
33
Forks
27
Avg merge
4d 3h
Merged PRs (30d)
15

Description

Goal

Make unknown-call behavior explicit and evaluate its effect on symbolic exploration and concrete reproducibility.

Scope

  • Use the current USVM and native JacoDB TypeScript frontend.
  • Reuse one typed unknown-call dispatch boundary.
  • Select an immutable set of semantic models independently from STOP_PATH or FRESH_SYMBOLIC_RETURN fallback.
  • Support guarded normal/exceptional successors, state changes and aliases, with an explicit residual domain routed to fallback.
  • Execute source models through the normal EtsIR interpreter; use intrinsics for engine primitives unavailable or inefficient in ordinary TypeScript.
  • Observe decisions through TsInterpreterObserver. Persistent path history and stopped-state snapshots are not production requirements.
  • Select a small justified model set using a real-project census and existing-model audit, then compare policy/model configurations with real TypeScript replay.

First-priority gate

#383 is P0 and blocks completion of #365/#366 and further integration using their old contract. Reuse the simplification already in PR #377/#380; do not create a duplicate implementation.

A model needs an ID, a declarative target and execution. Do not reintroduce separate backend/registration/descriptor layers, redundant implementation-kind/precision values, manually maintained model versions, or a generic plugin framework.

Work

  • Completed foundation: #361, #362, #363, #364.
  • Priority simplification gate: #383.
  • Model integration: #365, #366.
  • Independent census and audit: #367, #368. Their preparatory work may continue while the gate is resolved.
  • Final policy/model experiment: #385. Add bounded family implementation prerequisites only when the census justifies them.
  • Optional research-only frontier capture: #373, only when a concrete consumer needs more than existing decision events.

Definition of Done

  • All relevant unknown calls use one documented boundary or have an explicit exclusion.
  • Fallback semantics are consistent; opaque returns do not claim to model arbitrary side effects or exceptions.
  • Built-in model applicability depends on sufficient target/receiver evidence, not a method name or one possible type.
  • Unsupported domains retain their configured fallback; trusted models have focused guard, alias and exception tests.
  • One useful intrinsic and one ordinary TypeScript model demonstrate the two implementation mechanisms.
  • Decision observation does not change exploration or require generic core-state changes.
  • A frozen model set and development/held-out evaluation in #385 measure real replay-confirmed targets on comparable budgets.
  • Mandatory language semantics and correctness fixes remain identical between experimental profiles.
  • Negative results and unsupported cases are reported.

PBT generation, hybrid scheduling, LLM/MCP, a complete standard library and speculative research-state APIs are outside this epic.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Begin with blocking issue #383 and the simplification in PRs #377/#380, then trace the TsInterpreterObserver and EtsIR interpreter contracts. Review the dependent work in #365, #366, #367, #368, and #385; completion requires the documented boundary, justified model set, focused behavior tests, and replay-based evaluation described in the definition of done.

Written by the indexing model from the issue text.

Assessment

Tech stack
kotlin, typescript
Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.