[TS PBT] Confirm, classify and shrink symbolic property and hypothesis witnesses
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- kotlin, typescript
Línea de trabajo
Start with the candidate inputs from #352, JsConcreteValue, and the shared invocation contract from #384; trace them through the existing backend execution and reproduction path. Add focused tests using the existing adapters and codecs for replay classifications, explicit examples, and shrinking. Done means real TypeScript-runtime fixtures preserve values and aliases, minimized witnesses still violate the property, and unsupported or timed-out shrinking is reported without publishing unconfirmed counterexamples.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Part of #345. Direct-counterexample delivery depends on #352/#384. The core contract includes hypothesis replay through #398 and is required by #405. Generator-choice and command-sequence reduction are later integrations owned by #400/#402; their acceptance gates do not block core completion.
Goal
Confirm every symbolic candidate in original TypeScript and reuse backend shrinking while preserving exactly what the witness demonstrates.
Scope
- Consume #352's extracted JsConcreteValue inputs; reuse the current backend invocation, codecs and process supervision.
- Validate declared domain/generator support as applicable, execute the original precondition and original predicate using #384.
- Keep outcomes distinct: confirmed original-property violation, confirmed hypothesis refutation with original property holding, no refutation/property holds, domain/precondition rejection, unrepresentable input, unsupported replay, nondeterminism, and property/engine/replay error.
- A hypothesis replay checks the same program point, context, guard and relation that generated the symbolic target. A different invocation/site does not confirm it. A full original oracle is still required even for an intermediate-prefix target.
- Preserve target/assertion/hypothesis identity and original input alongside replay status. An exception in a precondition is an error; predicate exceptions follow #384. Hypothesis refutation alone is not counted as a program defect.
- Preserve special values, argument order and supported aliases/isolation without coercion. Generator-source/context revisions are pinned.
- Feed eligible external witnesses to backend shrinking; inspect canShrinkWithoutContext or retained native context as appropriate. Explicit-example execution and a zero shrink count are not proof of minimality.
- Use a target-specific reduction predicate: same original assertion failure, or same guarded hypothesis refutation. Recheck domain/admission and original predicate on the final result. Preserve the original confirmed witness if shrinking is unavailable, fails or times out.
- For #400, preserve dependent generator construction/choice validity. For #402, reduce commands/arguments while retaining valid guards and the same failure. Add small adapters to backend facilities rather than a general custom shrinker.
- Return both confirmed failing inputs and useful non-failing behavioral witnesses to #355 with provenance and a reproducible replay artifact. A replay token is not portable across arbitrary generator/backend revisions.
- Replay/reduction share #354's monotonic deadline. Reserve validation budget and retain unconfirmed candidates when it expires.
Definition of Done
- Real-runtime fixtures cover confirmed/spurious/rejected/unrepresentable inputs, exceptions, hypothesis-only refutation and unsupported shrinking.
- At least one external supported witness actually shrinks and still reproduces the same target-specific failure.
- Source/context mismatch, mutation isolation and core target-preserving reduction have explicit behavior tests. Generator-choice dependency and command-sequence reduction tests are delivered with #400/#402.
- Artifacts retain original candidate, concrete classification, minimized result if any, reduction metric/attempts, backend revision and reproduction data.
- No candidate is reported as a final fault before original-oracle replay; no hypothesis-only witness is counted as an original-property violation.
- Lenguaje dominante
- Kotlin
- Estrellas
- 33
- Forks
- 27
- Merge medio
- 3 d 8 h
- PR fusionados (30 d)
- 7
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de UnitTestBot/usvm
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
UnitTestBot/usvm#440 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
UnitTestBot/usvm#439 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 70/100
UnitTestBot/usvm#438 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
UnitTestBot/usvm#437 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 62/100
UnitTestBot/usvm#436 ·
Los mantenedores suelen responder en 1 día
Todos los issues de UnitTestBot/usvm
Issues similares
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 90/100
Los mantenedores suelen responder en 5 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
home-assistant/android#7561 ·
Los mantenedores suelen responder en 1 día
-
Posthog-js version outdatedAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
PostHog/posthog-kmp#90 · 1 comentario · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
contributor: external needs review
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
fwcd/tree-sitter-kotlin#289 ·