Skip to content

chore(repo): sync develop into next - #7156

Merged
supabase-cli-releaser[bot] merged 12 commits into
nextfrom
sync/develop-into-next
Oct 14, 2026
Merged

supabase-cli-releaser[bot] merged 12 commits into
nextfrom
sync/develop-into-next

Conversation

@supabase-cli-releaser

Copy link
Copy Markdown
Contributor

Merging develop into next conflicts. This branch starts at the tip of develop (8a549df); next is at c9956c3.

Conflicting files:

  • .github/actions/setup/action.yml
  • .github/workflows/test.yml
  • apps/cli-go/pkg/config/templates/Dockerfile
  • apps/cli/docs/supabase/db/diff.md
  • apps/cli/docs/supabase/db/pull.md
  • apps/cli/src/command-internal/db-bootstrap/bootstrap-config.ts
  • apps/cli/src/command-internal/db-config.toml-read.ts
  • apps/cli/src/command-internal/db-pull-run.ts
  • apps/cli/src/command-internal/local-config-values.ts
  • apps/cli/src/command-internal/local-project-context.ts
  • apps/cli/src/command-internal/stack-config.ts
  • apps/cli/src/commands/bootstrap/SIDE_EFFECTS.md
  • apps/cli/src/commands/bootstrap/bootstrap.handler.ts
  • apps/cli/src/commands/db/diff/SIDE_EFFECTS.md
  • apps/cli/src/commands/db/diff/diff.handler.ts
  • apps/cli/src/commands/db/diff/diff.integration.test.ts
  • apps/cli/src/commands/db/dump/SIDE_EFFECTS.md
  • apps/cli/src/commands/db/dump/dump.handler.ts
  • apps/cli/src/commands/db/push/SIDE_EFFECTS.md
  • apps/cli/src/commands/db/push/push.handler.ts
  • apps/cli/src/commands/db/reset/reset.handler.ts
  • apps/cli/src/commands/db/schema/declarative/generate/generate.handler.ts
  • apps/cli/src/commands/experimental/stack/start/start.handler.ts
  • apps/cli/src/commands/gen/types/SIDE_EFFECTS.md
  • apps/cli/src/commands/gen/types/types.handler.ts
  • apps/cli/src/commands/migration/down/down.handler.ts
  • apps/cli/src/commands/services/SIDE_EFFECTS.md
  • apps/cli/src/commands/services/services-local-stack.ts
  • apps/cli/src/commands/services/services.handler.ts
  • apps/cli/src/commands/status/status.handler.ts
  • apps/cli/src/commands/status/status.integration.test.ts
  • packages/config/src/io.ts

To resolve:

git fetch origin
git switch sync/develop-into-next
git merge origin/next
# resolve the conflicts, then commit
git push origin sync/develop-into-next

Approve to fast-forward next; do not use the merge button.

avallete and others added 6 commits October 14, 2026 10:53
)

## Summary

**TL;DR** When a command dies on an unclassified Effect `PlatformError`
(a filesystem or stdio failure whose reason is not `NotFound`,
`PermissionDenied`, or `BadArgument`), telemetry now names the reason
and the Effect operation that raised it. Today every such failure
collapses into one `error:Defect:PlatformError` fingerprint, which
recent prereleases report on `status` / `stack status` for the new local
stack without any way to tell which call fails.

### Before

```mermaid
flowchart LR
  A["FileSystem / Stdio call fails"] --> B["PlatformError<br/>(Busy, Unknown, ...)"]
  B -->|orDie| C["error:Defect:PlatformError"]
```

### After

```mermaid
flowchart LR
  A["FileSystem / Stdio call fails"] --> B["PlatformError<br/>(Busy, Unknown, ...)"]
  B -->|orDie| C["error:Defect:PlatformError:<br/>Busy:FileSystem.readFile"]
```

### Why

The failures cluster right after `start` while other commands run in
parallel, and a retry succeeds, which points at a race on shared state
or on stdout. Several call sites turn a `PlatformError` into a defect,
so the fingerprint has to carry the operation before the cause can be
fixed.

### What changed

