Fix configuration, browsing and report decision regressions
Merged
PR
2d ago+1702+1702+0123456789012345678901234567890123456789-234-234-012345678901234567890123456789
Addresses the verified findings from production preparation #575, split into six commits for review.
- Preserve signed stored custom-field orders, explain invalid stored configuration, retain database error causes and reject template order overflow before writes.
- Keep valid bookmark filters and pagination recovery, require approved games in visible results/counts, and retain URL/profile/device drafts across asynchronous updates.
- Send admin report status notifications only after commit, invalidate old/new public targets once, and link PC comment notifications to the correct report.
- Centralize the existing moderation transaction/committed trust-receipt lifecycle and make trust-log ordering deterministic.
- Associate shared form labels, preserve driver placeholders/rate-limit guidance and avoid duplicate preference warnings.
- Bound TGDB duplicate lookup batches to the existing 100-item limit while preserving signed IDs and empty batches.
Validation: focused real-router, React Query, component and transaction regression checks reproduced the defects before their fixes. All normal publication hooks passed lint, generated types and 3,882 unit tests across 311 files. No database schema, migration, seed execution, dependency or deployment configuration changes.
Summary by cubic
Fixes six regression areas found during production preparation: custom-field configuration persistence, bookmark and profile browsing state, admin report notifications, moderation trust transactions, form accessibility, and TGDB lookup batches.
Bug Fixes
- Preserves signed custom-field and category orders, explains invalid stored configuration, and retains database error causes.
- Keeps valid bookmark filters and pagination recovery, requires approved games in visible results and counts, hides bookmark and vote counts unless visibility is certain, and retains profile and device drafts across async updates.
- Sends admin report status notifications only after commit, invalidates old and new public targets once, and links PC comment notifications to the correct report.
- Associates shared form labels with their controls, preserves driver placeholders and rate-limit guidance, and avoids duplicate preference warnings.
- Bounds TGDB duplicate lookup batches to the existing 100-item limit while preserving signed IDs and empty batches.
Refactors
- Centralizes the moderation transaction and committed trust-receipt lifecycle and makes trust-log ordering deterministic.
Summary by CodeRabbit
- Bug Fixes
- Device selections remain visible during temporary result gaps, but no longer appear when the selected device changes or a lookup fails.
- Saved profile edits remain visible through background refresh issues; canceling restores the latest saved information.
- Invalid bookmark memory ranges are rejected with clearer guidance, and bookmark counts and results exclude unapproved listings.
- Bookmark pagination is preserved appropriately during loading and hidden when results are unavailable.
- Invalid saved page sizes fall back to the default, and search drafts behave consistently during URL changes.
- Driver rate limits show relevant guidance instead of server error details.
- Profile vote counts and lists reflect applicable visibility settings.
- Accessibility
- Improved labels and input associations for toggles, selects, and toolbar buttons.
- Notifications
- Approval decisions and comments link to the relevant listing or comment, including PC listings.