Explanation
The budget guard
Why Kno refuses to spend your money silently: estimate, confirm, checkpoint, and the design consequences for interrupted runs.
Every path in Kno that can call a provider goes through the same four steps: estimate, authorize, invoke, settle, in integer micro-dollars end to end.
Caps bind before the call
Kno prices each case from its own dated price table, so the cap is known before the call rather than discovered at settlement. Two consequences:
- A run above its estimate asks for consent,
[y]/[n]/[c]change the cap, or proceeds with--yes. - A cap whose cost cannot be estimated is refused up front. Kno would rather not run than run unguarded.
Interruption is boring on purpose
Work checkpoints as each case completes, in one transaction with its
result. --resume skips finished work and reconstructs prior spend from
disk. An interrupted run cannot pay twice, and a budget-stopped run is a
configuration outcome (exit code 2), not a failure (1).
Why the pricing table rots on purpose
Prices change. Kno ships a dated pricing table and a weekly drift
detector: if the table is more than 90 days old, the weekly pricing check fails
and a pricing-drift issue is filed. A budget guard with stale prices is
theater.