Commit Graph
37804 Commits
Author SHA1 Message Date
Aleksi ImmonenandJordi Enric 86076c07f7 redirect /blog/pricing to /pricing (#46160)
## Summary

- Adds a 301 redirect from `/blog/pricing` to `/pricing`
- The 2021 beta pricing post has an "Out of date" banner but still ranks
~position 2 for pricing queries, sending users to stale plans
- Redirect passes accumulated link equity to the canonical pricing page

## Changes

- `apps/www/lib/redirects.js` — one entry added at the top of the array

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **Improvements**
* Added permanent redirect routing to direct users from the blog pricing
page to the main pricing page, ensuring seamless navigation.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46160?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Jordi Enric <jordi.err@gmail.com>
2026-06-03 11:25:06 +02:00
Mert YEREKAPAN 4c07df1a48 feat(studio): surface affected project in metric advisories (#46203)
## Summary

Resolves [GROWTH-865](https://linear.app/supabase/issue/GROWTH-865) on
the Studio side. Companion backend PR:
[supabase/platform#33086](https://github.com/supabase/platform/pull/33086).

Resource-exhaustion advisories (CPU, Disk IO, Memory) currently give
users a list of identical-looking messages with no project context. This
PR makes the affected project visible in the advisor panel and hardens
the "Check consumption" deep-link.

### Changes

**Advisor list view** — `AdvisorPanel.utils.ts`,
`AdvisorPanel.types.ts`, `AdvisorPanel.tsx`, `AdvisorPanelBody.tsx`
- `AdvisorNotificationItem` now carries `project_ref`.
- `getAdvisorItemSecondaryText` accepts an optional `projectNameByRef`
map and returns the resolved project name (falling back to the ref if
the lookup hasn't loaded). Falls through to the existing date string for
notifications without a project.
- `AdvisorPanel.tsx` builds the map from `useProjectsInfiniteQuery` and
threads it through `AdvisorPanelBody`.

**NotificationDetail** — `NotificationDetail.tsx`
- `[ref]` / `[slug]` substitution in action URLs falls back to
`data.project_ref` / `data.org_slug` before the `_` literal. This fixes
the universal-link bug Tim reported where "Check consumption" sometimes
resolved to `/project/_/...` while `useProjectDetailQuery` was still
loading.

The companion backend PR updates the notification copy so the
title/message also name the project. Both PRs degrade gracefully if
landed independently.

## Test plan

- [x] `pnpm test:studio -- AdvisorPanel.utils.test.ts` — 6/6 pass (4 new
tests cover the notification branch of `getAdvisorItemSecondaryText`)
- [x] `pnpm typecheck` passes for apps/studio
- [x] `pnpm exec eslint components/ui/AdvisorPanel/` passes
- [ ] Local Studio smoke test: open Advisor → Messages, confirm project
name shows under each notification and "Check consumption" deep-links to
the correct project even if the project detail query is slow

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Advisor Panel notifications now display resolved project names when
available for clearer context.

* **Bug Fixes**
* Notification action URLs now prefer stored project and organization
refs/slugs with improved fallbacks, making action links more reliable.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46203?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-03 09:18:36 +00:00
Gildas Garcia 8de1027d06 chore: remove deprecated Space component (#46431)
## Problem

The `Space` component is deprecated but was still used

## Solution

- Convert the only usage to simpler HTML
- Remove the `Space` component

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

## Release Notes

* **Chores**
* Removed deprecated Space UI component from the library exports and
codebase.
  * Cleaned up unused component imports across the application.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46431?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-03 11:15:16 +02:00
Gildas Garcia 49292c0e12 chore: remove Modal (#46425)
## Problem

Now that we migrated all `Modal` usages to `Dialog`, we don't need
`Modal` anymore

## Solution

Remove the deprecated component
2026-06-03 11:13:52 +02:00
Gildas Garcia 63a99ed126 fix: visual bug in webhook configuration UI (#46582)
Before:
<img width="752" height="230" alt="image"
src="https://github.com/user-attachments/assets/1cfce3c9-26fa-4b36-bf1b-fa3c4e7560fc"
/>

After:
<img width="747" height="227" alt="image"
src="https://github.com/user-attachments/assets/7b1b6654-3532-4fca-8fbc-dae38ea99dc1"
/>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Style**
* Refined spacing in the webhook type selector UI for improved visual
alignment and consistency across the database hooks interface.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-03 11:13:20 +02:00
Luiz Felipe Machado 881149c4f9 feat(self-hosted): make analytics optional in compose (#45327) 2026-06-03 11:07:31 +02:00
Andrey A. 0bca6012ce docs(self-hosted): update analytics guide (#46452) 2026-06-03 10:48:14 +02:00
Andrey A. 7480bff76c docs(self-hosted): add quick start and describe setup and management scripts (#46416) 2026-06-03 10:46:50 +02:00
f20cd22dc3 docs: improve SDK automation build step on docs (#46163)
# Second try of making a new better process for SDK automation

Instead of building a new pipeline. We will take the lessons learned
form round 1, plus the good design and improvement on DX quality for
drop-in file as a single step required from SDK team and produce almost
identical set of files as used right now to render using the current
pipeline.



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* New reference-content pipeline producing per-library reference
artifacts and integrating into prebuilds, search ingestion, and
rendering (type-aware examples).

* **Documentation**
* Added comprehensive JavaScript SDK v2 reference content and partials
(Auth MFA, passkeys, admin, TypeScript support, filters, modifiers,
Installing, Initializing, Buckets, etc.).

* **Tests & CI**
* Added regression snapshot test and updated workflows to refresh
reference snapshots and ensure spec downloads.

* **Chores**
* Updated ignore rules, build scripts, Makefile targets, and package
lifecycle hooks.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Katerina Skroumpelou <mandarini@users.noreply.github.com>
Co-authored-by: Katerina Skroumpelou <sk.katherine@gmail.com>
2026-06-03 11:46:02 +03:00
ChloeGarciaMillerandandGildas Garcia 3701302b84 fix(design system documentation): remove unwanted horizontal scroll caused by separator styles (#46584)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Fix the design system documentation in UI Patterns/ Form section.

## What is the current behavior?

The form panels have horizontal scrolling due to the style of the
separators

<img width="2107" height="1255" alt="260602_before"
src="https://github.com/user-attachments/assets/3714e751-425f-4f97-82f5-9d55e357a8eb"
/>

The MultiSelector components originally used a complex style, which has
been simplified without affecting the visual appearance.

## What is the new behavior?

The style of the MultiSelector components has been simplified.

There is no longer any horizontal scrolling in the form panel.

<img width="2107" height="1255" alt="260602_after"
src="https://github.com/user-attachments/assets/c59da9c5-d383-47d8-9644-b7993417b6ca"
/>


## Additional context

The style has not been changed.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Style**
* Standardized separator layout in the form patterns side panel to use
full-width spacing, improving visual consistency and alignment across
panels.
* Relaxed the multi-selector trigger width constraint so it now fills
available space, allowing more flexible and cohesive layout behavior
without altering form behavior or validation.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Gildas Garcia <1122076+djhi@users.noreply.github.com>
2026-06-03 09:33:17 +02:00
Andrey A. b28f91741f fix(self-hosted): reveal and copy secret api key in project settings (#46592) 2026-06-03 09:03:23 +02:00
Stephen Morgan 2b1ba50753 bugfix: timezone issue with template block cutoff date (#46601)
Fix to small issue with our block to free tier. The /project endpoint
does not return a timestamp so it is being interpreted as local.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Release Notes

* **Bug Fixes**
* Resolved timezone handling inconsistencies in email template
availability checks to ensure accurate and consistent results across all
geographic locations and server configurations.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-03 15:56:20 +12:00
Miranda Limonczenko 00d530d54a Add Miranda Limonczenko to humans.txt (#46597)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

I am new to Supabase (yay!) and so must declare myself officially as a
human rather than bot.

## What is the current behavior?

My name is not included. ☹️ 

## What is the new behavior?

My name _is_ included. 😄 

## Additional context

None.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
  * Updated team contributor information.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 14:52:38 -07:00
Charis 6e3ffb2b0d fix(ci): authenticate git push in decrease-baselines workflow (#46596)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Bug fix (CI workflow).

## What is the current behavior?

The weekly `Decrease studio lint ratchet baselines` workflow fails on
`git push` with:

```
fatal: could not read Username for 'https://github.com': No such device or address
Error: Process completed with exit code 128.
```

`actions/checkout` runs with `persist-credentials: false`, so no auth is
stored for git. The job generates a GitHub App token but never wires it
into git, so the push has no credentials.

## What is the new behavior?

Push to an explicit token URL using the already-available `GH_TOKEN`,
matching the pattern in `.github/workflows/autofix_linters.yml`. The
force-push to `bot/decrease-eslint-ratchet-baselines` now authenticates
correctly.

## Additional context

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
* Updated GitHub Actions workflow configuration to improve automated
process reliability.

**Note:** This release contains no user-facing changes. The updates are
internal infrastructure improvements.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 17:06:56 -04:00
Charis 4ae803c3d7 feat(studio): paginate Tables list with server-side search (#46514)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Feature / performance improvement.

## What is the current behavior?

The Database > Tables list renders every table for the selected schema
in a single `useTablesQuery({ includeColumns: true })` fetch.

## What is the new behavior?

- Database > Tables list uses `useInfiniteTablesQuery` with a 50-row
page size, streaming pages as the user scrolls.
- An `IntersectionObserver` sentinel attached to the footer status row
triggers `fetchNextPage()` while `hasNextPage` is true; the same row
doubles as the table count / loading indicator.
- Search is debounced (300 ms) and passed as `nameFilter` to the hook,
which forwards it to pg-meta's `getTablesPaginatedSql`. The backend
returns only matching rows, so search works across the whole schema
rather than only the loaded pages.

## Additional context

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
  * Debounced search filtering for tables
  * Infinite-scroll pagination with sentinel-driven loading
  * Footer shows “Loading more tables…” and dynamic table counts

* **Bug Fixes**
* Ensure table list refresh after create/duplicate by invalidating
infinite-list cache

* **Tests**
* Updated end-to-end waits and helpers to match the new paginated
table-loading API
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 16:41:52 -04:00
Ali Waseem 0da841321f revert: Update to use js sdk vs custom provider (#46581)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Minor revert changes and use canary supabase js libs to test custom
provider editing/deletion

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Refactor**
* OAuth custom provider management operations now use official Supabase
client methods instead of internal request helpers for improved
consistency.

* **Chores**
* Updated Supabase authentication and related packages to
v2.107.0-canary.2.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 11:02:38 -06:00
Noah Moss 0a4fd37d6a Add Noah Moss to humans.txt (#46590)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Adds myself to `humans.txt` per onboarding instructions

## What is the current behavior?

n/a

## What is the new behavior?

n/a

## Additional context

n/a


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
  * Updated team contributors list with a new team member.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 12:33:41 -04:00
Etienne Stalmans fa55a9c4bd chore: use ro connstring for observability (#44806)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

function change

## What is the current behavior?

defaults to the read-write connection string when doing observability
report queries

## What is the new behavior?

uses the read-only connection string instead

## Additional context

these should only ever be read-only operations, reporting should not
have side effects and this adds a guardrail to ensure that remains the
case


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

**Bug Fixes**
- Corrected database replica query handling by using read-only
connection strings for replica database access.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 17:03:22 +02:00
supabase-supabase-autofixer[bot]andsupabase-workflow-trigger[bot] 4c474068be feat: update @supabase/*-js libraries to v2.107.0 (#46586)
This PR updates @supabase/*-js libraries to version 2.107.0.

**Source**: manual

**Changes**:
- Updated @supabase/supabase-js to 2.107.0
- Updated @supabase/auth-js to 2.107.0
- Updated @supabase/realtime-js to 2.107.0
- Updated @supabase/postgest-js to 2.107.0
- Refreshed pnpm-lock.yaml

---

## Release Notes

## v2.107.0

## 2.107.0 (2026-06-02)

### 🚀 Features

- **auth:** remove navigator.locks-based mutex; introduce commit guard +
dispose() ([#2392](https://github.com/supabase/supabase-js/pull/2392))
- **realtime:** allow httpSend to send binary payload
([#2400](https://github.com/supabase/supabase-js/pull/2400))
- **supabase:** update X-Client-Info to structured metadata format
([#2359](https://github.com/supabase/supabase-js/pull/2359))

### 🩹 Fixes

- **auth:** return AuthInvalidJwtError from getClaims for expired JWT
([#2395](https://github.com/supabase/supabase-js/pull/2395))
- **auth:** recognize ?error= redirects in implicit grant gate
([#2407](https://github.com/supabase/supabase-js/pull/2407))
- **auth): revert fix(auth:** encode client-id in oauth requests
([#2383](https://github.com/supabase/supabase-js/pull/2383),
[#2417](https://github.com/supabase/supabase-js/pull/2417))
- **postgrest:** return a structured error for non-JSON body on
successful responses
([#2398](https://github.com/supabase/supabase-js/pull/2398))
- **release:** pin workspace:* sibling deps before JSR publish
([#2418](https://github.com/supabase/supabase-js/pull/2418))
- **release:** publish gotrue-js legacy mirror via pnpm
([#2419](https://github.com/supabase/supabase-js/pull/2419))

### ❤️ Thank You

- Claude Opus 4.7 (1M context)
- Claude Sonnet 4.6
- Eduardo Gurgel
- Guilherme Souza
- Katerina Skroumpelou @mandarini
- Omar Al Matar @Bewinxed
- youcef zr @youcefzemmar
- youcefzemmar

This PR was created automatically.

Co-authored-by: supabase-workflow-trigger[bot] <266661614+supabase-workflow-trigger[bot]@users.noreply.github.com>
2026-06-02 17:56:13 +03:00
supabase-supabase-autofixer[bot]andsupabase-releaser[bot] af24c397fd docs: update js sdk docs (2.107.0) (#46583)
Updates JS sdk documentation following stable release.
Ran `make` in apps/docs/spec to regenerate tsdoc files.

**Details:**
- **Version:** `2.107.0`
- **Source:** `supabase-js-stable-release`
- **Changes:** Regenerated tsdoc files from latest spec files

🤖 Auto-generated from @supabase/supabase-js stable release.

Co-authored-by: supabase-releaser[bot] <223506987+supabase-releaser[bot]@users.noreply.github.com>
2026-06-02 16:45:59 +02:00
Alex Hall 99f4b4230a feat: detect integration install state based on partner callbacks (#46488)
Adds support for the new `integration_status` installation
identification method for OAuth marketplace integrations, which will use
the new integration state stored in Marketplace DB and updated via
partner callbacks. Fixes INT-123
2026-06-02 09:46:04 -04:00
Andrey A. f46a5305c2 feat(self-hosted): refresh functions page (#46550) 2026-06-02 15:38:57 +02:00
Andrey A. 0c8b71de64 feat(self-hosted): update project home for self-hosted and cli (#46544) 2026-06-02 15:38:28 +02:00
Andrey A. ca9b02b5ac feat(self-hosted): add minimal project settings (#46554) 2026-06-02 15:37:42 +02:00
Alaister YoungandAlaister Young ea695fdfa9 [FE-3496] feat(studio): hide unexposed tables from Data API docs (#46508)
The autogenerated Data API docs listed every table and database function
from the PostgREST OpenAPI spec, even ones that aren't actually
accessible via the Data API (i.e. with grants revoked). This filters the
docs down to only the entities that are exposed, and surfaces a count of
the excluded ones with a link to enable them.

This applies to **both** autogenerated docs surfaces:
- the **API Docs side panel** (the slide-over opened from the API docs
button), and
- the **full-page Data API docs** at `/integrations/data_api/docs`.

<img width="259" height="272" alt="Screenshot 2026-06-01 at 5 48 21 PM"
src="https://github.com/user-attachments/assets/d2af86f2-5436-4e94-8295-83ecc74a77d9"
/>

**Changed:**
- Both docs UIs now only list tables and functions that have Data API
access (any `anon`/`authenticated`/`service_role` grant). Fully-revoked
entities are hidden.
- Side panel: both the sidebar list and the drilled-in resource picker
are filtered.
- Full page: the menu's Tables/Functions groups are filtered, with a
footer note under each.

**Added:**
- A footer under each list — "N table(s)/function(s) not exposed via
**Data API**" — linking to Data API settings
(`/integrations/data_api/settings`) so the entity can be granted access.
- One-shot `useExposedTablesQuery` / `useExposedFunctionsQuery` hooks
reusing the same granted/custom/revoked SQL as the Data API settings
page (no new SQL).
- Pure, unit-tested `partitionExposedDocsEntities()` helper (fails open
if grant status hasn't loaded / errors, so docs are never blanked).
- Optional `footer` slot on `ProductMenuGroup` (rendered by `DocsMenu`)
so the full-page menu can show the not-exposed note under a group.

**Note on the "all" queries:** the new `useExposedTablesQuery` /
`useExposedFunctionsQuery` fetch the full grant-status list in a single
request (rather than paginating like the Data API settings page does).
This is deliberate — the docs sections aren't paginated and render every
entity from the OpenAPI spec at once, so we need the complete status set
to cross-reference against. Ideally we'd refactor the docs to be
paginated in future, at which point these queries should move to a
paginated approach too; until then, the one-shot "all" fetch is what
matches the current (unpaginated) docs behavior.

## To test

- On a project, revoke a `public` table's Data API access (Data API
settings → uncheck it)
- Open the **full-page** docs at `/integrations/data_api/docs`: the
table should no longer appear under Tables and Views, and you should see
"1 table not exposed via Data API" under that menu group
- Open the **API Docs side panel** and expand Tables and Views: same
behavior
- Click the "Data API" link → goes to Data API settings (closes the side
panel if open)
- Same for a database function under Functions
- Tables/functions that are still granted (or have custom/partial
grants) should remain visible

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Data API docs now reflect actual exposure: tables/functions not
exposed by permissions are hidden and counted.
* Sections display footer indicators with counts of hidden entities and
links to Data API settings.
* Navigation lists and docs menu updated to show only exposed entities
and the new "not exposed" cues.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Alaister Young <10985857+alaister@users.noreply.github.com>
2026-06-02 23:36:14 +10:00
Ali Waseem ac79b1bc81 chore: update banner for pooler w/ new dates (#46561)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

- Minor updates to date on pooler changes

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Chores**
* Extended the on-screen maintenance notice so the banner remains
visible until June 9, 2026.
* Updated the scheduled maintenance window details for the US East
region.
  * Revised local maintenance tracking to use the new June 9, 2026 date.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 13:34:51 +00:00
Ali Waseem 3e7d8d0f68 chore: Update styling and more descriptive information for roles when inviting members (#46515)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?
- Better role selector thats actually more helpful with descriptions
- More tests with MSW
- Refactored to a side panel due to more information being presented in
the modal

## How to test
- Try inviting members to an org
- Make sure members can still be revoked!

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Team member invitation interface redesigned from modal dialog to side
panel.
* Role selection now displays as an interactive radio list with
descriptions for each role.
* Improved form layout with horizontal organization for better
usability.

* **Tests**
* Added integration and unit tests for team member invitation
functionality.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 07:34:22 -06:00
Gildas Garcia 1150d32462 fix: number inputs does not allow some editions (#46538)
## Problem

Because we have controller inputs and zod validation on numbers, many of
them cannot be cleared correctly as deleting their value resets it to
`0`.

## Solution

Update the `Input` component to allow those editions by always storing
and displaying the user entered value

## How to test

- Open the webhook page and add/edit one
- Clear its timeout value and observe that it is not reset to `0`
- Same for:
  - Database network restrictions
  - API settings max rows
  - Disk size modal

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Refactor**
* Standardized numeric form input handling across examples, settings,
and modals — inputs now rely on form bindings and schema coercion for
consistent parsing and simplified behavior.

* **Chores**
* Added form resolver utilities and a user-event testing library to
development dependencies.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 14:38:01 +02:00
Etienne Stalmans 22388ee557 fix: create pr need contents-write (#46579)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES
## What kind of change does this PR introduce?

Bug fix - CI

## What is the current behavior?

action fails:
https://github.com/supabase/supabase/actions/runs/26818877603/job/79068294605
2026-06-02 12:29:39 +00:00
Allan StojanovicandClaude Opus 4.7 5be4732f96 chore: add AUP clause 1.6 - Privacy Violations, Doxxing, and Targeted Harassment (#46565)
## Summary

Adds AUP clause **1.6 — Privacy Violations, Doxxing, and Targeted
Harassment** to Section 1 (General Prohibitions), positioned between the
existing 1.5 (Obfuscation) and Section 2.

**The wording for clause 1.6 was supplied verbatim by Supabase Legal.**
This PR is the mechanical addition of that text in the right place with
the right formatting and numbering — the wording itself is not up for
review.

Driven by the "namehim" case — see the Slack `#team-security`
investigation thread for the specific events that drove this addition.
Codifies the AUP grounds for handling that abuse pattern so future
enforcement actions for the same shape don't have to lean on General
Prohibitions stretch interpretations.

Linear:
[ABU-44](https://linear.app/supabase/issue/ABU-44/chore-add-aup-clause-16-privacy-violations-doxxing-and-targeted)

## What changed

- New clause 1.6 inserted in Section 1
- `_Last Modified:_` date bumped to 1 June 2026
- Trailing-two-spaces added to the previous 1.5 line so 1.6 renders on a
new line (matches the existing within-section line-break convention)

## Wording rationale (per Legal)

The clause prohibits using the Services to publish, disclose, or
facilitate dissemination of another person's
personal/confidential/identifying information, plus using the Services
to doxx, harass, intimidate, threaten, stalk, extort, or otherwise
target individuals.

The legitimate-uses carve-out at the end was specifically requested by
Legal:

> This provision does not prohibit lawful processing, publication, or
distribution of information for legitimate purposes, including
journalism, research, public-interest reporting, legal compliance,
public records uses, or other activities protected by applicable law.

Keeps the clause from accidentally prohibiting customers doing
journalism, public-records work, breach research, or other lawful uses.

## Open question for review

The AUP doesn't currently follow the date-suffixed-archive pattern that
`privacy.mdx` does (e.g. `privacy-260316.mdx`). Should this substantive
change trigger archiving the prior version as `aup-260225.mdx`? Flagging
for the reviewers — happy to add the archive copy in a follow-up commit
on this branch if so.

## Test plan

- [ ] Reviewer renders the page locally (`pnpm --filter www dev`, then
`http://localhost:3000/aup`) and confirms clause 1.6 displays correctly
between 1.5 and Section 2
- [ ] Clause numbering convention matches existing pattern (bold title
with period and colon, two-trailing-space line breaks within sections)
- [x] Wording supplied by Supabase Legal (no wordsmith review required)

🤖 Generated with [Claude Code](https://claude.com/claude-code)


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Documentation**
  * Updated Acceptable Use Policy with an effective date of 1 June 2026.
* Enhanced General Prohibitions section with revised Obfuscation
guidance and newly added provisions addressing Privacy Violations,
Doxxing, and Targeted Harassment.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 07:26:43 -04:00
Jeremias Menichelli 2450f38ce4 fix: Generate wrappers pages statically on preview and production (#46572)
During the migration to make `PREVIEW` match `PRODUCTION` environment we
got a negation wrong.

With this fix, now wrappers pages are rendered statically on build, so
we can catch errors on MDX syntax on the fly.
2026-06-02 13:23:17 +02:00
Chris Chinchilla 4ae733ec78 docs: overhaul database overview page (#46464)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Redesigned the Database guide into a shorter, link-focused overview
that highlights each project’s full Postgres database.
* Rewrote the introduction and description to clarify Postgres usage and
added “Working with your database” tips (Table Editor, SQL Editor,
programmatic methods).
* Added “Get started” and “Going further” sections with curated guide
links and removed older, feature-heavy and backup-focused content.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46464?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 10:58:23 +00:00
Sebeen Kwon ab106f6110 docs: fix broken internal links in database and telemetry guides (#46569)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Bug fix (documentation) — fixes three internal links that currently 404.

## What is the current behavior?

Three docs pages link to internal paths that do not resolve (no matching
page, and no redirect in `apps/www/lib/redirects.js`):

| File | Link | Problem |
| --- | --- | --- |
| `guides/telemetry/reports.mdx` (×3) |
`/docs/content/guides/database/query-optimization` | Stray `content/`
path segment (the content folder name leaked into the public URL) |
| `guides/database/prisma.mdx` |
`/docs/guides/database/prisma-troubleshooting` | Page lives under the
`prisma/` subfolder |
| `guides/database/postgres/data-deletion.mdx` |
`/docs/blog/postgres-bloat` | Blog posts are served from `/blog`, not
`/docs/blog` |

No related issue — these are self-evident broken links found by checking
every internal `/docs/...` link against the actual pages, the redirects
config, and the dynamic doc routes.

## What is the new behavior?

The links now point to the correct, existing pages:

- `/docs/guides/database/query-optimization` (page:
`apps/docs/content/guides/database/query-optimization.mdx`)
- `/docs/guides/database/prisma/prisma-troubleshooting` (page:
`apps/docs/content/guides/database/prisma/prisma-troubleshooting.mdx`)
- `/blog/postgres-bloat` (post:
`apps/www/_blog/2024-04-26-postgres-bloat.mdx`; consistent with the ~30
other `/blog/...` links across the docs)

Docs-only change; no wording changes beyond the URLs. The `reports.mdx`
tables were re-aligned by Prettier as a result of the shortened links.

## Additional context

For each link I confirmed the target page/post file exists, that the
broken path has no rule in `apps/www/lib/redirects.js`, and that it is
not served by a dynamic Next.js route under `apps/docs/app/`.
2026-06-02 12:34:03 +02:00
Lukas Klingsbo b9d8ff8429 chore(docs): Add Lukas Klingsbo to humans.txt (#46549)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Adds Lukas Klingsbo to the humans.txt

## What is the current behavior?

There is no Lukas Klingsbo in humans.txt

## What is the new behavior?

There is a Lukas Klingsbo in humans.txt

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Documentation**
  * Updated team information with a new team member addition.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 12:23:59 +02:00
Quintin Willison acb151c067 Add Quintin Willison to humans.txt (#46573)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Adds my name to the public-facing `humans.txt` endpoint on
`supabase.com`.

## What is the current behavior?

Existing humans listed without me.

## What is the new behavior?

I become listed as another human. 🎉 

## Additional context

I think that's enough already. 😈 


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
  * Updated team information in public documentation.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 12:22:39 +02:00
Vaibhav 7b8be519bb fix: reset stale infinite query (#44810)
fixes `UseInfiniteQuery` so it recreates when query inputs change

the previous prop change check compared values to themselves so the hook
could keep stale paginated state
after table columns page size or trailing query changed

- closes https://github.com/supabase/supabase/issues/37750


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added an optional trailingQueryKey prop to the infinite-query hook to
better control when its internal store is refreshed.

* **Bug Fixes**
* Pagination now reliably uses the latest trailing query and avoids
inconsistent state during initial load and subsequent pages.

* **Refactor**
* Reworked store lifecycle and initialization for the infinite-query
hook to reduce unnecessary recreations, streamline startup, and improve
performance and stability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 12:16:39 +02:00
Jeremias Menichelli 812b0815ca fix: Search embedding fails due to missing partial (#46560)
After improving error handling on guides loader, of course, an error
emerged about a missing partial that doesn't exist anymore within the
project.

Removing the partial importing within MDX to fix search embedding
script.
2026-06-02 11:48:22 +02:00
Sugat Mahanti e874bdbb66 feat(disk): enable io2 block express in additional regions (#46559)
## What kind of change does this PR introduce?

This PR enables io2 block express in additional regions: `eu-central-2`,
`eu-west-3`, and `sa-east-1` as it is [now
available](https://aws.amazon.com/about-aws/whats-new/2025/07/amazon-ebs-io2-block-express/)
in all the regions as of 22 July, 2025
Depends on platform PR: https://github.com/supabase/platform/pull/33440

## What is the current behavior?
Currently IO2 block express is not available for these regions:
`eu-central-2`, `eu-west-3`, and `sa-east-1`

## What is the new behavior?

You can use io2 block express in additional regions: `eu-central-2`,
`eu-west-3`, and `sa-east-1`


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Improvements**
* Disk management features are now available in three additional AWS
regions: eu-central-2 (Central Europe), eu-west-3 (Western Europe), and
sa-east-1 (South America). Users in these regions can now access storage
management capabilities.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 14:38:47 +05:30
Raminder Singh 4ce3566c48 fix: a hydration error due to nested a tags (#46551)
Fixed the following error:

```
[browser] In HTML, <a> cannot be a descendant of <a>.
This will cause a hydration error.

  ...
    <Panel data-slot="resizable-..." className="h-full fle..." id="panel-proj...">
      <div data-slot="resizable-..." aria-disabled={undefined} data-panel={true} data-testid="panel-proj..." ...>
        <div className="h-full fle..." style={{...}}>
          <main className="h-full fle..." ref={function}>
            <ContentWrapper isLoading={false} isBlocking={false}>
              <ResourceExhaustionWarningBanner>
              <IntegrationsPage>
                <MarketplaceIndex>
                  <PageHeaderRoot>
                  <_c size="large" className="flex flex-...">
                    <div ref={null} className="mx-auto w-...">
                      <MarketplaceFeaturedHero integrations={[...]} installedIds={[...]} categoryOptions={[...]}>
                        <section>
                          <div>
                          <div ref={{current:null}} className="overflow-h..." style={{...}}>
                            <LinkComponent href="/project/c..." className="grid gap-0...">
>                             <a
>                               className="grid gap-0 @3xl:grid-cols-[var(--cover-width)_minmax(0,1fr)] hover:bg-selec..."
>                               ref={function}
>                               onClick={function onClick}
>                               onMouseEnter={function onMouseEnter}
>                               onTouchStart={function onTouchStart}
>                               href="/project/cywuvygdoclpffkfasvi/integrations/stripe_sync_engine/overview"
>                             >
                                <div>
                                ...
                                  <Slot.Slot ref={null} data-size="tiny" type="button" className="relative j..." ...>
                                    <Slot.SlotClone data-size="tiny" type="button" className="relative j..." ...>
                                      <LinkComponent href="/project/c..." data-size="tiny" type="button" ...>
>                                       <a
>                                         data-size="tiny"
>                                         type="button"
>                                         className="relative justify-center cursor-pointer inline-flex items-center s..."
>                                         disabled={undefined}
>                                         tabIndex={0}
>                                         ref={function}
>                                         onClick={function onClick}
>                                         onMouseEnter={function onMouseEnter}
>                                         onTouchStart={function onTouchStart}
>                                         href="/project/cywuvygdoclpffkfasvi/integrations/stripe_sync_engine/overview"
>                                       >
                            ...
                      ...

```

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **UI Changes**
* Updated the visual presentation of the "Manage/View Integration"
call-to-action in the marketplace featured section. The element now
appears as inline text with an arrow icon instead of a traditional
button, offering a more streamlined design.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-02 10:35:24 +05:30
Eduardo GurgelandAli Waseem 1984de70f1 feat(studio): add support to display realtime binary payloads (#46408)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Add support to displaying binary payloads while displaying realtime
messages

<img width="2073" height="694"
alt="Realtime_Inspector___Realtime___29_APR___eduardo_gurgel_supabase_io_s_Org___Supabase"
src="https://github.com/user-attachments/assets/fcb5c3d2-f880-484b-97a9-b0ca3b939a3f"
/>

JSON payloads are untouched:

<img width="1744" height="625"
alt="Realtime_Inspector___Realtime___29_APR___eduardo_gurgel_supabase_io_s_Org___Supabase"
src="https://github.com/user-attachments/assets/8227d0af-21ee-4444-b8ca-4ebeeda11f75"
/>


How to test on staging:

```
   select
  realtime.send(
    '\x48656C6C6F2066726F6D205265616C74696D65'::bytea, -- Binary Payload
    'event', -- Event name
    'main', -- Topic
    false -- Public / Private flag
  );
```

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Binary payloads in real-time message inspection show compact
placeholders with byte counts instead of raw binary.
* Added an inline hexdump viewer to inspect binary payload contents with
offsets, grouped hex bytes, and ASCII gutter.
* Message list and details view now use the placeholder/hexdump behavior
for payload rendering.

* **Tests**
* Added comprehensive tests for binary detection, hexdump formatting,
and placeholder substitution.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46408?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Ali Waseem <waseema393@gmail.com>
2026-06-02 13:03:13 +12:00
Alan Daniel 7275a59d4e Remove State of Startups pill banner from homepage hero (#46564)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

UI update

## What is the current behavior?

The homepage hero displays an announcement badge promoting the State of
Startups 2026 survey.

## What is the new behavior?

The announcement badge has been removed from the hero section, allowing
the main heading to be more prominent.

## Additional context

Removed the AnnouncementBadge component and its import from the Hero
component in apps/www.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Chores**
  * Removed announcement badge from the Hero section

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-01 15:54:45 -04:00
Ali Waseem 4429647db7 chore: handle encoding due to bug in deleting and adding encodings (#46562)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Call API manually due to minor bug in Supabase js right now. 

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Refactor**
* Refactored OAuth custom provider management operations to use a new
admin request helper for update and delete operations, replacing direct
client calls.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-01 12:04:23 -06:00
Paul CioancaandKevin Grüneberg bc6a459fd2 feat(upgrades): prevent upgrades for hibernated projects (#46109)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

* Prevents hibernated projects from undergoing database version upgrades


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added support for hibernating projects in upgrade warnings. Users will
now see a clear message indicating their project is hibernating and will
resume on the next supported request.

* **Chores**
* Extended log drain configuration to support additional destination
types.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46109?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Kevin Grüneberg <k.grueneberg1994@gmail.com>
2026-06-01 18:53:57 +03:00
Jeremias Menichelli cd16e85d86 fix: Throw error on mdx parsing (#46555) 2026-06-01 16:45:45 +02:00
Joshen LimandAli Waseem 1d203f6c93 feat: Support CLI for Vector buckets (#46381)
## Context

> [!IMPORTANT]  
> Will open up for review once CLI PR is merged and deployed so that
it's easier to test

Related PR: https://github.com/supabase/cli/pull/5230

Adding support for vector buckets for local CLI - will need to be tested
locally via `pnpm run dev:studio-local`

## To test
There's a bit of testing instructions in the linear ticket
[here](https://linear.app/supabase/issue/FE-3474/show-vector-buckets-in-local-admin-studio)
as it involves using a branch of CLI - otherwise do reach out to
Fabrizio if any help might be needed, but generally:

### Local CLI
You might need to manually set `isCli` to `true` in `StorageMenuV2` if
the "Vectors" nav item isn't showing up on the storage UI given we're
testing via `pnpm run dev:studio-local`
- [x] Can create bucket
- [x] Can delete bucket
- [x] Can create indexes
- [x] Can insert data into indexes (via FDW)
- [x] Can delete indexes

Known issues (that aren't directly solvable from FE end)
Reach out to Fabrizio for context as we were both investigating this
- PG database needs to be on 17.6 (otherwise there's no S3 vectors FDW)
- Storage version needs to be on 1.59.0

### Self-hosted (This might be tricky to actually test, but just ensure
that the code satisfies this)
- [x] Cannot see vector buckets

### Hosted
- [x] Everything works status quo

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Vector bucket management UI and platform APIs (create/list/delete
buckets & indexes)
* Local S3 credentials endpoint and client-side hook for self‑hosted/CLI
use

* **Bug Fixes**
* Improved S3 vector setup notifications and clearer error guidance for
manual installation

* **Refactor**
* Deployment-mode gating: platform vs CLI/self‑hosted now controls
feature visibility and page behavior

* **Tests**
* Added suites covering deployment-mode gates and vector bucket
error/usage scenarios

* **Chores**
  * Build env updated to expose local S3 credential vars

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46381?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Ali Waseem <waseema393@gmail.com>
2026-06-01 08:02:22 -06:00
Jeremias Menichelli b4448fedd2 fix(content): Remove map calls. Improve md extraction. (#46511) 2026-06-01 15:55:06 +02:00
701a220d9d fix(docs): update Prisma docs to v7 (#46082)
**I have read the CONTRIBUTING.md file.**

YES

**What kind of change does this PR introduce?**

Docs update

**What is the current behavior?**

The Prisma quickstart and troubleshooting pages reference Prisma v6
patterns: `prisma-client-js` generator, `datasource db` with
`url`/`directUrl`, CommonJS imports, `ts-node`, and no driver adapter
setup.

**What is the new behavior?**

Updated for Prisma ORM v7:
- Install steps use `tsx`, `@prisma/adapter-pg`, `dotenv`, and `pg`
- New step for `prisma.config.ts` with `dotenv/config` and `DIRECT_URL`
- Schema uses `prisma-client` generator with explicit output,
provider-only `datasource db`
- Removed old `datasource db { url, directUrl }` block from serverless
tab
- Test file uses ESM imports from `./generated/prisma/client` and
`PrismaPg` driver adapter
- Troubleshooting cross-schema example updated to match v7 patterns

**Additional context**

Prisma v7 requires driver adapters, moves datasource config to
`prisma.config.ts`, and deprecates the `prisma-client-js` generator in
favor of `prisma-client`.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Documentation**
* Updated Prisma quickstart: refreshed install and setup steps, added a
new runtime configuration step, adjusted migration + generate workflow,
and replaced the test API example with an ESM-style, dotenv-powered
snippet.
* Refined troubleshooting examples: clarified schema configuration
syntax and improved multi-schema guidance.

<!-- review_stack_entry_start -->

[![Review Change
Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46082?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack)

<!-- review_stack_entry_end -->
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Chris Chinchilla <chris.ward@supabase.io>
Co-authored-by: Chris Chinchilla <chris@chrischinchilla.com>
2026-06-01 12:00:10 +00:00
Francesco Sansalvadore 8fc7db9478 chore(studio): improve markdown rendering in integration overview (#46389)
Use new shared `Markdown` component from ui-patterns to properly render
all common markdown tags.

## Before

<img width="1451" height="789" alt="Screenshot 2026-05-26 at 19 19 27"
src="https://github.com/user-attachments/assets/96857484-c87c-48c1-95e8-7e68b1a729e3"
/>

## After
<img width="1415" height="770" alt="Screenshot 2026-05-26 at 19 18 57"
src="https://github.com/user-attachments/assets/dd980136-a92e-42a1-ad4a-52c0448f4a1a"
/>
2026-06-01 13:41:16 +02:00
Pamela Chia 7f5e3cab93 chore(studio): remove expired Fly.io deprecation banner (#46535) 2026-06-01 19:35:14 +08:00
Pamela Chia 9da249135c fix(telemetry): fix and unify dashboard_error_created tracking (#46537) 2026-06-01 19:34:56 +08:00