Skip to content

fix(cli): fail explicit local bundling when docker is down (CLI-2748) - #7374

Open
7ttp wants to merge 4 commits into
developfrom
7ttp/cli-2748-explicit-local-function-bundling-falls-back-to-api-bundling
Open

7ttp wants to merge 4 commits into
developfrom
7ttp/cli-2748-explicit-local-function-bundling-falls-back-to-api-bundling

Conversation

@7ttp

@7ttp 7ttp commented Oct 28, 2026

Copy link
Copy Markdown
Member

TL;DR

stops functions deploy --use-api=false and --use-docker deploying through the api when docker isn't running

whats improved/fixed?

with docker down, an explicit local bundler flag printed WARNING: Docker is not running and then uploaded the sources for server side bundling, exiting 0

so a deploy that asked for local docker bundling silently got a server side bundle instead

how?

--use-api=false, --use-docker or --legacy-bundle with docker down now fails with
Docker is not running. Start Docker to bundle Functions locally, or deploy with --use-api.

before deploying with no bundler flag it still warns and falls back to the api, exactly as before...

ref:

@7ttp 7ttp self-assigned this Oct 28, 2026
@7ttp
7ttp requested a review from a team as a code owner October 28, 2026 13:45

@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

Both independent reviews were available. Claude's single finding is confirmed for --legacy-bundle=false: the new presence-based guard incorrectly disables API fallback despite no explicit request for local bundling. Codex reported no findings.

Findings

Severity Location Category Sources Claim
🟡 MINOR apps/cli/src/shared/functions/deploy.ts:2592 correctness claude Passing --legacy-bundle=false now fails when Docker is unavailable instead of retaining the default API fallback. The guard treats explicitly disabling legacy bundling as explicitly requesting local bundling.

Stats

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


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

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

Comment thread apps/cli/src/shared/functions/deploy.ts Outdated
@github-actions

Copy link
Copy Markdown
Contributor

CLI benchmark: no changes found

Commit 51e5f16 against develop at bcd3ec9 · 10 runs each · report only, never blocks merging

Command Before After Change
supabase --version 261 ms 256 ms no real change
supabase --help 261 ms 247 ms no real change (-6%, within normal variation)
supabase init 257 ms 266 ms no real change
supabase migration new bench 272 ms 270 ms no real change
supabase gen types --lang typescript --project-id replayfixtureprojref 297 ms 302 ms no real change
supabase projects list 265 ms 261 ms no real change
supabase functions list --project-ref replayfixtureprojref 266 ms 270 ms no real change

API calls: unchanged for all 7 commands.

Binary size: 133.8 MB, unchanged.

Details: timing ranges, API calls per command, slowest phases

Timing ranges

Command Before range After range Change Verdict
supabase --version 222-286 ms 227-294 ms -4 ms (-2%) within noise
supabase --help 231-321 ms 223-288 ms -15 ms (-6%) within noise
supabase init 229-333 ms 232-343 ms +9 ms (+4%) within noise
supabase migration new bench 248-337 ms 229-318 ms -3 ms (-1%) within noise
supabase gen types --lang typescript --project-id replayfixtureprojref 270-400 ms 275-396 ms +4 ms (+1%) within noise
supabase projects list 251-304 ms 249-328 ms -5 ms (-2%) within noise
supabase functions list --project-ref replayfixtureprojref 227-313 ms 235-343 ms +5 ms (+2%) within noise

API calls per command

Command Before After Endpoint changes
supabase --version 0 0
supabase --help 0 0
supabase init 0 0
supabase migration new bench 0 0
supabase gen types --lang typescript --project-id replayfixtureprojref 2 2
supabase projects list 1 1
supabase functions list --project-ref replayfixtureprojref 2 2

Slowest phases

No command moved beyond noise, so there are no phase deltas.

Comment /bench to run it again on the latest commit.

Workflow run

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Explicit local function bundling falls back to API bundling when Docker is unavailable

1 participant