124 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-09-18
stories 113

© 2026 RepoJournal Home Showcase Explore How it works Privacy

$ the-wire · showcase

MCP v0.13.0 gates destructive SQL, CLI stops deleting vector buckets

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

The day's two consequential shippers are the MCP server, which now confirms destructive SQL and moves secrets out of the chat window, and the CLI, which stops force-answering its own prune prompt.

feat(mcp)!: confirm destructive SQL via elicitation and rename costConfirmation option (#408) supabase/mcp

by Barry Roodt

Before, `execute_sql` and `apply_migration` could drop a table with no prompt, and the opt-in was named `costConfirmation`; the option is now `confirmation` (an existing config key you will need to rename) and it covers cost confirmations for `create_project` and `create_branch` alongside the SQL tools. Local HTTP opts into both SQL tools. Watch for the setup message: "Renames `costConfirmation...

fix(cli): honour start seeding consent (CLI-2443) supabase/cli

by 7ttp

Both `seedBucketsRun` call sites in `start.handler.ts` hardcoded `yes: true`, force-answering a prune prompt whose default is no, so any vector bucket missing from `config.toml` was deleted silently and irreversibly whenever the vector store outlived the local volume, and `--yes`/`SUPABASE_YES` did nothing for start seeding. The hardcoded value is gone, leaving consent to you.

feat: URL-mode secret collection for create_edge_function_secret supabase/mcp

by barryroodt

Edge Function third-party API keys can now be entered in Dashboard rather than pasted into the AI client or model; local HTTP enables the flow by default. This is breaking for anything built on the confirmation signing: `elicitation.requestState` now takes `{key, principal, ttlSeconds?}`, with `requestStateKey` renamed to `key`.

feat(cli): run dump and test tools from the catalog postgres artifact supabase/cli

by avallete

`db dump`, `migration squash`, and `test db` now launch `pg_dump`, `pg_dumpall`, and `pg_prove` from the catalog Postgres artifact through `@supabase/stack` `runPostgresClient` instead of host PATH; Windows and Intel Mac fall back to a one-shot Docker client of that image, and the catalog pins 15.14.1.168 and 17.6.1.168. Also worth noting in MCP: `--http` adds a local HTTP entry point.

fix(docs): repeated shiki grammar registration (#50501) supabase/supabase

by Anthony Lio

Repeated shiki grammar registration was accumulating duplicate injection rules between code blocks, slowing later tutorials enough to hit the 60-second build timeout; one highlighter with all languages loaded once restores the pre-regression behavior. Elsewhere, self-hosted Edge Function auth failures now align with the `{ code, message }` and `sb-error-code` contract while keeping legacy `msg`...

Quick answers

What shipped in Supabase on September 18, 2026?
The day's two consequential shippers are the MCP server, which now confirms destructive SQL and moves secrets out of the chat window, and the CLI, which stops force-answering its own prune prompt. In total, 48 commits, 47 pull requests, and 18 releases landed.
Who contributed to Supabase on September 18, 2026?
9 developers shipped this update, including Anthony Lio, Maksym Ionutsa, ŁUKASZ KORBASIEWICZ, lukas-bernert, 7ttp, avallete, supabase-releaser[bot], and Barry Roodt, and 1 more.
What were the notable Supabase updates?
feat(mcp)!: confirm destructive SQL via elicitation and rename costConfirmation option (#408), fix(cli): honour start seeding consent (CLI-2443), and feat: URL-mode secret collection for create_edge_function_secret.