Repository navigation
fix: bound diagnostics and stabilize large-history refreshes - #124
Merged
Merged
Conversation
`getModelPricing` is called for every usage record, and a model missing from the table printed its fallback warning on every call. On a live history with a model newer than the table (`claude-opus-5-5`) that was ~91k console lines for one full index build and ~27k for a refresh that re-read a few large files. In the extension host the console write is the expensive part: in a CPU profile of refreshes it cost more than the pricing lookup itself. The fallback is deterministic per model name, so the first line says everything the repeats did. A runtime override that later adds the model is checked before the fallback is reached, so nothing needs resetting. Test: `an unknown model is reported once, not once per priced record` — fails on the parent commit (6 warnings instead of 2). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 0ff1d30)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 4e8ade5)
…99) Measured on a 979-file history with several agents appending: the append fast path never ran. Every refresh reported 53 analysis payload rebases, and any payload rebase disables `fastAppendAnalysis`, so each tick of a few kilobytes paid the slow path — rebuilding the seen-UUID set over the whole history. The 53 files are the ones whose every event is older than the window. On each refresh the cutoff moves, `rebaseFileAnalysisCutoff` takes the "last event is before the cutoff" branch and returns a fresh `newAnalysisAcc`. The payload is empty before and after, but `sameAnalysisPayload` compares collections by identity (by design: a metadata-only rebase keeps them), so every such file reads as changed on every refresh, for good. That branch is now taken only when the last event has just left the window (`last >= prior.analysis.cutoffMs`). A file that was already past the previous cutoff is empty already — `analyzeLine` ignores lines older than the cutoff — and falls through to the metadata-only rebase, keeping its collections. On the same history: `payloadRebases` 53 -> 0 on every refresh. Test: `a file already outside the window keeps its empty contribution as the window drifts` — it fails on the parent commit ("Values have same structure but are not reference-equal") and asserts the analysis equals the full loader's. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> (cherry picked from commit 2eccff1)
Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Use verified GPT-6.1 Sol, GPT-6 Sol/Luna and Sonnet 5.5 rates. Bound remote catalog bytes, entries, lifetime and concurrency; preserve the previous catalog on failure and reject prototype lookups. Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Preserve numeric usage with unpriced malformed model labels, protect analysis maps against prototype keys, copy aggregate buckets once per transaction, and release Claude refresh gates after UI errors. Remove legacy per-line diagnostics and backpressure out-of-order Codex results. Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Keep exact preview/export boundaries, preserve keys and verified usage, expose truthful backfill state, and cache unchanged panels with bounded lifetimes. Add host and Chromium regressions. Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
…isions Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Preserve verified same-source index work across presentation changes without delivering a retired UI snapshot. Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
… clocks Document the reviewed migration, attribution cache, source and pricing fences in every README and bilingual architecture. Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Keep calendar-day attribution separate from live countdown presentation and cover real clock advancement in coordinator and scale regressions. Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
Co-authored-by: OpenAI Codex <215057067+openai-codex[bot]@users.noreply.github.com>
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 free
to 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.
Summary
Related to #122 and #99. Builds on the merged #119, #120 and #121 contributions; thanks @rsyuzyov.
Validation
Acceptance and limits
Native macOS installed-VSIX interaction and actual F5 Extension Development Host acceptance are still pending, so this PR starts as a draft.
Synthetic scale checks, Chromium and module tests do not establish that every instance of the reporter's native Windows OOM is eliminated.
Merge only after remote CI and native acceptance pass. This PR does not publish a release; the maintainer reviews the release draft and clicks Publish.
🤖 Generated with OpenAI Codex