v0.7.0 — Paid-API tier complete (off by default)
Completes the paid-API tier (closes #2): an off-by-default, LiteLLM-fronted last-resort tier with full operator visibility. Builds on v0.6.0's gate + adapter (C6a) with last-resort routing (C6b) and panel visibility + a runbook (C6c).
Added
- C6b — last-resort paid-API routing. The frontier-first router now falls through to a paid
tier: apientry as a genuine last resort (plan §6): only after everycan_orchestratesub has failed/exhausted, and only when theapi_billing_enabledgate is on. Gate off (the default) → the router never reaches a paid tier. Enabledapientries are tried in roster order; a paid success is meteredtier=api/spend_avoided=0but does not advance the rotation cursor; paid failures fail over with the same[rate-limit]annotation. Requires ≥1 orchestrator (never paid-routes a subless roster). - C6c — paid-API visibility + runbook. The
tanglebrain-guiknob panel surfaces each entry'senabledkill-switch andbudget_usd_month(display-only), plus a Paid-API billing: ON/OFF banner from the global gate. Newview_settings()+GET /api/settings(reads onlyconfig/settings.yaml; no key file touched). README gains a step-by-step runbook for minting a budget-scoped LiteLLM virtual key on Monad and wiring it viakey_ref.
Notes
- Off by default and safe: paid billing requires the explicit
api_billing_enabledgate and a per-entryenabledflag. Custody is LiteLLM-fronted (a scoped virtual key viakey_ref); the hard budget cap is enforced LiteLLM-side, not by TangleBrain (v1 decision). - 265 hermetic tests pass; each chunk passed an independent Critic review.
Full Changelog: v0.6.0...v0.7.0