Skip to content

Release diff: master → previous_release - #26

Closed
Th0rgal wants to merge 2 commits into
previous_releasefrom
master
Closed

Release diff: master → previous_release#26
Th0rgal wants to merge 2 commits into
previous_releasefrom
master

Conversation

@Th0rgal

@Th0rgal Th0rgal commented Dec 28, 2025

Copy link
Copy Markdown
Member

Automated PR. The 'previous_release' branch is force-updated on every push to master to point at the commit before the push, so this PR always represents the current release diff.


Note

Introduces false-positive report management, finding deletion, and improved error handling across the dashboard, plus CORS/env and docs updates.

  • Findings UI: Add ViewFalsePositiveReportModal and DeleteFindingDialog; new actions to view/edit/delete reports and delete findings; integrate cache updates via removeFinding/removeReport; accessibility/keyboard tweaks
  • Error handling: New dismissible ErrorBanner on dashboard with retry (combines stats/players errors) and refetch logic
  • Data hooks: Add removeFinding, removeReport, and useInvalidateFindingsCache.invalidateAll to revalidate related caches; minor SWR enhancements
  • Config/docs: Clarify CORS with CORS_PERMISSIVE_DEV and improved CORS_ALLOW_ORIGINS guidance in api/env.example and docs; add server_address plugin option docs
  • Minor UI tweak: Prevent background on "Configure" button in modules page

Written by Cursor Bugbot for commit cfc655f. This will update automatically on new commits. Configure here.

@vercel

vercel Bot commented Dec 28, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
asyncanticheat.com Ready Ready Preview, Comment Dec 28, 2025 9:28pm

* fix: add delete finding UI, false positive modal, and fix error display

- Add DeleteFindingDialog component for clean finding deletion with cache invalidation
- Add ViewFalsePositiveReportModal to view and delete false positive reports
- Fix nested button hydration error by using div with role="button" and keyboard handling
- Create useInvalidateFindingsCache hook to refresh all finding-related caches
- Improve ErrorBanner for better API error visibility and recovery options
- Remove Configure button background styling and update CORS documentation

* fix: address PR review feedback

- Fix retry button to actually refetch players data (not just stats)
- Reset DeleteFindingDialog state when dialog opens or finding changes

* fix: add error check for false positive report deletion

* fix: prevent stale timeouts and keyboard event bubbling

- Store timeout IDs in refs and clear them when dialog reopens or unmounts
- Add e.target === e.currentTarget check to prevent keyboard events from
  nested buttons triggering parent handler

* fix: add server ID guard for DeleteFindingDialog rendering
key.startsWith(`players:${serverId}`) ||
key.startsWith(`dashboard-stats:${serverId}`)),
undefined,
{ revalidate: true }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cache invalidation negates optimistic updates causing UI flicker

The invalidateAll function passes undefined as the second argument to global mutate, which explicitly clears the cache data before revalidation. This immediately negates the optimistic update performed by removeFinding moments earlier. The sequence is: optimistic removal updates cache → invalidateAll clears cache to undefined → revalidation fetches fresh data. This causes a brief visual flicker where the deleted finding reappears in an empty/loading state before the final correct state renders. To trigger revalidation without clearing cached data, the second argument shouldn't be passed or should preserve existing data.

Additional Locations (1)

Fix in Cursor Fix in Web

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