Uh oh!
There was an error while loading. Please reload this page.
Budget refusals carry trip-site and raw-vs-settled diagnostics (LLP 0097) - #307
Merged
Conversation
platypii
commented
Jul 12, 2026
ContributorAuthor
Reviewed. Clean change, tests pass, LLP anchor valid. The diagnostics threading is correct. Core invariant holds: settled is always at most raw (GC only frees memory), so the Minor note (non-blocking): the new diagnostics reporting code has no LGTM. |
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Remote perf testing after #305 deployed showed the fix working for every WHERE-carrying scan, but unfiltered scanning aggregates (MIN/MAX/COUNT over a column with no WHERE) still refuse on the central server at a near-constant ~3.14GB of post-GC growth. That number cannot be reproduced locally: the same code over the local cache retains under 2MB, and every engine path (scanColumn fast path, streaming accumulators, buffered fallback) was ruled out by probes.
The blocker is that a refusal from a remote daemon carries no evidence. This makes every budget refusal self-diagnosing:
[site=<check-site> raw=<n>MB gc=confirmed|unavailable baseline=<n>MB], so the diagnosis travels through the MCP error string to the investigating client.QueryExecutionBudgetErrorexposes the same values on.diagnostics.query.execute_sqlspan recordsbudget_trip_site,budget_raw_mb,budget_settled_mb,budget_gc.Sites are
row_scan,column_chunk,watchdog, andterminal. The raw-vs-settled split distinguishes "the memory was genuinely live" from "no GC handle was available"; the site says which execution phase held it.LLP 0097 updated in the same commit.
npm testandnpm run build:typesclean.