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

supabase / cli / 28113786457
65%

Build:
DEFAULT BRANCH: develop
Ran 24 Jun 2026 04:34PM 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

24 Jun 2026 04:26PM UTC coverage: 64.974% (+0.08%) from 64.896%
28113786457

push

github

web-flow
fix(cli): respect SUPABASE_HOME across fallback paths (#5624)

## What changed

Routes the global CLI state root through a single `SUPABASE_HOME`
resolver in each language the CLI is written in, so `SUPABASE_HOME`
consistently overrides every machine-global state path instead of being
honored on some paths and hard-coded to `~/.supabase` on others.

- **Go CLI** — new `utils.SupabaseHomeDir()` helper, used by the
access-token, profile, telemetry, and Deno-binary paths. Previously only
telemetry state honored `SUPABASE_HOME`.
- **TypeScript CLI** — new pure `resolveSupabaseHome(env, homeDir)`
helper as the single source of truth, used by both the `next` and
`legacy` shells for the access-token fallback file and the persisted
profile file.
- **Docs** — auth, telemetry, and login/logout docs now describe the
state root as `<SUPABASE_HOME or ~/.supabase>`.

## Why

`SUPABASE_HOME` is the documented global state root, but several paths
bypassed it. Most concretely, the `next` shell honored `SUPABASE_HOME`
for the access-token file while the Go and `legacy` shells hard-coded
`~/.supabase` — so a token or profile written under a custom
`SUPABASE_HOME` by one shell was not found by another. This aligns every
path on the documented behavior.

## Design notes

`SUPABASE_HOME` is treated as an application (CLI) concern. The resolver
lives only in the two languages the CLI is written in (Go and
TypeScript). Libraries stay env-agnostic: `@supabase/stack` continues to
receive its cache root from the CLI as an explicit `cacheRoot` and never
reads `SUPABASE_HOME` itself, and `@supabase/config` is project-local
and unaffected. This keeps `@supabase/stack` ergonomic for standalone
and test use (an optional `cacheRoot` with a plain `~/.supabase`
default).

This keeps a single relocatable home (no separate `SUPABASE_CACHEDIR` or
XDG split), matching the `CARGO_HOME` precedent referenced in the issue.
The access token's primary store is the OS keychain; the `SUPABASE_HOME... (continued)

10904 of 16782 relevant lines covered (64.97%)

10.39 hits per line

Coverage Regressions

Lines Coverage ∆ File
19
81.97
-0.43% internal/telemetry/state.go
1
76.36
14.55% internal/utils/profile.go
Jobs
ID Job ID Ran Files Coverage
1 28113786457.1 24 Jun 2026 04:33PM UTC 229
64.97
GitHub Action Run
Source Files on build 28113786457
  • Tree
  • List 229
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #28113786457
  • 4bb25748 on github
  • Prev Build on gh-readonly-queue/develop/pr-5685-dcb9e532a0d7982a0e4fe7ceda8a2d20e7f3ae5d (#28107421865)
  • Next Build on develop (#28138235287)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc