$ the-wire · showcase
supabase pull orchestrator lands, CLI fixes broken start
By RepoJournal · Filed · About Supabase · Composed from the cited sources · methodology
The CLI gains a top-level `supabase pull` command that runs config pull, migration fetch, db pull, and functions download behind one target resolution and one confirmation, while a fix restores `supabase start` and `functions serve` for projects using import map directory mappings.
The CLI gains a top-level `supabase pull` command that orchestrates the existing pull-style subcommands (`config pull`, an optional `migration fetch`, `db pull`, and `functions download`) behind one target resolution, one confirmation, and one aggregated result [1]. It exists for two cases: bootstrapping a local checkout from an existing remote project, and catching local files up after out-of-band dashboard or teammate changes, the PR states [1]. Treat this as a breaking change to any script that previously chained those four commands by hand, since the new command reorders them under a single target and confirmation flow.
`supabase start` and `functions serve` have been dying since 2.116.0 with "failed to copy edge runtime main service into container" on projects whose functions import local workspace packages through import map directory mappings [2]. The trigger was moving the bootstrap onto docker create + cp + start: the daemon refuses to resolve the copy target when a file bind is nested inside a read-only parent bind, and the fix prunes the redundant bind mounts [2].
On the evals desk, results now record `stepCount` and `toolCallCount` alongside `usage` and `durationMs`, so harnesses can be compared by how many model round trips they need to finish a task; one step is one model response regardless of how many tool calls it carries [3]. The four GPT-5.4-mini experiments were replaced with GPT-5.6 Luna, the new Assistant default model, and the nightly regression suite moved from Claude Code / Sonnet 5 to Codex / GPT-5.6 Luna at medium effort [4][5]. Regression results will come from the next scheduled run [5].
On the services desk, slim-services published smoke-tested runtime artifacts for storage v1.75.0, postgres 17.6.1.170, and auth v2.197.0, each as a multi-platform Docker image targeting linux/amd64, linux/arm64, and darwin/arm64 [6][7][8]. Each release ships a `SHA256SUMS` file for verifying downloaded archives [6][7][8]. In the main repo, the legacy `Button` from `ui` now defaults to neutral `default` instead of brand-green `primary` when `variant` is omitted [9], and Studio comboboxes for PITR timezone, AWS region, account timezone, and the shared `SchemaSelector` were migrated to `ComboboxTrigger` [10].
Action items
- → Verify SHA256SUMS on any downloaded slim-services archive for storage v1.75.0, postgres 17.6.1.170, or auth v2.197.0 supabase/slim-services [monitor]
- → Upgrade the Supabase CLI past the 2.116.0 regression if supabase start or functions serve fails on import map directory mappings supabase/cli [immediate]
- → Audit scripts that chain config pull, migration fetch, db pull, and functions download against the new supabase pull behavior supabase/cli [plan]
- → Expect neutral defaults from the legacy ui Button and pass variant explicitly where primary styling is intended supabase/supabase [plan]
References
- [1] feat(cli): add `supabase pull` orchestrator command (#6526) ↗ supabase/cli
- [2] fix(cli): prune redundant bind mounts ↗ supabase/cli
- [3] feat: record step and tool call counts for eval runs ↗ supabase/evals
- [4] feat: replace GPT-5.4-mini experiments with GPT-5.6 Luna ↗ supabase/evals
- [5] feat: move regression evals to Codex GPT-5.6 Luna (#277) ↗ supabase/evals
- [6] storage v1.75.0 ↗ supabase/slim-services
- [7] postgres 17.6.1.170 ↗ supabase/slim-services
- [8] auth v2.197.0 ↗ supabase/slim-services
- [9] fix(ui): default Button variant to default instead of primary (#50160) ↗ supabase/supabase
- [10] chore(studio): migrate combobox triggers ↗ supabase/supabase