Forked debugging
The loop is inspect, choose an intervention point, continue through a compatible runtime, and compare. Forking preserves provenance; it does not recreate missing code or credentials.
Inspect first
Terminal
tine show failed.tine
tine verify failed.tine
tine cost failed.tineContinue
debug.py
1from opentine import Agent, Run
2from opentine.models.anthropic import Anthropic
3
4failed = Run.load("failed.tine")
5for step in failed.steps:
6 if step.kind.value == "error":
7 print(step.short_id, step.error, step.outputs)
8
9last_good = failed.steps[4] # choose after inspecting lineage
10agent = Agent(model=Anthropic("claude-sonnet-5"), tools=[])
11fixed = agent.resume_sync(
12 failed,
13 from_step=last_good.id,
14 prompt="Continue with the recorded failure as a constraint.",
15)
16fixed.save("fixed.tine")
Replace the empty tool list with compatible, scoped tool callables when the continuation requires them.
Compare
Terminal
tine diff failed.tine fixed.tineUse the last semantically valid step, not automatically the step before an error.