Reuse event classification in paid-offer reports - #208
Merged
Merged
Conversation
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.
The paid-offer report scans more than 100,000 historical entries and repeatedly classified the same event while deciding eligibility and explaining exclusions. Its live request exceeded the 30-second contract-probe timeout during PR205's release, although unchanged recertification later passed.
Reuse the current event's classification for eligibility and exclusion checks. Historical ownership upgrades to AG_INTERNAL retain the original raw-event label path. No classifications or reports are cached across events or requests, so ownership corrections affect the next read immediately.
Validation: complete reports are identical for a 107,370-event synthetic history. Five runs per version measured median CPU time falling from 1.564s to 1.100s (30%) and wall time from 1.873s to 1.124s (40%); this is a local benchmark, not a production latency guarantee. 67 focused tests passed on each storage backend, including 432 mixed historical cases, exact incident-window boundaries and later ownership corrections. Full local suites passed 2,217 JSON and 2,218 SQLite cases; their sole loopback-permission failure passed separately with permission. All protected remote checks and live certification must pass before the release is considered complete.