$ the-wire · showcase
Knip gates Studio CI against dead code
By RepoJournal · Filed · About Supabase
Supabase Studio now fails CI when dead files or unused dependencies pile up, closing a three-PR cleanup.
Supabase Studio's dead-code detection now enforces a hard CI gate: knip runs via `pnpm knip` at version 6.32.3, replacing the previously broken `pnpx knip@~5.50.0` invocation that crashed by resolving TypeScript 7 as a peer dependency [1]. The gate follows the removal of Studio code that nothing imports [2] and unused dependencies including `@ai-sdk/provider`, `@ai-sdk/provider-utils`, and `eslint-plugin-jsx-a11y` [3]. The a11y rules still fire after plugin removal because they resolve through `eslint-config-next`, verified by 259 warnings still firing [3]. Supavisor cleaned up a dead `Cachex.del` call in `SecretChecker.do_update_credentials`, where the key `{:secrets, tenant, user}` was never written, making the invalidation a no-op [4]. Studio also published runtime artifacts for the 2026.08.31 release, with a multi-platform Docker image for linux/amd64, linux/arm64, and darwin/arm64 [5].
Action items
- → Review Studio PRs #49719, #49720, and #49721 before merge to confirm the knip gate catches no false positives supabase/supabase [plan]
- → Verify Supavisor credential hot-swap still works without the removed cache invalidation supabase/supavisor [plan]
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] studio 2026.08.31-sha-2c76bb3 ↗ supabase/slim-services