v0.2.5
Thinkroom v0.2.5
This release makes long provider-backed research bounded and observable while
preserving Thinkroom's fail-closed evidence contract.
Highlights
- Adds separate soft and hard job deadlines, bounded per-route timeouts, and a
shared three-call budget for transient retry, configured fallback, and
producer-affine schema repair. - Adds an attempt-local primary circuit reconstructed from durable provider-call
evidence. Timeouts, repeated fast failures, and primary raw-transport
amplification prevent new primary calls in the same attempt. - Allows one configured fallback after a primary raw-transport limit without
retrying the amplified route. Semantic, final-result, process-envelope, and
fallback output limits remain terminal. - Records content-free Prime RPC byte/event counters on successful and failed
calls without retaining prompts, responses, provider errors, or event payloads. - Adds snapshot-labelled progress substates for active, queued, slow, degraded,
stalled, and presumed-dead work. - Preserves typed partial evidence when a soft deadline prevents remaining work
from starting. - Adds an opt-in rollout concurrency canary of two while retaining the production
default of one active provider call. - Migrates the exact canonical v0.2.4 SQLite schema in place and rejects unknown
or intermediate database shapes before mutation.
Verification
- Locked dependency, format, lint, and static type gates passed.
- 337 tests passed on Ubuntu 24.04.
- The release wheel passed a fresh Python 3.12 hash-locked install, runtime-lock
verification, package verification, restart persistence, and exclusive-process
lock smoke tests.
See docs/provider-resilience-v0.2.5.md and docs/OPERATIONS.md for the complete
runtime contract and rollout guidance.