Skip to content

P1: budgets: fill in every deferred cap, deadline, and retention window in one sitting #616

Description

@macanderson

What decision this asks for

Every item below is a fix that is already understood and mechanically implementable — it is blocked on a number or on a tradeoff nobody has ruled on, not on engineering. What is needed is one sitting with the whole table: write a value next to each row (a byte cap, a deadline, a retention window, a batch size), and rule on the handful of genuine forks (is a cap configurable at all? may a served turn opt out of the host's spend ceiling? which of the two cache-warmth contracts is the real one?). Once the numbers exist, the implementations follow.

Please decide the reporting half at the same time: for every cap that drops, truncates, or evicts, say whether the operator sees it (event, warning, Evicted marker, drop-report row) — a silent drop is the failure mode nobody notices until it has already cost them a session.

Spot-checked against origin/main at 092b2dda (0.5.24): the MCP consts, MAX_TOOL_PAGES, the SSE buffer cap, the bash/exec budget split, the two cache-warmth contracts, download_bytes, and the zai_video _ => arm are all still exactly as described.

Items

Why these are together

None of these is an open engineering question — every one has a known fix that was written down and then stopped at the same wall: a constant nobody has authority to invent, or a fork between two defensible behaviors. They span nine crates and eleven audit issues, but they are one unit of work for the person who can rule on them: sit down once with the whole table, write a number in each row, and the code changes become mechanical follow-ups that can be split however is convenient. Deciding them one at a time is what has kept them open, because each in isolation looks too small to justify a policy conversation and too policy-shaped to settle in a bug fix.

Deferred during the #546 audit remediation. Put Closes #<this issue> in the PR description and as a commit trailer when it lands.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Important — next in lineP2Polish — worth doing, not urgentarea:corestella-core — engine: step loop, budget, compaction, retry

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions