mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 17:35:10 +03:00
## Problem The `ResourceExhaustionWarningBanner` routed disk IO, CPU, and memory/swap exhaustion warnings to `/settings/infrastructure#<metric>` — an infra chart page with no direct fix available. The action button label "Learn more" didn't reflect a clear next step, and there was no way to get AI-assisted query optimization from the banner. ## Changes **Routing & CTAs** - Compute warnings (`disk_io`, `cpu`, `ram`) now route to `/settings/compute-and-disk` instead of the infra chart page - Free plan users are routed to `/org/[slug]/billing?panel=subscriptionPlan&source=resource_exhaustion_banner` - Primary CTA text changed to "Upgrade compute" for all compute warnings (paid and free plan) - Read-only mode CTA changed from "Learn more" to "Manage disk" **Troubleshoot dropdown** - For compute warnings (which have both a docs URL and an AI prompt), a "Troubleshoot" dropdown replaces the standalone "Learn more" button, offering: - Documentation — links to the relevant troubleshooting guide - Ask AI Assistant — opens the AI assistant with a pre-filled query to identify expensive queries via `pg_stat_statements` - For warnings with only a docs URL (read-only mode, disk space, auth), a direct "Learn more" button is shown as before **Telemetry** Two new events track user interactions with the banner: | Event | Fires when | Properties | |---|---|---| | `resource_exhaustion_banner_upgrade_clicked` | User clicks the primary CTA | `warningTypes: string[]`, `isFreePlan: boolean`, `destination: string` | | `resource_exhaustion_banner_ai_assistant_clicked` | User clicks "Ask AI Assistant" | `warningTypes: string[]`, `isFreePlan: boolean` | Both events include the standard `groups` payload (project + org). **Suppression fixes** - Banner is now hidden on `/settings/compute-and-disk` for paid-plan compute warnings (CTA would be a no-op) - Banner stays visible on `/settings/infrastructure` for compute warnings (CTA now links to a different page) **Description text** - Removed stale "Check the usage page for more recent and detailed statistics" from compute warning descriptions — no button in the banner leads there - Updated `multiple_resource_warnings` descriptions to reflect the upgrade-focused CTAs **Bug fixes** - Fixed: auth rate limit critical banner was showing when warning content had no title/description - Fixed: CTA disabled state now only applies to compute warnings while org data is loading (not all warning types) ## How to test - Trigger or mock a `disk_io_exhaustion`, `cpu_exhaustion`, or `memory_and_swap_exhaustion` warning - Paid plan: CTA reads "Upgrade compute" → `/project/<ref>/settings/compute-and-disk` - Free plan: CTA reads "Upgrade compute" → `/org/<slug>/billing?panel=subscriptionPlan&source=resource_exhaustion_banner` - Troubleshoot dropdown appears with Documentation and Ask AI Assistant options - Verify `is_readonly_mode_enabled` shows "Manage disk" CTA and a direct "Learn more" button (no dropdown) - Verify `disk_space_exhaustion` and auth warnings show a direct "Learn more" button (no dropdown) - Verify the banner is hidden on `/settings/compute-and-disk` for paid-plan compute warnings - Verify the banner is still visible on `/settings/infrastructure` for compute warnings - Verify `resource_exhaustion_banner_upgrade_clicked` and `resource_exhaustion_banner_ai_assistant_clicked` events fire with the correct properties --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>