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