156 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-10-20
stories 141

© 2026 RepoJournal Home Showcase How it works Privacy

$ the-wire · showcase

Swift Realtime goes actor-per-client, temporary replication slots land

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

supabase-swift rewrote its Realtime connection layer around a single isolation domain and a pure transition table, while supabase/etl added TEMPORARY replication slot support behind a breaking config change.

feat(realtime)!: collapse RealtimeClient and RealtimeChannel into actors on one executor supabase/supabase-swift

by grdsdev

`RealtimeClientV2` is now `public actor RealtimeClient`, owning a private `RealtimeExecutor` and absorbing `ConnectionManager`, so each client and its channels share one isolation domain. This is marked breaking: any Swift code touching the old type or crossing its boundary must account for actor isolation.

feat(replication): Add support for TEMPORARY replication slots (#1084) supabase/etl

by akselbor

`ReplicationSlotConfig` gains a `persistence: ReplicationSlotPersistence` field, and `PgReplicationClient::create_slot` and `create_slot_with_transaction` now take `&ReplicationSlotConfig` instead of a failover boolean. Both are breaking changes for anything calling the client directly.

test: add fuzz and property tests for data-loss paths supabase/etl

by jmqd

A new fuzz target, `decode_pgoutput_tuple`, plus property tests across the core engine and the BigQuery, ClickHouse, DuckLake, Snowflake and Iceberg destinations came with one real fix: negative NUMERIC scales were decoded wrong, with `numeric(5,-2)` coming out as scale 2046.

fix(base/worker): guard cleanup-triggered early drop against in-flight requests supabase/edge-runtime

by nyannyacha

`TryCleanupIdleWorkers` retired workers on `req_ack_count == req_demand`, which is trivially true right after boot and in the gap between one request's ack and the next delivery, so a cleanup sweep could kill an isolate before a routed request arrived and surface as a 504. It now requires the worker to have stayed caught-up for `cleanup_idle_grace`.

feat(evals): add build-database-005-apply-schema-change CLI eval (CLI-2701) supabase/evals

by Coly010

supabase/evals added a CLI eval for the "new migration, apply, push" workflow, which showed up in 12,177 sessions of a 1% device sample with a 35% non-zero-exit rate, and a companion eval for reconciling local migration history against a hosted project.

Quick answers

What shipped in Supabase on October 20, 2026?
supabase-swift rewrote its Realtime connection layer around a single isolation domain and a pure transition table, while supabase/etl added TEMPORARY replication slot support behind a breaking config change. In total, 70 commits, 70 pull requests, and 1 releases landed.
Who contributed to Supabase on October 20, 2026?
9 developers shipped this update, including supabase-evals-releaser, Coly010, charislam, jordienr, alaister, jmqd, akselbor, and Guilherme Souza, and 1 more.
What were the notable Supabase updates?
feat(realtime)!: collapse RealtimeClient and RealtimeChannel into actors on one executor, feat(replication): Add support for TEMPORARY replication slots (#1084), and test: add fuzz and property tests for data-loss paths.