fix(proxy): say how much reasoning a spent budget bought #335
No reviewers
Labels
No labels
move-to-repo
coilyco-bridge-deploy
move-to-repo
coilyco-flight-deck-agent-compose
move-to-repo
coilyco-gaming-eco-app
move-to-repo
coilysiren-inbox
move-to-repo
unknown
🔒⚠️📦⚠️🔒 SANDBOXED 🔒⚠️📦⚠️🔒
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/sirens-echo!335
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/budget-failure-names-the-reasoning-spend"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
closes #334
The engineering slice of #325. The tuning and the instrument halves stay open there.
The gap
A knowledge question returned empty content 4 of 10 times after burning 3600 tokens and two raises. Every occurrence rendered identically, so two conditions wanting opposite responses were indistinguishable:
chatResponseMessagealready parsedreasoning_contentand nothing read it. The evidence separating the two was discarded at the moment of failure.What landed
The truncation failure and
model.budget.raisedboth carry the reasoning size. A byte count, never the text — reasoning content is model output and the turn logger carries no model bodies, so a test asserts the message leaks none of it.formatBudgetExhaustedis extracted so the message is testable rather than only reachable through a live model.What is deliberately unchanged
The escalation is not broken and I checked before touching it. 900 to 1800 to 3600 across two raises is what its documentation says, and
truncated()correctly requires a length finish and empty content and no tool calls, so a length finish that still produced a usable answer is not discarded. Tests pin all three.maxCompletionTokens,budgetRaisesAllowed,completionBudgetStep. Whether 3600 is enough for a reasoning model is a cost and latency decision against a live route. Raising a ceiling because a measurement was uncomfortable is how a budget stops meaning anything.One correction on my own commit
The commit message says
closes #325, which is too broad — 325 has three halves and this is one. I filed #334 as the slice and this body closes that instead, which is the partial-delivery rule from #330 that I documented an hour ago and then broke on the very next commit.ward exec gategreen: build, policy-check, vet, test, test-skips, pre-commit.