174 wires and counting

$ follow Supabase

Keep up with Supabase in about 3 minutes: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

fair warning: these emails are deeply technical. diffs, version numbers, CVEs, benchmark deltas. if that's not your idea of a good read, this isn't your newsletter.

Folds into your digest — weekly by default, monthly if you prefer. Unsubscribe in one click.

$ status

wire 2026-11-05
stories 123

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

Studio stops miscounting storage policies, C# realtime gets concurrency guards

By RepoJournal · Filed · About Supabase · Composed from the cited sources · methodology

Studio's storage policy parser now attributes a policy to every bucket it actually references, and supabase-csharp fixed a realtime socket that could corrupt its handler lists under concurrent dispatch.

fix(studio): attribute storage policies to every bucket they reference (#52692) supabase/supabase

by Drew McLellan

Studio's extractBucketNameFromDefinition used to return only the first quoted string near bucket_id and ignore the operator, so bucket_id in ('a', 'b') counted under 'a' alone and bucket_id <> 'a' was attributed to the excluded bucket; DeleteBucketModal could then delete a bucket that still held policies. It now attributes each policy to every bucket it references, which changes what the dashbo...

fix(realtime): guard socket handler lists against concurrent changes supabase/supabase-csharp

by pcbeingused333

RealtimeSocket kept its state, message, heartbeat and error handler lists as plain List<T> with Add*/Remove*/Clear* mutating them while Notify* copied via ToArray(), all unsynchronized. Push replies and timeouts register and remove message handlers mid-dispatch, which surfaced as ArgumentOutOfRangeException in List.Remove or a null entry reaching handler.Invoke; the lists are now guarded.

fix(defaults): keep string defaults that look like SQL supabase/etl

by jmqd

The default parser scanned the whole default for ::, select , nextval( and array, including inside quoted strings, so columns defaulting to values like 'a::b' or 'select one' were skipped in every destination with only a log warning. Those defaults now survive, and property tests cover default rendering in BigQuery, Snowflake and DuckLake.

fix(bigquery): Improve handling of defaults supabase/etl

by iambriccardo

BigQuery table creation and default changes were failing with Structurally invalid UTF8 string when a PostgreSQL default contained emoji or other supplementary characters; those are now rendered as GoogleSQL eight-digit Unicode escapes. Numeric defaults also emit as typed BIGNUMERIC literals for integers beyond INT64.

fix(pg-meta): report partition FKs once and add partition_of to list_tables supabase/mcp

by sarpaydemir

list_tables reported the FK clones Postgres creates per partition as separate foreign keys, so one FK appeared once for every partition; the relationships subquery now filters conparentid = 0, the predicate pg_dump uses. A new optional partition_of field names a partition's parent. Also in the tail: supabase-csharp 8.9.0 adds admin and self-service passkey deletion, and evals re-enabled the MCP...

Quick answers

What shipped in Supabase on November 5, 2026?
Studio's storage policy parser now attributes a policy to every bucket it actually references, and supabase-csharp fixed a realtime socket that could corrupt its handler lists under concurrent dispatch. In total, 62 commits, 60 pull requests, and 1 releases landed.
Who contributed to Supabase on November 5, 2026?
16 developers shipped this update, including Lenny, supabase-vercel-tedd[bot], charislam, Drew McLellan, supabase-evals-releaser, Rodriguespn, supabase-evals-releaser[bot], and supabase-releaser[bot], and 8 more.
What were the notable Supabase updates?
fix(studio): attribute storage policies to every bucket they reference (#52692), fix(realtime): guard socket handler lists against concurrent changes, and fix(defaults): keep string defaults that look like SQL.