- A `PlatformError` defect fingerprints as
`error:Defect:PlatformError:<reason>:<Module>.<method>`, for example
`…:Busy:FileSystem.readFile`.
- Only the closed reason tag and Effect's module and method names are
read, as data descriptors; `pathOrDescriptor` and `description` never
reach telemetry. If any part is not a plain identifier, the fingerprint
stays `error:Defect:PlatformError`.
- `PlatformError` failures that are already classified (`not_found`,
`filesystem`, `bad_argument`) are unchanged.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…rlays (#7130)

## Summary

The published CLI reference describes pg-delta, but its source in this
repo still describes migra. The next release would regenerate the
reference and revert the September fixes made directly in
supabase/supabase. This PR moves those fixes into the overlays so the
generator produces the corrected text.

Three files under `apps/cli/docs/` change. No code changes.

- `db diff`: projects with `[experimental.pgdelta] enabled = true` use
pg-delta. Other projects run migra. Storage buckets are data, so no
engine diffs them. The known-miss list (publications, `security_invoker`
views) now applies to migra only, since pg-delta tracks both.
- `db pull`: initial-pull behavior is stated per engine. pg-delta diffs
against an empty shadow database. migra seeds the migration with
`pg_dump`. `--diff-engine pg-delta` is the single-run opt-in. Added the
managed-schemas paragraph (triggers on `auth.users`, RLS on
`storage.*`). Added a caveat for `--declarative` on projects without
pg-delta: it also sets `[db.migrations].schema_paths` and breaks `db
diff`.
- `db pull` examples: the CLI no longer prints "auth and storage schemas
are excluded" or "Try rerunning with --debug". The examples show current
output. The custom-schemas example uses `public,extensions` instead of
`auth,storage`.

Verification: ran `bun scripts/generate-docs-spec.ts` and diffed the `db
diff` and `db pull` sections against the yaml on supabase/supabase
`master`. No stale sentence remains. The only other differences are flag
descriptions, which come from the command code.

## Linked issue

Closes #

- [x] The linked issue is **open** and carries the
`open-for-contribution` label (or I'm a Supabase maintainer).

## Checklist

- [x] The PR title follows [Conventional
Commits](https://www.conventionalcommits.org/) (e.g. `fix(cli): …`).
- [ ] Tests added or updated for the change.
- [ ] From the repository root, `pnpm check:all` passes; relevant
package tests pass for every touched workspace, and `pnpm types:check`
passes for each touched TypeScript workspace (or workspace declaring
it).

---------

Co-authored-by: avallete <andrew.valleteau@supabase.io>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Andrew Valleteau <avallete@users.noreply.github.com>
This bumps storage from v1.82.0-r0 to v1.82.1-r0.


https://github.com/supabase/slim-services/releases/tag/storage-v1.82.1-r0

Planned after supabase/slim-services published v1.82.1-r0. This branch
is rewritten from develop whenever a newer relevant release arrives.

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
`supabase stop` no longer fails when another stack on the same Docker
daemon is stopping at the same moment.

Docker runs one prune at a time per daemon and rejects a concurrent
container, volume, or network prune with `a prune operation is already
running`, even when the label filters differ. `stop` now runs that prune
again while Docker reports the conflict, with a short jittered wait and
a bounded number of attempts; any other prune failure still fails
immediately. The container CLI helper now also collects stderr so the
conflict can be recognised.

Split out of #7129, which runs CLI e2e files concurrently and depends on
this.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ows and macOS jobs (#7129)

Cuts CI time and cost: dependency and Docker caches come from Blacksmith
sticky disks that only protected branches write, more end-to-end work
runs in parallel, and PRs into `develop` run Windows and macOS jobs only
when they touch platform-sensitive code.

## Gains

### Whole run

Measured from every successful `test.yml` run between Oct 10 and Oct 14.
Run time counts from run creation to the last job finishing, so it
includes queueing. Values are median [range]; every run below ran the
Windows and macOS jobs.

| | Other branches, macOS native on `macos-latest` (Oct 10–13, 132 runs)
| Other branches, macOS native on Blacksmith macOS since #7126 (Oct
13–14, 52 runs) | This PR, warm disks (7 runs) | This PR, empty disks (2
runs) |
| --- | --- | --- | --- | --- |
| Run time | 8.5 min [4.5–22.6] | 5.0 min [3.9–9.4] | 3.3 min [2.7–4.8]
| 3.4–4.1 min |
| Slowest job | 8.1 min [4.4–11.1] | 4.6 min [3.6–7.9] | 2.8 min
[2.5–3.4] | 3.1–3.3 min |
| macOS native scenarios | 8.1 min [4.4–11.1], one job | 3.4 min
[2.9–7.9], one job | 2.1–3.4 min, slowest of up to four jobs | 1.7–1.9
min, slowest of four jobs |
| Total job time | 62 min, 20 jobs | 65 min, 26 jobs | 44–56 min, 29–33
jobs | 58–62 min, 33 jobs |

The macOS runner change in #7126 brought most of the drop between the
two baselines. On top of it, this PR brings a run to about 3 minutes
once disks are warm: the slowest Linux job goes from 4.3 min [3.6–5.0]
on other branches since Oct 14 to 2.7 min [2.5–3.3], and Linux is now
what bounds the run. One warm run took 15.9 min while its slowest job
took 2.8 min; the rest was runner queueing, so it is left out of the
range above. About half of PRs into `develop` will also skip the Windows
and macOS jobs.

### Warm vs empty disks

Measured on this PR by running the same commit twice: once with empty
sticky disks, then again after the fill workflow populated them.

| Linux jobs (Blacksmith) | Warm vs empty disks |
| --- | --- |
| Setup | ~80% faster |
| Code quality | ~40% faster |
| Unit tests | ~40% faster |
| Integration shards (average) | ~30% faster |
| CLI e2e shards (average) | ~25% faster |
| Stack e2e, native (average) | ~25% faster |
| Stack e2e, Docker (average) | ~20% faster |
| Stack e2e, Podman (average) | ~15% faster |

Compared with the base branch, Windows port tests setup is ~60% faster
and macOS port tests setup ~40% faster. Splitting the declarative sync
e2e into two files and letting its commands reuse the shadow baseline
cache makes the slowest of those files ~65% faster than the original
single file. Splitting the macOS native scenarios into four jobs and
caching their native artifacts makes the slowest of them ~35% faster
than the single job it replaces; with a warm cache the isolation job is
~45% faster than without. On warm disks every job finished in under
three minutes; remaining time is test work rather than setup.

## Changes

**Sticky disks.** On Blacksmith Linux runners, `test.yml` jobs mount the
pnpm store, Go caches, and (for container jobs) Docker's image store
from Blacksmith sticky disks instead of downloading them through
`actions/cache`. Test jobs always mount them read-only; only the fill
workflow commits, after pruning unused pnpm packages, containers, and
volumes. Native stack jobs also mount the native artifact cache. Jobs
that mount the Docker image disk stop Docker in a final step so the disk
unmounts cleanly; the fill workflow also prunes containers and volumes
first, even after a failure. Other workflows, including release builds,
keep `actions/cache`.

**Disk refill.** `fill-sticky-disks.yml` runs on pushes to protected
branches, daily, and on demand. It installs dependencies, downloads the
stack's native service artifacts, pulls both the `supabase start` images
and the stack package's catalog images, so every disk stays warm.
Default-branch fills also drop artifacts and images of older versions.
It is the only writer, so Blacksmith's sticky-disk branch protection can
be enabled. The disk keys are new, so the first fill after merge seeds
every disk from protected-branch code.

**Parallel CLI e2e.** CLI e2e files run four at a time in CI
(`SUPABASE_E2E_WORKERS`); local runs stay serial. Each worker takes free
ports only from its own slot, so a port one worker released is never
handed to another. Files that cannot share the daemon run one at a time
afterwards in an `e2e-exclusive` project: `start.health`, which tags a
broken Mailpit image, and the files that provision pg-delta shadow
databases on ports the CLI picks itself. Concurrent `supabase stop`
teardowns rely on the prune retry from #7143.

**Lighter Windows and macOS setup.** Port tests install only node, bun,
and pnpm through mise instead of the full toolchain. Windows also skips
the pnpm store archive because downloading packages is faster there than
unpacking it.

**Split slow e2e work.** The declarative sync e2e runs as two files that
shard independently, and their commands share one home with the shipped
shadow baseline cache on, so only the first sync provisions a cold
shadow. macOS native scenarios run as separate lifecycle, confinement,
idle, and isolation jobs, each restoring its native artifacts through
`actions/cache`.

**Windows and macOS on demand.** On PRs into `develop` or `next`, the
Windows and macOS port tests and macOS native scenarios run only when
the PR touches platform-sensitive paths (stack host, namespace, port,
process, internal and artifact code, the CLI commands the Windows job
covers, the lockfile, root config, and the test workflow). They always
run in the merge queue, on PRs into `main` or `v*.x`, on `next` release
runs, and when the `run-ci` label is added, which now also applies to
ready PRs into `develop` and `next`. Replaying the last 50 merged PRs,
about half would skip them. The summary jobs fail if change detection
fails, so a skipped platform job never hides an error.

**Concurrent whole-stack scenarios.** Stack e2e jobs run their scenarios
concurrently. The write-confinement scenario watches the whole temp
tree, so it runs in its own `confinement` job per runtime.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…emoved in v3 (#7154)

## TL;DR

Users still relying on config keys, env vars or file conventions that v3
removes now get a warning on stable that says so.
`SUPABASE_EXPERIMENTAL_ORIOLEDB_VERSION` was silently ignored after the
rename to `SUPABASE_DB_ORIOLEDB_VERSION`; it now works as a deprecated
alias with a warning.

## Before

```mermaid
flowchart LR
  A["SUPABASE_EXPERIMENTAL_ORIOLEDB_VERSION set"] --> B[Ignored silently] --> C[Plain Postgres image]
```

## After

```mermaid
flowchart LR
  A["SUPABASE_DB_ORIOLEDB_VERSION set?"] -- yes --> D[OrioleDB image]
  A -- no --> E["SUPABASE_EXPERIMENTAL_ORIOLEDB_VERSION set?"]
  E -- yes --> F["Warn: removed in v3"] --> D
  E -- no --> G[config.toml value]
```

## Why

The v3 removals in CLI-2597 need a stable release that warns first.
Several existing warnings did not mention v3, `INBUCKET_URL` in `status`
had no warning, and a project using the old OrioleDB env var started
plain Postgres with no message.

## What changed

- `SUPABASE_EXPERIMENTAL_ORIOLEDB_VERSION` is used when
`SUPABASE_DB_ORIOLEDB_VERSION` is unset and prints a deprecation
warning; the new variable wins when both are set. Resolution lives in
one helper used by every reader.
- Warnings for `[inbucket]` / `[remotes.*.inbucket]`,
`experimental.orioledb_version`, the `linkedin` / `slack` auth providers
and `import_map.json` in `functions deploy` now say they will be removed
in v3 and name the replacement.
- `supabase status` warns that `INBUCKET_URL` is deprecated in favour of
`MAILPIT_URL` for output formats that include it.
- All warnings go to stderr; machine-readable stdout is unchanged.
- Also touches `packages/config` warning wording, so this cuts an
`@supabase/config` release.

## Terminal captures

Recorded with vhs from source (`bun apps/cli/src/main.ts`) against a
fresh `supabase init` project whose `config.toml` sets `[inbucket]`,
`experimental.orioledb_version` and `[auth.external.slack]`. Each GIF
runs `supabase stop` twice (it loads the config without a running
stack): first with `SUPABASE_EXPERIMENTAL_ORIOLEDB_VERSION` unset, then
with it set inline on the second run only.

Before (merge-base with develop):


![before-stop](https://gist.githubusercontent.com/avallete/12c7231c768ee9188655db9110b3a5dd/raw/before-stop.gif)

After:


![after-stop](https://gist.githubusercontent.com/avallete/12c7231c768ee9188655db9110b3a5dd/raw/after-stop.gif)

Closes CLI-2601
Closes CLI-2569

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
@supabase-cli-releaser supabase-cli-releaser Bot added the do not merge Approve to apply; do not merge. label Oct 14, 2026
@supabase-cli-releaser
supabase-cli-releaser Bot requested review from a team and supabase-oss as code owners October 14, 2026 15:21
# Conflicts:
#	.github/actions/setup/action.yml
#	.github/workflows/test.yml
#	apps/cli-go/pkg/config/templates/Dockerfile
#	apps/cli/docs/supabase/db/diff.md
#	apps/cli/docs/supabase/db/pull.md
#	apps/cli/src/command-internal/db-bootstrap/bootstrap-config.ts
#	apps/cli/src/command-internal/db-config.toml-read.ts
#	apps/cli/src/command-internal/db-pull-run.ts
#	apps/cli/src/command-internal/local-config-values.ts
#	apps/cli/src/command-internal/local-project-context.ts
#	apps/cli/src/command-internal/stack-config.ts
#	apps/cli/src/commands/bootstrap/SIDE_EFFECTS.md
#	apps/cli/src/commands/bootstrap/bootstrap.handler.ts
#	apps/cli/src/commands/db/diff/SIDE_EFFECTS.md
#	apps/cli/src/commands/db/diff/diff.handler.ts
#	apps/cli/src/commands/db/diff/diff.integration.test.ts
#	apps/cli/src/commands/db/dump/SIDE_EFFECTS.md
#	apps/cli/src/commands/db/dump/dump.handler.ts
#	apps/cli/src/commands/db/push/SIDE_EFFECTS.md
#	apps/cli/src/commands/db/push/push.handler.ts
#	apps/cli/src/commands/db/reset/reset.handler.ts
#	apps/cli/src/commands/db/schema/declarative/generate/generate.handler.ts
#	apps/cli/src/commands/experimental/stack/start/start.handler.ts
#	apps/cli/src/commands/gen/types/SIDE_EFFECTS.md
#	apps/cli/src/commands/gen/types/types.handler.ts
#	apps/cli/src/commands/migration/down/down.handler.ts
#	apps/cli/src/commands/services/SIDE_EFFECTS.md
#	apps/cli/src/commands/services/services-local-stack.ts
#	apps/cli/src/commands/services/services.handler.ts
#	apps/cli/src/commands/status/status.handler.ts
#	apps/cli/src/commands/status/status.integration.test.ts
#	packages/config/src/io.ts
@supabase-cli-releaser

Copy link
Copy Markdown
Contributor Author

Claude resolved the merge of next

All 32 conflicted files are resolved in next's shape (the Go CLI removed, config reads going through CliConfigValues and the key registry) with develop's fixes ported onto it. develop's deprecated SUPABASE_EXPERIMENTAL_ORIOLEDB_VERSION alias is now a registry env alias whose warning the config loader prints once, and the colliding ADR 0031 numbers were untangled.

File Resolution
.github/actions/setup/action.yml Kept develop's sticky-disk, tools, pnpm-store-cache, docker-images and native-artifacts inputs and steps. Dropped the go-cache input and all Go cache and disk steps, since next removed Go.
.github/workflows/test.yml Kept develop's sticky-disks, docker-images, native-artifacts, tools, pnpm-store-cache and SUPABASE_E2E_WORKERS settings. Dropped go-cache, the cli-go keyring unlock and SUPABASE_GO_BINARY.
.github/workflows/fill-sticky-disks.yml Non-conflicted file from develop: removed SUPABASE_GO_BINARY (apps/cli-go no longer exists) and the Go mention in the header comment.
apps/cli/docs/supabase/db/diff.md Took next's wording: pg-delta is the default engine and migra is the fallback.
apps/cli/docs/supabase/db/pull.md Took next's default-engine text. Added develop's declarative path note and its warning against --declarative on a project that falls back to migra, with recovery steps.
packages/config/src/io.ts Kept next's onWarning callback with develop's 'deprecated and will be removed in v3' messages. Updated the next-only io.stages.unit.test.ts expectations to match.
apps/cli/src/config/cli-config-key-annotations.ts Added CLI_CONFIG_ENV_ALIASES mapping db.orioledb_version to SUPABASE_EXPERIMENTAL_ORIOLEDB_VERSION, porting develop's alias into next's registry.
apps/cli/src/config/cli-config-keys.ts Schema leaves listed in CLI_CONFIG_ENV_ALIASES get [canonical, ...aliases] as their env names, using the existing 'rest are deprecated aliases' convention.
apps/cli/src/config/cli-config-values.layer.ts After resolving keys, prints the 'WARN: is deprecated and will be removed in v3, use instead.' warning once per runtime when an alias is set.
apps/cli/src/command-internal/db-config.toml-read.ts Took next's CliConfigValues-based reader. Dropped develop's envOverrideLookup, warnDeprecatedOrioleDBVersionEnv, the ENV_OVERRIDE_NAMES list and the raw-TOML alias read; the registry alias and loader warning replace them.
apps/cli/src/command-internal/local-config-values.ts Took next (the envOverride helpers are removed), dropping develop's OrioleDB alias and warning helpers. Removed the Context and Ref imports that became unused.
apps/cli/src/command-internal/local-project-context.ts Took next's loadLocalResolvedConfigContext version; the alias warning now comes from the loader.
apps/cli/src/command-internal/db-bootstrap/bootstrap-config.ts Took next: values come from the materialized config, which applies the alias.
apps/cli/src/command-internal/db-pull-run.ts Took next's import (loadProjectEnvValues) and its resolvedConfig load. Dropped develop's handler-level warning call.
apps/cli/src/command-internal/stack-config.ts Took next's key-based endpoint settings (StackEndpointKey, stackMajorVersionKey). develop's only change in that region was the deprecatedEnvVar alias, which the registry alias now covers.
apps/cli/src/commands/experimental/stack/start/start.handler.ts settingKeyLabel now reports the winning origin's envName, so a deprecated alias is named as itself (develop's intent). Kept develop's single cached config load, rebased on next's loadResolvedConfigContext, and dropped the second load during storage seeding.
apps/cli/src/commands/bootstrap/bootstrap.handler.ts Took next's import; removed develop's warnDeprecatedOrioleDBVersionEnv call.
apps/cli/src/commands/db/diff/diff.handler.ts Took next: the --use-pg-schema Go delegate is removed and the explicit mode loads resolvedConfig. Dropped develop's alias handoff to the Go child and its warning calls.
apps/cli/src/commands/db/diff/diff.integration.test.ts Took next: tests for the removed --use-pg-schema Go delegate are dropped, including develop's alias handoff test.
apps/cli/src/commands/db/dump/dump.handler.ts Took next's imports (rejectPasswordWithDirectTarget, loadProjectEnvValues); removed the warning call.
apps/cli/src/commands/db/push/push.handler.ts Took next's resolvedConfig and seed consent block; removed the warning call.
apps/cli/src/commands/db/reset/reset.handler.ts Took next's import; removed the warning call.
apps/cli/src/commands/db/schema/declarative/generate/generate.handler.ts Took next's pgdelta import; removed the warning call and the withSingleOrioleDBVersionEnvWarning wrapper.
apps/cli/src/commands/db/schema/declarative/sync/sync.handler.ts Non-conflicted file from develop: removed the withSingleOrioleDBVersionEnvWarning wrapper and restored the exported dbSchemaDeclarativeSync.
apps/cli/src/commands/migration/up/up.handler.ts Non-conflicted file from develop: removed the warnDeprecatedOrioleDBVersionEnv call (toml.envLookup no longer exists).
apps/cli/src/command-internal/test-db.handler.ts Non-conflicted file from develop: removed the envOverrideLookup, loadProjectEnv and warning call, which referenced symbols that no longer exist.
apps/cli/src/commands/gen/types/types.handler.ts Took next (projectId = config.projectId); removed the warning call.
apps/cli/src/commands/migration/down/down.handler.ts Took next's import; removed the warning call.
apps/cli/src/commands/services/services-local-stack.ts Took next: the database version comes from the materialized config, which applies the alias.
apps/cli/src/commands/services/services.handler.ts Took next's failOnInvalidConfigValue import; removed the warning call.
apps/cli/src/commands/status/status.handler.ts Kept develop's INBUCKET_URL deprecation warning for machine formats, ported from develop's goFmt variable to next's outputFlagFormat.
apps/cli/src/commands/status/status.integration.test.ts Kept develop's INBUCKET_URL warning assertions, using next's outputFlag setup option.
apps/cli/src/commands/bootstrap/SIDE_EFFECTS.md Next's rows plus develop's SUPABASE_EXPERIMENTAL_ORIOLEDB_VERSION row, with column widths realigned.
apps/cli/src/commands/db/diff/SIDE_EFFECTS.md Next's env rows (SUPABASE_DB_PASSWORD scoping, SUPABASE_EXPERIMENTAL_PGDELTA_ENABLED) plus develop's two OrioleDB rows. Took next's text for the removed --use-pg-schema note.
apps/cli/src/commands/db/dump/SIDE_EFFECTS.md Next's table plus develop's SUPABASE_DB_ORIOLEDB_VERSION and deprecated alias rows.
apps/cli/src/commands/db/push/SIDE_EFFECTS.md Next's rows (password scoping, SUPABASE_DB_SEED_ENABLED, config overrides) plus develop's deprecated alias row.
apps/cli/src/commands/gen/types/SIDE_EFFECTS.md Next's table plus develop's deprecated alias row.
apps/cli/src/commands/services/SIDE_EFFECTS.md Develop's OrioleDB rows with next's SUPABASE_EXPERIMENTAL_STACK wording.
docs/adr/0032-config-value-precedence.md next's config-value-precedence ADR renumbered from 0031, with the deprecated env alias rule added as the ADR requires for new exceptions.
docs/adr/README.md Added the 0032 row to the index and removed a stray 0031 config-precedence line from the template section.
apps/cli/AGENTS.md ADR link updated to 0032-config-value-precedence.md.
packages/config/docs/cli-config-loading.md Config-precedence ADR reference updated from 0031 to 0032.
apps/cli/src/commands/{start,migration/squash,migration/list,migration/repair,functions/download,functions/deploy,db/pull,config/push,db/reset}/SIDE_EFFECTS.md Config-precedence ADR references updated from 0031 to 0032.

Deleted: apps/cli-go/pkg/config/templates/Dockerfile.

Decisions for @supabase/cli. Confirm them, or push a change to this branch:

  • How to keep develop's deprecated SUPABASE_EXPERIMENTAL_ORIOLEDB_VERSION alias and its warn-once behavior, given next removed envOverride and the per-command TOML reader it relied on? Chose: Registered it as a deprecated env alias of db.orioledb_version, so the canonical name wins and the alias applies everywhere config resolves. The CliConfigValues loader prints the warning once per runtime, replacing develop's per-handler warnDeprecatedOrioleDBVersionEnv calls and withSingleOrioleDBVersionEnvWarning wrappers. Unlike develop, the warning now prints whenever a config load sees the alias set.
  • Which wording to use for the config deprecation warnings (inbucket, experimental.orioledb_version, linkedin and slack providers) where develop says 'will be removed in v3' and next says 'Please use'? Chose: develop's 'will be removed in v3' text, delivered through next's onWarning hook; next's io.stages test expectations are updated to match. A maintainer may want to reword this if next ships as v3.
  • develop modified apps/cli-go/pkg/config/templates/Dockerfile; next deleted apps/cli-go. Chose: Deleted it: next's apps/cli/src/shared/services/Dockerfile already has identical pins, including develop's storage v1.82.1 bump.
  • Both branches claim ADR 0031 (develop: Go CLI Removal after adding 0030 Hotfix Releases; next: Config Value Precedence), and the tree holds next's older 0030-go-cli-removal.md, identical apart from the number. Chose: Kept develop's numbering, which the auto-merged index already shows. Renumbered next's config-value-precedence ADR to 0032, updated all references, and deleted the duplicate 0030-go-cli-removal.md.

Quick checks. pnpm run check:all --continue (exit 1) failed on the merged tree.

Claude's fix. I fixed both types:check errors, which came from the merge. reset-local-database.ts now calls loadStackConfig(workdir) because next replaced the context option with projectRef. The import_map warning test that develop added now provides cliConfigValuesTestLayer, which next requires for functions deploy.

Approve to fast-forward next once checks pass (workflow run).

@supabase-cli-releaser supabase-cli-releaser Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Workflow changes for a maintainer

Claude's edits under .github/ are not pushed, because workflows on this branch run with repository secrets. Review them, then use Commit suggestions so they run.

Comment thread .github/actions/setup/action.yml Outdated
Comment thread .github/actions/setup/action.yml Outdated
Comment thread .github/actions/setup/action.yml Outdated
Comment thread .github/workflows/fill-sticky-disks.yml Outdated
Comment thread .github/workflows/fill-sticky-disks.yml Outdated
Comment thread .github/workflows/test.yml Outdated
Comment thread .github/workflows/test.yml Outdated
Comment thread .github/workflows/test.yml Outdated
Comment thread .github/workflows/test.yml Outdated
Comment thread .github/workflows/test.yml Outdated
next removed apps/cli-go, so the Go build, cache, and keyring steps synced from develop fail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 AI Review

Verified all six findings against the checked-out files. Confirmed one minor documentation issue: the renumbered config-precedence ADR leaves an outdated duplicate behind. Refuted the other five findings because the reported Go-specific workflow code is absent from the current checkout.

Findings

Severity Location Category Sources Claim
🟡 MINOR docs/adr/0032-config-value-precedence.md:1 documentation claude Adding ADR 0032 leaves the outdated config-precedence ADR 0031 in place, creating duplicate guidance and an ADR-number collision with Go CLI Removal.
Refuted findings (kept for transparency, not posted as review comments)
  • .github/workflows/test.yml:398 (merge-resolution): The test-e2e job caches and builds the removed Go CLI, causing every CLI end-to-end shard to fail.
    Refuted: Read the complete test-e2e job. Neither the claimed Go cache/build steps nor SUPABASE_GO_BINARY entries exist. The missing apps/cli-go directory therefore does not cause the reported workflow failure.
  • .github/actions/setup/action.yml:17 (merge-resolution): The setup action enables obsolete Go caches by default and invokes go env even though the Go workspace and toolchain configuration are absent.
    Refuted: Read the entire setup action. It has no go-cache input, Go cache-path resolution, Go sticky disks, or Go actions/cache entries. The claimed unnecessary work and missing-tool failure path are absent.
  • .github/workflows/test.yml:76 (merge-resolution): The check job unnecessarily runs a third-party keyring-unlock action for the removed Go CLI tests.
    Refuted: Read the complete check job. There is no keyring-unlock step or reference to the reported third-party action.
  • .github/workflows/fill-sticky-disks.yml:59 (merge-resolution): The fill workflow sets an unused SUPABASE_GO_BINARY path and incorrectly describes filling Go caches.
    Refuted: Read the entire workflow. Its header does not mention Go, and the reported SUPABASE_GO_BINARY entry is absent. The actual environment entry points to the CLI built immediately beforehand.
  • .github/workflows/test.yml:403 (cache-invalidation): The Go binary cache omits the compiler version, allowing E2E tests to reuse a binary compiled with an older Go toolchain.
    Refuted: Read the complete test-e2e job. It contains no Go binary cache, cache-hit compilation guard, or SUPABASE_GO_BINARY environment variable. Consequently, the claimed stale Go executable cannot be reused through this workflow.

Stats

Claude findings: 5 · Codex findings: 1 · Confirmed: 1 · Refuted: 5 · Uncertain: 0


Models: claude-opus-5-5 + gpt-6.1-sol · Trigger: manual · Workflow run

This review runs once per PR. A maintainer can request another with a /ai-review comment.

Comment thread docs/adr/0032-config-value-precedence.md
avallete and others added 2 commits October 14, 2026 18:01
next already removed the deprecated config, env vars and import maps that #7154
warns about, so its warnings, env alias and tests do not apply here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Remove the pre-renumber Go CLI removal and config precedence ADRs and point
config precedence references at ADR 0032.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@avallete
avallete self-requested a review October 14, 2026 16:07
@supabase-cli-releaser
supabase-cli-releaser Bot merged commit b068add into next Oct 14, 2026
51 of 52 checks passed
@supabase-cli-releaser
supabase-cli-releaser Bot deleted the sync/develop-into-next branch October 14, 2026 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do not merge Approve to apply; do not merge.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants