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

supabase / cli / 28783758701
65%
develop: 65%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/develop/pr-5904-82dc21b8840ac5f825069e7f7625267e3d66d772
DEFAULT BRANCH: develop
Ran 06 Jul 2026 10:07AM UTC
Jobs 1
Files 229
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

06 Jul 2026 10:05AM UTC coverage: 65.166%. Remained the same
28783758701

push

github

web-flow
fix(cli): run --experimental gate before storage's mutex check (#5768)

## Current Behavior

Go's cobra runs `PersistentPreRunE` (which includes the `--experimental`
gate, `apps/cli-go/cmd/root.go:91-96`) before `ValidateFlagGroups()`
(mutual-exclusivity checks, `cobra@v1.10.2/command.go:985,1010`). The TS
port's `storage ls/cp/mv/rm` had this backwards — checking
`--linked`/`--local` exclusivity before the `--experimental` gate — so
`supabase storage ls --linked --local` (without `--experimental`)
surfaced the mutex error in TS instead of Go's "must set the
--experimental flag" error.

Fixes CLI-1855

## Expected Behavior

All 4 storage leaves now run the experimental gate first, matching Go's
precedence exactly (verified against the built binary). Also corrects
the inline comments in those files and the shared
`legacy-experimental-gate.ts` doc, which claimed Go gates experimental
"after flag-group validation" — this was backwards per cobra's actual
execution order.

An existing e2e test (`storage.e2e.test.ts`) asserted the old (wrong)
precedence for `--linked --local` without `--experimental`; fixed it to
add `--experimental` so it keeps testing the mutex message it originally
intended, at the real subprocess boundary. New ordering coverage for all
4 leaves lives in a new integration suite
(`storage.experimental-gate.integration.test.ts`) rather than
duplicating it in e2e, per this repo's e2e scope policy.

Out of scope: the same gate-vs-mutex-check ordering bug also exists in
`db schema declarative generate`/`sync` (verified against Go source),
unrelated command family — filing as a separate follow-up rather than
expanding this PR.

11041 of 16943 relevant lines covered (65.17%)

10.47 hits per line

Coverage Regressions

Lines Coverage ∆ File
2
82.41
0.0% internal/storage/rm/rm.go
Jobs
ID Job ID Ran Files Coverage
1 28783758701.1 06 Jul 2026 10:07AM UTC 229
65.17
GitHub Action Run
Source Files on build 28783758701
  • Tree
  • List 229
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28783758701
  • f28efedf on github
  • Prev Build on gh-readonly-queue/develop/pr-5771-c62b558a4062a252aff0ca9da2e911e444313c9a (#28782343695)
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