RepoJournal

$ cat supabase/week/2026-08-31.log

Supabase

Supabase

the week in review · Aug 31 – Sep 6, 2026

Knip gates Studio CI, CLI fixes schema skip

Studio now fails CI on dead code, CLI stops skipping colliding schemas, and DuckDB pools connections.

206 commits 208 PRs merged 33 releases 7 briefings covered

What shipped: The Studio codebase now enforces dead-code hygiene in CI with Knip, followed by removal of unused code and dependencies [13][2][1]. The CLI fixed the long-standing bug where colliding schemas were skipped during pushes [5], made the shadow baseline cache opt-out with default ON [6], and added config pull, workers logs, and no-wait deploys [4]. DuckLake matured: it now pools shared DuckDB instances with multiple connections [7], gains deferred durability in SYNC phase [8], and ETL bumped rust-postgres [9]. Postgres 15.14.1.167 [10] and realtime v2.133.0 [11] also shipped.

Why it matters: Installing the new CLI means you no longer lose schema objects that previously collided during push, and CI will reject Studio PRs containing dead code, forcing cleanup before merge [1]. If you run a Studio fork, expect the new lint gate to surface pre-existing dead exports and dependencies [2][1]. The shadow cache now defaults on, which speeds up local migrations but can be disabled via config [6]. Docs now warn on the pgcrypto cipher change, affecting encrypted columns [12]. The postgrest-typegen fix corrects computed-field matching and trigger views [13].

Also: PostgREST typegen dropped pg-format [13], Studio gained an MCP server UI block and registered the missing pitr_archiving_stale lint [14][15], the MCP get_advisors response groups lints [16], supabase-js v2.113.0 shipped [17], and worker deployments gained exposure control and an --instances flag [18][4].

References

  1. [1] chore(studio): gate dead code with knip in CI ↗ supabase/supabase
  2. [2] chore(studio): remove dead code found by knip ↗ supabase/supabase
  3. [3] chore(studio): remove unused dependencies found by knip ↗ supabase/supabase
  4. [4] fix: remove dead cache invalidation in SecretChecker.do_update_credentials (#1151) ↗ supabase/supavisor
  5. [5] fix(cli): stop skipping colliding schemas (CLI-2272) ↗ supabase/cli
  6. [6] feat(cli): make shadow baseline cache opt-out (default ON) (#6403) ↗ supabase/cli
  7. [7] refactor(ducklake): use shared duckdb instances with multiple connections ↗ supabase/etl
  8. [8] feat(ducklake): add deferred durability to ducklake in SYNC phase ↗ supabase/etl
  9. [9] feat(core): Bump to a new version of rust-postgres ↗ supabase/etl
  10. [10] postgres 15.14.1.167 ↗ supabase/slim-services
  11. [11] realtime v2.133.0 ↗ supabase/slim-services
  12. [12] docs: add the missing API key decision information (#49799) ↗ supabase/supabase
  13. [13] chore(studio): remove unused dependencies found by knip ↗ supabase/supabase
  14. [14] fix(studio): register pitr_archiving_stale in the advisor lintInfoMap (#48044) ↗ supabase/supabase
  15. [15] feat(ui-library): add MCP server block (#49573) ↗ supabase/supabase
  16. [16] feat: group lints in `get_advisors` response ↗ supabase/mcp
  17. [17] v2.113.0 ↗ supabase/supabase-js
  18. [18] fix: preserve native BEAM distribution overrides ↗ supabase/slim-services

$ ls supabase/week/ # the briefings behind this review