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

supabase / cli / 32739568716
62%
develop: 62%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/develop/pr-6328-38f31b4dc2cda6f4c278b62a1ee9bb9fc99d05c0
DEFAULT BRANCH: develop
Ran 24 Aug 2026 02:39PM UTC
Jobs 1
Files 95
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 Aug 2026 02:34PM UTC coverage: 62.406%. Remained the same
32739568716

push

github

web-flow
feat(cli): cache the shadow database baseline as a PGDATA snapshot (CLI-2191) (#6184)

`db diff` / `db pull` / declarative sync rebuild the shadow's platform
baseline (initdb + init SQL + the PG15+ one-shot realtime/storage/auth
jobs, ~15s) on every run, before user migrations even start. This PR
makes that a once-per-config cost. Measured on a default-services PG17
project: **~3.3s warm provision vs ~15.5s cold**.

The cache is **opt-in for soak** (`SUPABASE_SHADOW_CACHE=1` / `true`;
unset is off). After soak it can flip to default-on.

## What changed

1. **Readiness gate.** The shadow's docker healthcheck cannot report
before t+10s (10s interval, no start_period), so
`legacyWaitForShadowReady` polls container state plus a short
authenticated connect (500ms spacing, 2s connect timeout). Same timeout
budget, error shape, and log dump. The healthcheck config and the
long-running `db` container's wait are untouched.
2. **`exec`'d postgres entrypoint.** PID 1 was `sh`, which swallowed
SIGTERM, so every `docker stop` burned the 10s grace period. All three
entrypoint variants now `exec`; stops take ~1s (also benefits `supabase
stop`).
3. **Baseline snapshot cache** (off unless `SUPABASE_SHADOW_CACHE` is
set). When enabled, the cold path stops the shadow after the platform
baseline and streams PGDATA to
`~/.supabase/cache/shadow-baseline/shadow-baseline-<key>.tar` (~90MB;
`SUPABASE_HOME` overrides the root). A matching later run unpacks that
tar into a **fresh** container before `docker start` — initdb and the
baseline are skipped, migrations apply directly.

## Cache contract

- **Pristine by construction.** Every run gets a new container restored
from the baseline's exact bytes. No reset protocol, metadata, lock file,
or kept container — concurrency is the atomic rename.
- Artifact is a tar stream through `docker cp -`. The directory form of
`docker cp` resets ownership to root and Postgres refuses the data dir.
- Shared across worktrees with the same se... (continued)

5571 of 8927 relevant lines covered (62.41%)

6.65 hits per line

Jobs
ID Job ID Ran Files Coverage
1 32739568716.1 24 Aug 2026 02:39PM UTC 95
62.41
GitHub Action Run
Source Files on build 32739568716
  • Tree
  • List 95
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32739568716
  • ad0ad237 on github
  • Prev Build on gh-readonly-queue/develop/pr-6205-b9254df4197ebba26bc16dfc69579ad2708fc7d1 (#32737013166)
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