v0.1.5 — resumable budget parks + turn cancellation
Resumable budget parks. A turn that hits max_cost / max_input_tokens / timeout now parks at zero compute with state intact instead of failing terminally. A human resumes it with turn.raise_budget!(max_cost: 1.50) — the top-up is a per-turn override, and a fresh job replays completed steps from rows (no model re-calls, no re-effects). bin/rails silas:chat prompts for the top-up inline.
Turn cancellation. turn.cancel! — parked/queued turns settle to canceled immediately with pending approvals expired (a late approve! can never zombie-resume them); running turns are flagged and honored at the next step boundary, preserving the in-flight step's paid work.
Two new migrations — run bin/rails silas:install:migrations db:migrate on upgrade.
gem install silas · 0.1.5