Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
4bf6abb
fix(cli): port db start container bootstrap to native TS (CLI-1954)
Coly010 Jul 31, 2026
6953d03
fix(cli): honor --experimental declarative schema files in db start b…
Coly010 Jul 31, 2026
0646831
fix(cli): route SIGINT/SIGTERM through the global handler for db star…
Coly010 Jul 31, 2026
4a0f16a
docs(cli): document the remote-Docker-daemon caveat of secretFiles bi…
Coly010 Jul 31, 2026
2fcadb5
docs(cli): document the --experimental declarative schema branch in S…
Coly010 Jul 31, 2026
e7d0d95
fix(cli): resolve db.migrations.schema_paths via the toml reader to m…
Coly010 Jul 31, 2026
05e5e91
fix(cli): attach the failing schema file as Go's CmdSuggestion on dec…
Coly010 Jul 31, 2026
c734713
fix(cli): exclude symlinks when expanding schema_paths directories (r…
Coly010 Jul 31, 2026
fea3be9
fix(cli): validate auth duration config fields before native db start…
Coly010 Jul 31, 2026
0e15da5
fix(cli): normalize Windows path separators before globbing schema/se…
Coly010 Jul 31, 2026
b7d2a3b
docs(cli): fix markdown table column alignment in start/db-start SIDE…
Coly010 Jul 31, 2026
89e7533
fix(cli): validate config before the already-running short-circuit in…
Coly010 Jul 31, 2026
f7415c5
fix(cli): preserve the filesystem root when globbing an absolute sche…
Coly010 Jul 31, 2026
0a39dda
fix(cli): restore Go's exact network/volume-probe order and JWKS majo…
Coly010 Aug 1, 2026
06391b4
fix(cli): resolve PG15+ setup-job images per-job instead of batching …
Coly010 Aug 1, 2026
5c07a87
fix(cli): port db reset local recreate to native TS (CLI-1955)
Coly010 Aug 1, 2026
34df941
chore(deps): bump github.com/docker/go-connections from 0.7.0 to 0.8.…
dependabot[bot] Aug 1, 2026
1e7d21d
fix(cli): apply project-dotenv Docker client env before db start boot…
Coly010 Aug 1, 2026
c223fdb
fix(cli): tee one-shot migrate job stderr under --debug (review: PRRT…
Coly010 Aug 1, 2026
9e14165
docs(cli): document project-dotenv Docker env + --debug migrate-job t…
Coly010 Aug 1, 2026
7cd904d
fix(cli): treat Podman's lowercase not-found errors as absent contain…
Coly010 Aug 1, 2026
3bb14c1
fix(cli): recognize DOCKER_CONFIG as a Docker-client env var (review:…
Coly010 Aug 1, 2026
9f7b87e
fix(cli): validate auth.rate_limit and gate SMS warning on auth.enabl…
Coly010 Aug 1, 2026
bae95bf
fix(cli): validate remaining typed config overrides in db start befor…
Coly010 Aug 1, 2026
d63bb58
fix(cli): port shadow database provisioning to native TS (CLI-1956)
Coly010 Aug 1, 2026
cc93e73
docs(cli): document why db start's hostname/passkey checks already ma…
Coly010 Aug 1, 2026
26a602f
fix(cli): honor SUPABASE_NETWORK_ID env fallback in db start and start
Coly010 Aug 1, 2026
7ebbc0c
fix(cli): label PG15+ one-shot setup jobs for rollback discovery (rev…
Coly010 Aug 1, 2026
d9e6ba8
fix(cli): print the OrioleDB S3 env-unset WARN exactly once during fr…
Coly010 Aug 1, 2026
5c8d247
fix(cli): reject non-object pg-delta apply JSON instead of an uncheck…
Coly010 Aug 1, 2026
abfc802
fix(cli): fix Windows path, symlink, and directory-walk-error parity …
Coly010 Aug 1, 2026
c7c1fb4
fix(cli): gate shadow/fresh-db JWKS resolution on majorVersion >= 15 …
Coly010 Aug 1, 2026
18ae9fe
fix(cli): validate Realtime env overrides in db start's eager battery…
Coly010 Aug 1, 2026
dd76ae9
fix(cli): emit db start's "Starting database..." progress line uncond…
Coly010 Aug 1, 2026
42cafbf
fix(cli): install project-dotenv BITBUCKET_CLONE_DIR before Docker br…
Coly010 Aug 1, 2026
46b2a3c
fix(cli): validate auth.jwt_expiry before db start's already-running …
Coly010 Aug 1, 2026
38da7d7
fix(cli): treat non-directory declarative schema paths as absent, mat…
Coly010 Aug 1, 2026
d9fb78a
fix(cli): validate pg-delta apply result's array/number fields before…
Coly010 Aug 1, 2026
f8f8aaf
fix(cli): validate the complete root-auth scalar group before db star…
Coly010 Aug 1, 2026
18e5b09
fix(cli): treat null pg-delta apply statement as absent, matching Go'…
Coly010 Aug 1, 2026
c6b7cdc
fix(cli): validate api.port before db start's already-running shortcut
Coly010 Aug 1, 2026
def594d
fix(cli): don't follow symlinked directories in shadow schema walks, …
Coly010 Aug 1, 2026
96c013b
fix(cli): validate db.settings.* before db start's already-running sh…
Coly010 Aug 1, 2026
6ecf6a4
fix(cli): treat null pg-delta diagnostic statementId as absent, match…
Coly010 Aug 1, 2026
2314756
chore(cli-go): remove ToPostgresURLWithoutPassword, dead since CLI-19…
Coly010 Aug 1, 2026
f278200
fix(cli): re-provision a fresh shadow on db pull's pooler-retry, matc…
Coly010 Aug 1, 2026
2845e23
fix(cli): reject malformed pg-delta apply result array elements, matc…
Coly010 Aug 1, 2026
22c923c
fix(cli): propagate stat failures, skip symlinked roots, use Go's byt…
Coly010 Aug 1, 2026
2795e54
fix(cli): validate db.health_timeout/storage.file_size_limit/realtime…
Coly010 Aug 1, 2026
1cae8b8
fix(cli): discard one-shot setup-job stdout instead of buffering it (…
Coly010 Aug 1, 2026
2cf66e6
fix(cli): reject fractional pg-delta apply counters, matching Go's in…
Coly010 Aug 1, 2026
36af3d6
fix(cli): preserve POSIX backslashes and reject empty schema_paths gl…
Coly010 Aug 1, 2026
fadb97d
fix(cli): treat an empty --network-id override as unset, matching Go'…
Coly010 Aug 1, 2026
78b9d96
fix(cli): validate storage.enabled before db start's already-running …
Coly010 Aug 1, 2026
3a4f121
fix(cli): thread the resolved shadow password and preserve schema-wal…
Coly010 Aug 1, 2026
6bd9981
fix(cli): validate edge_runtime/network_restrictions/studio/local_smt…
Coly010 Aug 1, 2026
fc06094
fix(cli): preserve the stat failure cause for a matched schema_paths …
Coly010 Aug 1, 2026
eebccc6
fix(cli): preserve the declarative-walk error prefix, matching Go (re…
Coly010 Aug 1, 2026
0b95e21
fix(cli): report shadow-removal launch/collection failures, matching …
Coly010 Aug 1, 2026
0372627
fix(cli): accept null scalar fields on pg-delta issues/diagnostics, m…
Coly010 Aug 1, 2026
76cdae8
fix(cli): validate db.pooler.enabled eagerly in db start's config bat…
Coly010 Aug 1, 2026
de3eb12
fix(cli): accept null top-level pg-delta counters, matching Go's enco…
Coly010 Aug 1, 2026
7e1ffbc
fix(cli): truncate pg-delta SQL summaries by UTF-8 bytes, matching Go…
Coly010 Aug 1, 2026
69b0568
fix(cli): validate studio.port eagerly in db start's config battery (…
Coly010 Aug 1, 2026
6560307
fix(cli): create the current-branch file with Go's 0644 mode (review:…
Coly010 Aug 1, 2026
26f71f1
fix(cli): only treat a confirmed not-found image inspect as a cache m…
Coly010 Aug 1, 2026
0f2b6d9
fix(cli): expand matched seed directories to their .sql files (review…
Coly010 Aug 1, 2026
d86c2dd
fix(cli): preserve byte-exact pg-delta apply/debug output, matching G…
Coly010 Aug 1, 2026
35ccd0f
fix(cli): resolve the pull shadow image after the creation banner, ma…
Coly010 Aug 1, 2026
cf19c1e
Merge remote-tracking branch 'origin/develop' into columferry/cli-195…
Coly010 Aug 3, 2026
f9b5dda
fix(cli): pass debug through legacyRollbackStart at db start's call site
Coly010 Aug 3, 2026
22704e8
Merge remote-tracking branch 'origin/develop' into columferry/cli-195…
Coly010 Aug 3, 2026
f74d5cd
fix(cli): thread --debug through db start's rollback after develop merge
Coly010 Aug 3, 2026
b85008f
Merge remote-tracking branch 'origin/develop' into columferry/cli-195…
Coly010 Aug 3, 2026
e14c199
fix(cli): repair merge fallout from develop (debug-flag arity, stale …
Coly010 Aug 3, 2026
f640ded
Merge remote-tracking branch 'origin/columferry/cli-1954-port-db-star…
Coly010 Aug 3, 2026
71c7576
Merge remote-tracking branch 'origin/columferry/cli-1955-port-db-rese…
Coly010 Aug 3, 2026
eea97e4
fix(cli): accept absent/null pg-delta apply status and mistyped state…
Coly010 Aug 6, 2026
2dce26d
fix(cli): preserve migration symlinks when listing local migrations, …
Coly010 Aug 6, 2026
c86eb8a
fix(cli): print linked remote-override notice in db diff/pull native …
Coly010 Aug 6, 2026
b81432b
fix(cli): preserve linked remote overrides over env vars in shadow bo…
Coly010 Aug 6, 2026
aa29840
fix(cli): thread remoteOverrideKeys through legacyResolveLocalConfigV…
Coly010 Aug 6, 2026
e25afb5
fix(cli): preserve UNC volume prefix when cleaning schema paths (revi…
Coly010 Aug 6, 2026
bd58848
fix(cli): preserve linked remote overrides over env vars in JWKS/auth…
Coly010 Aug 6, 2026
3579323
fix(cli): sort migration listing by UTF-8 byte order, matching Go's f…
Coly010 Aug 6, 2026
a7075b6
fix(cli): gate auth.enabled/analytics.* remote-override precedence in…
Coly010 Aug 6, 2026
5e50b30
fix(cli): gate edge_runtime.deno_version remote-override precedence i…
Coly010 Aug 6, 2026
163eecb
fix(cli): match Go's unicode.IsSpace when normalizing pg-delta SQL st…
Coly010 Aug 6, 2026
50002a4
fix(cli): gate api.enabled remote-override precedence in shadow confi…
Coly010 Aug 6, 2026
e532925
fix(cli): gate every throw-capable remote-overridable field, not just…
Coly010 Aug 6, 2026
54f0f69
fix(cli): print shadow schema-init banner before resolving JWKS, matc…
Coly010 Aug 6, 2026
75a0646
fix(cli): gate schema_paths backslash normalization to win32, matchin…
Coly010 Aug 6, 2026
b1db5ff
fix(cli): retain shadow secret dir when docker rm fails to actually r…
Coly010 Aug 6, 2026
9b1b9c2
fix(cli): gate api.tls.cert_path/key_path remote-override precedence …
Coly010 Aug 6, 2026
4af8aa9
fix(cli): accept a top-level null pg-delta apply result, matching Go'…
Coly010 Aug 6, 2026
dfeca45
fix(cli): let orphan cleanup discover the shadow's staged secret dire…
Coly010 Aug 6, 2026
7affd82
fix(cli): gate third-party requiredField/cognitoUserPoolRegion on rem…
Coly010 Aug 6, 2026
3cfb04c
fix(cli): constrain labeled secret cleanup to the staging directory (…
Coly010 Aug 6, 2026
f0bbd5b
fix(cli): byte-sort directory traversal in schema_paths walk, matchin…
Coly010 Aug 6, 2026
f972833
fix(cli): clean the schema_paths directory-walk dedup key, matching G…
Coly010 Aug 6, 2026
bd28cdd
fix(cli): resolve db diff/pull's pg-delta project id from config.toml…
Coly010 Aug 6, 2026
7cda15a
fix(cli): expose raw SUPABASE_DB_MIGRATIONS_SCHEMA_PATHS-resolved pat…
Coly010 Aug 6, 2026
8475def
fix(cli): honor SUPABASE_DB_MIGRATIONS_SCHEMA_PATHS and close shadow-…
Coly010 Aug 6, 2026
d551f32
fix(cli): honor SUPABASE_DEBUG fallback in pg-delta declarative apply
Coly010 Aug 6, 2026
7dd92a4
fix(cli): bracket db pull's declarative shadow acquisition, matching …
Coly010 Aug 6, 2026
c28e5c1
fix(cli): honor project dotenv for pg-delta's npm registry override
Coly010 Aug 6, 2026
522974b
fix(cli): gate auth.hook.<type>.uri/secrets behind remoteOverrideKeys…
Coly010 Aug 6, 2026
aa4f11a
fix(cli): gate project_id behind remoteOverrideKeys for linked shadow…
Coly010 Aug 6, 2026
f08791e
fix(cli): load shadow config before announcing creation in db diff (r…
Coly010 Aug 6, 2026
b46d899
fix(cli): gate auth.email.* scalars behind remoteOverrideKeys for sha…
Coly010 Aug 6, 2026
00a1bca
fix(cli): print linked config override before resolving the connectio…
Coly010 Aug 6, 2026
401813f
fix(cli): validate the shadow's local config before resolving the con…
Coly010 Aug 6, 2026
4e0ed64
fix(cli): suppress ambient SUPABASE_PROJECT_ID when a remote's own pr…
Coly010 Aug 7, 2026
50ac907
fix(cli): preserve remote-owned auth.email.smtp.pass over a malformed…
Coly010 Aug 7, 2026
9098da8
fix(cli): preserve remote-owned auth.captcha.secret over a malformed …
Coly010 Aug 7, 2026
eb70673
fix(cli): close every remaining remoteOverrideKeys gating gap in one …
Coly010 Aug 7, 2026
b4fead3
fix(cli): let the last repeated --debug occurrence win, not any earli…
Coly010 Aug 7, 2026
798dc5a
fix(cli): gate auth.captcha.provider and email template/notification …
Coly010 Aug 7, 2026
3e1f8ca
docs(cli): clarify that db __shadow no longer exists in a shadow-sour…
Coly010 Aug 7, 2026
6c25d89
fix(cli): gate experimental.pgdelta.format_options behind remoteWins …
Coly010 Aug 7, 2026
c7d50f3
fix(cli): cache the linked ref as soon as it resolves in db diff/pull…
Coly010 Aug 7, 2026
68e622f
fix(cli): retain Windows separators in schema_paths glob diagnostics,…
Coly010 Aug 7, 2026
dc43be0
fix(cli): resolve pg-delta apply debug through the project .env, matc…
Coly010 Aug 7, 2026
0cac874
fix(cli): keep shadow health-wait/migrate/declarative-apply interrupt…
Coly010 Aug 7, 2026
413e856
chore(cli): fold shared/containers/ back into shared/db-bootstrap/
Coly010 Aug 7, 2026
fd5c7ab
Merge remote-tracking branch 'origin/develop' into columferry/cli-195…
Coly010 Aug 7, 2026
ded665c
fix(cli): correct docs and dead-seam wiring surfaced by post-merge re…
Coly010 Aug 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 0 additions & 78 deletions apps/cli-go/cmd/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -200,76 +200,6 @@ var (
},
}

shadowMode string
shadowTargetLocal bool
shadowUsePgDelta bool
shadowSchema []string
shadowProjectRef string

// dbShadowCmd is a hidden seam used by the native-TypeScript db diff/pull
// commands to provision the throwaway shadow database that the diff "source"
// runs against, then leave it running so the TS caller can run the differ
// (migra or pg-delta) itself and remove the container afterwards. It prints
// three newline-separated lines to stdout: the container id, the source
// Postgres URL, and an optional target-override URL (empty unless the
// local-target declarative branch redirects the diff target to a second
// shadow database). The URLs are emitted WITHOUT the password
// (ToPostgresURLWithoutPassword) so we never log a credential to stdout
// (CWE-312); the TS caller re-injects the local Postgres password it already
// resolves from config.toml, which is the same value the shadow uses. Shadow
// provisioning (start.SetupDatabase) is not yet ported, which is why this
// stays in Go.
dbShadowCmd = &cobra.Command{
Use: "__shadow",
Hidden: true,
Short: "Internal: provision a shadow database for the native db diff/pull commands",
RunE: func(cmd *cobra.Command, args []string) error {
// The hidden __shadow command carries none of the db-url/local/linked
// target flags, so the root PersistentPreRunE's ParseDatabaseConfig
// never loads supabase/config.toml (it only loads when a target flag
// is set, internal/utils/flags/db_url.go:46-90). Load it explicitly so
// the shadow is provisioned from the project's [db] settings — shadow
// port, Postgres version, service baseline, and especially the
// password: the native-TS caller injects the config.toml password into
// the seam URLs, so the shadow must be created with that same password.
fsys := afero.NewOsFs()
// On the linked path the native-TS caller passes the resolved project
// ref via --project-ref so the shadow is built from the same
// remote-merged config the Go monolith uses: LoadConfig seeds
// utils.Config.ProjectId from flags.ProjectRef and merges the matching
// [remotes.<ref>] block (pkg/config/config.go). Omitted on local/db-url
// shadows, which the monolith never remote-merges, so the base config is
// used exactly as before.
if len(shadowProjectRef) > 0 {
flags.ProjectRef = shadowProjectRef
}
if err := flags.LoadConfig(fsys); err != nil {
return err
}
var src diff.ShadowSource
var err error
switch shadowMode {
case "declarative":
src, err = diff.PrepareRawShadow(cmd.Context())
case "diff", "":
src, err = diff.PrepareShadowSource(cmd.Context(), shadowSchema, shadowTargetLocal, shadowUsePgDelta, fsys)
default:
return fmt.Errorf("unknown shadow mode: %s", shadowMode)
}
if err != nil {
return err
}
fmt.Println(src.Container)
fmt.Println(utils.ToPostgresURLWithoutPassword(src.Source))
if src.TargetOverride != nil {
fmt.Println(utils.ToPostgresURLWithoutPassword(*src.TargetOverride))
} else {
fmt.Println("")
}
return nil
},
}

dbRemoteCmd = &cobra.Command{
Hidden: true,
Use: "remote",
Expand Down Expand Up @@ -612,14 +542,6 @@ func init() {
pullFlags.StringVarP(&dbPassword, "password", "p", "", "Password to your remote Postgres database.")
cobra.CheckErr(viper.BindPFlag("DB_PASSWORD", pullFlags.Lookup("password")))
dbCmd.AddCommand(dbPullCmd)
// Build hidden shadow-provisioning seam command
shadowFlags := dbShadowCmd.Flags()
shadowFlags.StringVar(&shadowMode, "mode", "diff", "Shadow mode: diff (baseline + migrations) or declarative (bare shadow).")
shadowFlags.BoolVar(&shadowTargetLocal, "target-local", false, "Whether the diff target is the local database (enables the declarative-schema branch).")
shadowFlags.BoolVar(&shadowUsePgDelta, "use-pg-delta", false, "Whether pg-delta is the active diff engine (selects the declarative-apply path).")
shadowFlags.StringSliceVarP(&shadowSchema, "schema", "s", []string{}, "Comma separated list of schema to include.")
shadowFlags.StringVar(&shadowProjectRef, "project-ref", "", "Linked project ref, so the shadow merges the matching [remotes.<ref>] config override.")
dbCmd.AddCommand(dbShadowCmd)
// Build remote command
remoteFlags := dbRemoteCmd.PersistentFlags()
remoteFlags.StringSliceVarP(&schema, "schema", "s", []string{}, "Comma separated list of schema to include.")
Expand Down
4 changes: 3 additions & 1 deletion apps/cli-go/cmd/start.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@ package cmd
// talks to Docker directly for `start` and never delegates to this binary
// for it, and no other still-live TS->Go delegation seam (db test, db
// branch/remote, db diff --use-pgadmin/--use-pg-schema, db pull
// --experimental, the hidden db __shadow/__catalog seams -- the sibling
// --experimental, the hidden db __catalog seam (baseline/declarative modes
// only -- the migrations mode was removed by CLI-1959, and the sibling
// hidden db __shadow seam was removed outright by CLI-1956) -- the sibling
// hidden db __db-bootstrap seam was removed outright by CLI-1955, once
// native `db reset --local` became its last remaining caller -- etc.) ever
// called into internal/start either -- see
Expand Down
11 changes: 0 additions & 11 deletions apps/cli-go/internal/utils/connect.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,6 @@ func ToPostgresURL(config pgconn.Config) string {
return toPostgresURL(config, url.UserPassword(config.User, config.Password))
}

// ToPostgresURLWithoutPassword renders the connection URL exactly like
// ToPostgresURL but omits the password from the userinfo. Use it for callers that
// print the URL to stdout (the hidden `db __shadow` seam): embedding the password
// there is clear-text logging of a credential (CWE-312, flagged by CodeQL). The
// password is never the seam's to share — the TS caller that consumes the seam
// output re-injects the local Postgres password it already resolves from
// config.toml (`utils.Config.Db.Password`).
func ToPostgresURLWithoutPassword(config pgconn.Config) string {
return toPostgresURL(config, url.User(config.User))
}

func toPostgresURL(config pgconn.Config, userinfo *url.Userinfo) string {
timeoutSecond := int64(config.ConnectTimeout.Seconds())
if timeoutSecond == 0 {
Expand Down
17 changes: 0 additions & 17 deletions apps/cli-go/internal/utils/connect_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -398,23 +398,6 @@ func TestPostgresURL(t *testing.T) {
assert.Equal(t, `postgresql://postgres:%21%40%23$%25%5E&%2A%28%29@[2406:da18:4fd:9b0d:80ec:9812:3e65:450b]:5432/?connect_timeout=10&options=test`, url)
}

func TestPostgresURLWithoutPassword(t *testing.T) {
config := pgconn.Config{
Host: "2406:da18:4fd:9b0d:80ec:9812:3e65:450b",
Port: 5432,
User: "postgres",
Password: "!@#$%^&*()",
RuntimeParams: map[string]string{
"options": "test",
},
}
url := ToPostgresURLWithoutPassword(config)
// Same as ToPostgresURL but with the password omitted from the userinfo, so a
// credential is never written to stdout by the db __shadow seam.
assert.Equal(t, `postgresql://postgres@[2406:da18:4fd:9b0d:80ec:9812:3e65:450b]:5432/?connect_timeout=10&options=test`, url)
assert.NotContains(t, url, "%21%40%23")
}

func TestPreserveTLSConfig(t *testing.T) {
const dsn = "postgresql://postgres:pw@example.com:5432/postgres"

Expand Down
2 changes: 1 addition & 1 deletion apps/cli/docs/binary-distribution.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ This:

### Removed commands

`apps/cli-go/internal/start` (Go's `supabase start` implementation) was deleted outright (CLI-1966), not just excluded from the shipped binary. Native TS `start` talks to Docker directly and never proxies to Go for it, and no other still-live TS→Go delegation seam (`db test`, `db branch`/`db remote`, `db diff --use-pgadmin`/`--use-pg-schema`, `db pull --experimental`, the hidden `db __shadow`/`__catalog` seams — the sibling hidden `db __db-bootstrap` seam was removed outright by CLI-1955, once native `db reset --local` became its last remaining caller — etc.) ever called into `internal/start` either — a repo-wide `grep` for the import confirmed the only reference anywhere in `apps/cli-go` was `start`'s own cobra registration. `internal/start` alone previously accounted for roughly half the shipped Go binary's size via its exclusive dependency tree (docker-compose/v2, buildx, buildkit, k8s client-go, aws-sdk-go-v2, notary, secret-detector), which `go mod tidy` dropped entirely once the package was deleted. `cmd/start.go` keeps `start`'s cobra registration and flag surface (needed by the `__complete` passthrough) but its `RunE` is a permanent stub returning a "not available in supabase-go" error — see `apps/cli-go/cmd/start_test.go` for the pinned error text. There is no longer a `bundled` build tag: with no second implementation to select between, the Go CLI's `cmd` package has only one `start`.
`apps/cli-go/internal/start` (Go's `supabase start` implementation) was deleted outright (CLI-1966), not just excluded from the shipped binary. Native TS `start` talks to Docker directly and never proxies to Go for it, and no other still-live TS→Go delegation seam (`db test`, `db branch`/`db remote`, `db diff --use-pgadmin`/`--use-pg-schema`, `db pull --experimental`, the hidden `db __catalog` seam (baseline/declarative modes only — the migrations mode was removed by CLI-1959, and the sibling hidden `db __shadow` seam was removed outright by CLI-1956) — the sibling hidden `db __db-bootstrap` seam was removed outright by CLI-1955, once native `db reset --local` became its last remaining caller — etc.) ever called into `internal/start` either — a repo-wide `grep` for the import confirmed the only reference anywhere in `apps/cli-go` was `start`'s own cobra registration. `internal/start` alone previously accounted for roughly half the shipped Go binary's size via its exclusive dependency tree (docker-compose/v2, buildx, buildkit, k8s client-go, aws-sdk-go-v2, notary, secret-detector), which `go mod tidy` dropped entirely once the package was deleted. `cmd/start.go` keeps `start`'s cobra registration and flag surface (needed by the `__complete` passthrough) but its `RunE` is a permanent stub returning a "not available in supabase-go" error — see `apps/cli-go/cmd/start_test.go` for the pinned error text. There is no longer a `bundled` build tag: with no second implementation to select between, the Go CLI's `cmd` package has only one `start`.

## See Also

Expand Down
Loading
Loading