Revamp History and Logs: real pagination, combinable filters, retention#57
Merged
Conversation
History (entries) and Logs shared the same defects: count was the page size so pagination never engaged, the frontend never sent an offset, date filters were silently dropped, filters were mutually exclusive if/elifs, the Pending status 422'd, and list_entries fetched each entry's giveaway individually. Both listings now go through a single repo search query: filters compose (status/type/giveaway/date for entries — dlc included; level/event type/message search/date for logs), the giveaway is joined in the same query, and the response carries the true total plus limit/offset. The frontend paginates against that. Entry attempts are no longer mirrored into the activity log — they are first-class Entry rows on the History page; the activity log carries system events only (unexpected entry crashes still log as errors). New log_retention_days setting (default 30, 0 = keep forever, migration a7d4e8f2c6b1): the automation cycle prunes older rows each pass, so the log stops growing forever. count_by_level also counts in SQL now instead of loading every row.
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.
History (entries) and Logs shared the same defects: count was the page size so pagination never engaged, the frontend never sent an offset, date filters were silently dropped, filters were mutually exclusive if/elifs, the Pending status 422'd, and list_entries fetched each entry's giveaway individually.
Both listings now go through a single repo search query: filters compose (status/type/giveaway/date for entries — dlc included; level/event type/message search/date for logs), the giveaway is joined in the same query, and the response carries the true total plus limit/offset. The frontend paginates against that.
Entry attempts are no longer mirrored into the activity log — they are first-class Entry rows on the History page; the activity log carries system events only (unexpected entry crashes still log as errors). New log_retention_days setting (default 30, 0 = keep forever, migration a7d4e8f2c6b1): the automation cycle prunes older rows each pass, so the log stops growing forever. count_by_level also counts in SQL now instead of loading every row.