7886629b36
The runtime contract gated on total consultation tool attempts, so a single transient calculation failure raised the counter past one and made the run unrecoverable even after a later attempt succeeded. The already-computed chart was discarded and the request ended as runtime_contract_incomplete. Count only successful workflow executions against the single-calculation boundary. Failed attempts stay in the attempt counter for observability. The request-scoped cache still retains the successful promise, so a request can never run more than one billable calculation. Also record the staging-first branch delivery convention in AGENTS.md. Co-authored-by: Cursor <cursoragent@cursor.com>