Skip to content

Revamp History and Logs: real pagination, combinable filters, retention#57

Merged
kernelcoffee merged 1 commit into
masterfrom
dev/history_logs_revamp
Jul 21, 2026
Merged

Revamp History and Logs: real pagination, combinable filters, retention#57
kernelcoffee merged 1 commit into
masterfrom
dev/history_logs_revamp

Conversation

@kernelcoffee

Copy link
Copy Markdown
Owner

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.

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.
@kernelcoffee
kernelcoffee merged commit 672c765 into master Jul 21, 2026
6 checks passed
@kernelcoffee
kernelcoffee deleted the dev/history_logs_revamp branch July 21, 2026 00:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant