CaseCrop / Interactive examples

Find a smaller failing trace.

Replay fewer events while preserving the failure and the setup it needs.

Use your own application
tenant_cache.pySaved example result
30 unrelated events · budget 500 · 1 replay per candidateInput 160d889c10
Original
36events
Reduced
6events
Removed
30events
Replayed
90calls
Failure reproduced and deletion audit complete

Select an event to inspect its payload and prerequisites.

Original trace / 36retained
Reduced trace / 6Audit complete
Target failurecache.cross_tenant

Every permitted event deletion, including its dependent events, was tested. None preserved the failure. This is closure 1-minimality; a smaller trace may exist.

Python integration

Reduce traces from your own system.

Implement a replay function that resets application state and checks for a specific failure. CaseCrop handles candidate deletion, prerequisite validation, and the audit report.

Zero runtime dependenciesPython 3.10+MIT licensed
Read the quickstart
reduce_incident.py
from casecrop import minimize

# replay must reset state before each execution.
result = minimize(
    trace,
    replay,
    max_calls=500,
)

result.reduced.save("regression.json")
assert result.one_minimal
pip install "casecrop @ git+https://github.com/shi1720/casecrop.git@v0.1.1"