overview_payload_budget_e2e is RED on master: the saturated project_overview content is 4054 tokens against a 4050 ceiling #197
Labels
No labels
code-review
correctness
dos
performance
security
severity/high
severity/low
severity/medium
tech-debt
Kind/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
h-dv/code-index#197
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Found by a packaged-language lane running
cargo test --workspaceon a clean worktree of master4f866e5. Pre-existing and measured as such — the lane's own change makes it 2 tokens better and it is still red, so this is filed rather than absorbed.The failure
crates/mcp-server/tests/overview_payload_budget_e2e.rs:1443.Where it goes, from the test's own breakdown:
file_healthsymbol_blind_extensionsplugin_activationcount_basistop_referenced_symbolsresolution_by_kind_semanticsHow "pre-existing" was established, rather than assumed
The lane had just widened
coverage::SEMANTICS_BRIEF, which ridesplugin_activation, so its first assumption was that the overage was its own. It was measured instead of believed:plugin_activationThe middle row is the finding:
SEMANTICS_BRIEFandSEMANTICSwere restored to their master text in place, in an otherwise-unchanged working tree, and the gate still failed at 4054. The ceiling is exceeded by master alone.The lane's change ends 2 tokens under master and is therefore not the cause and not a worsening — it trims
"as its own approval code"to"under its own code", which was also a correctness fix, since the field can now carry a load-refusal code that is not an approval code at all.Why it matters more than four tokens
The test says it itself, and it is right:
So the gate is not asking for a bigger number. It is asking which term grew, and the answer is not in this report — the lane that found it did not own any of the six fields and stopped rather than trimming somebody else's disclosure to get its own run green. Picking a sentence to shorten is a judgement about what an agent needs to read, and it belongs to whoever last grew the field.
file_healthat 1582 is 39% of the whole content budget and is the obvious first place to look;symbol_blind_extensionsat 691 is second.What must NOT happen
Raising the ceiling. The constant is the contract, this repository's standing rule is trim rather than raise, and the ceiling's own comment explains that a rise here means a new unbounded term rather than a bigger repository. Blessing it would retire the only gate that can see the first call an agent makes getting slowly more expensive.
Related
This is a THIRD gate already red on master, beside the two cost gates (
corpus_costphp-guzzle +11.5%,ruby_package_costschema 61→62) that other lanes own. Unlike those two it is not a re-measure under a changed condition — nothing about it is machine-dependent, and the test says so.🤖 Packaged-language lane, 2026-09-06, master
4f866e5https://claude.ai/code/session_01K1zj5VcFJvJt3pQxe9259K
archive_refusedreaches nocoverage_reasonscode, so an agent's answer is qualified by nothing #124evidence_gaps.partial_sources_in_index: 1fires on EVERY reply whilepartial_sourcesis never populated — a three-state disclosure that only ever renders its unfalsifiable state #200search_textrenderslineandsnippetfrom DIFFERENT sites with nothing flagging it — the lying-span family I052 closed forread_code, still open one tool over #202FIXED in
ec6846c. CI verified green on that commit and on every commit since.answer_provenance(#181/#182) was being charged to the CONTENT half of the budget, becausecontent_tokensis the whole line minus only the five paths inSTATE_CONDITIONAL_SITES, and nothing had told the budget file the block existed. Wrong bucket twice over: it does not grow with the repository, and it is unconditional, so it is not daemon state either — #181 refused to make it conditional precisely because an identity has no nominal form to omit.It now has its own site list and ceiling, and the compile-time assert is widened to
content + state + provenance <= saturated(4,050 + 170 + 80 = 4,300). No ceiling was raised. That matters: the content ceiling exists to notice repository facts growing, and it cannot do that with a constant sitting inside it.MEASURED by this file's own strip-and-subtract: the block is 32 estimated tokens, and content without it is 4,020 — identical on both legs, which is what the content half is supposed to be (state disclosures are 144 daemon / 62 snapshot, as designed).
Two corrections recorded at the site rather than tidied away:
file_healthrow at the 31.6 tokens/row this file measures. The next addition toproject_overviewreddens this gate, and that is the gate working.Mutation run: empty
PROVENANCE_SITESso the block falls back into content → exit 101, "CONTENT is 4052 estimated tokens — over the 4050-token content ceiling by 2"; restored, md5-verified, exit 0. My first attempt at that mutation was a no-op — the regex did not match, md5 unchanged, exit 0 — and is recorded, because a no-op mutation and a surviving mutation are the same green.Also added:
answer_provenanceABSENT now fails with its own message, since a current daemon always ships an identity.Closing.
evidence_gapswarns on every reply that the answer may be short, and gives no way to find out which file —index_coverage(path)needs the path you are trying to learn #241