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

supabase / cli / 37673169744
67%
develop: 67%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/develop/pr-7134-95e196130afa6cef8d696aa788fe5841b43c9198
DEFAULT BRANCH: develop
Ran 07 Oct 2026 07:17PM UTC
Jobs 1
Files 79
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

07 Oct 2026 07:15PM UTC coverage: 66.737%. Remained the same
37673169744

push

github

web-flow
refactor(stack): harden the stack runtime lifecycle, ports and engines (#7036)

## Why

`@supabase/stack` runs a local Supabase anywhere: in containers (Docker
or Podman) or as native processes on macOS and Linux, with several
stacks running side by side. This PR is an architecture and hardening
pass over that runtime and the experimental `supabase stack` commands
(still behind `SUPABASE_EXPERIMENTAL_STACK=1`).

The aim is a design that is robust because it is simple:

- one owner per fact;
- derive state instead of recording it;
- prevent conflicts by construction;
- rely on guarantees the OS and the engine already give: kernel locks,
atomic rename, pipe EOF and container labels.

Several mechanisms were deleted rather than patched. The legacy
`supabase start` path is untouched.

## What users stop hitting

| Situation | Before | After |
|---|---|---|
| `supabase stack stop` | Listeners closed first, so Vector couldn't
flush logs through the proxy and was force-killed after its grace
period. Every stop paid that delay, plus an analytics drain and a 10 s
hold for idle pooled connections. | Services stop in reverse dependency
order with their listeners still open. Each listener closes when its own
service has stopped. |
| A service crashes | The proxy could keep routing to the dead process
while cleanup ran, and a retried cleanup could lose the crash outcome. |
The crash is reported first, so routing stops at once. The service ends
`Failed` even across retried cleanup. It wakes again on demand, behind a
crash-loop breaker. |
| Restarting a stack | Public ports could change between `stop` and
`start`, breaking URLs embedded in apps. | Automatic ports are reserved
per OS user and kept across stop and restart and across state roots
until destroy. Configured ports are held only while the stack runs, so a
stopped project never blocks another. A conflict names the port, the
holding project and the setting to change. |
| Two native stacks on macOS | Wildcard ... (continued)

4097 of 6139 relevant lines covered (66.74%)

7.37 hits per line

Jobs
ID Job ID Ran Files Coverage
1 37673169744.1 07 Oct 2026 07:17PM UTC 79
66.74
GitHub Action Run
Source Files on build 37673169744
  • Tree
  • List 79
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #37673169744
  • 0a992e9a on github
  • Prev Build on gh-readonly-queue/develop/pr-7041-cc18e656288819d280681e06b56a9b56147fe068 (#37670219113)
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