• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / cli / 30083975580
65%
develop: 65%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/develop/pr-6000-ae89b16c7e0e472c849d89c947513872b3c537f5
DEFAULT BRANCH: develop
Ran 24 Jul 2026 09:51AM UTC
Jobs 1
Files 230
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

24 Jul 2026 09:49AM UTC coverage: 65.289%. Remained the same
30083975580

push

github

web-flow
feat(cli): port supabase start command to native TypeScript (#5847)

## What changed

Ports `supabase start` from a Go-binary proxy to native TypeScript in
the legacy CLI shell (CLI-1323), continuing the local-dev-stack shell
migration alongside the already-ported `stop`/`status`/`db push`/`db
reset`/`db start`.

Talks directly to Docker/Podman via subprocess, mirroring Go's
sequential per-container `DockerStart` — no Docker Compose, and no
`@supabase/stack/effect` orchestration (that runtime targets a
deliberately different local-dev product and would silently manage the
wrong set of containers). Brings up all 14 containers in Go's real start
order, with per-service config-boolean + `--exclude` gating,
Go-byte-exact env/image resolution, a bulk health-check phase (Docker
healthcheck for most services, an HTTP-HEAD-through-Kong bypass for
PostgREST/Edge Runtime), and full rollback on any bring-up failure.

Also natively implements the fresh-volume DB schema/migration/seed
pipeline, Edge Runtime container bring-up, and fresh-volume storage
bucket seeding — previously tracked as out-of-scope follow-ups for this
port, now closed. Only the linked-project version-check suggestion (a
best-effort "update available" hint with zero Management API dependency
otherwise) remains out of scope by design.

## Why

Continues the legacy-shell migration from Go-binary-proxy commands to
native TypeScript, closing CLI-1323.

## Reviewer-relevant context

- **`legacyParseGoDuration`** (the `config.toml` duration-string parser
feeding Go-parity env vars like `GOTRUE_SESSIONS_TIMEBOX`) silently
accepted a malformed duration with no digits (a bare unit like `"s"`, or
a lone `"."` with no digits on either side) and returned `0` instead of
erroring like Go's real `time.ParseDuration` — both cases now throw Go's
exact `time: invalid duration "..."` message.
- **`start.services.ts`**'s descriptive `enabledGate` metadata for
Mailpit referenced the deprecated `inbucket` config sec... (continued)

11250 of 17231 relevant lines covered (65.29%)

10.51 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30083975580.1 24 Jul 2026 09:51AM UTC 230
65.29
GitHub Action Run
Source Files on build 30083975580
  • Tree
  • List 230
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30083975580
  • 3368ab0c on github
  • Prev Build on gh-readonly-queue/develop/pr-5932-2e934ba95bff8712adf71109984b82d5308cfe91 (#30076631182)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc