Repository navigation
fix(cli): name the stack opt-in when a stack-only flag is rejected - #7592
Conversation
CLI benchmark (Lightweight Commands): no changes foundCommit
API calls: unchanged for all 8 commands. Binary size: 135.0 MB, up 4.0 KB from 135.0 MB. Details: timing ranges, API calls per command, slowest phasesTiming ranges
API calls per command
Slowest phasesNo command moved beyond noise, so there are no phase deltas. Comment |
There was a problem hiding this comment.
🤖 AI Review
Verified all three findings and merged the overlapping test findings into one. Two minor concerns are confirmed: misleading config advice when an environment override disables stack, and an acceptance test that can pass despite unrelated failures.
Findings
| Severity | Location | Category | Sources | Claim |
|---|---|---|---|---|
| 🟡 MINOR | apps/cli/src/shared/cli/subcommand-flag-suggestions.ts:334 |
error-messages |
claude | When SUPABASE_EXPERIMENTAL_STACK=0 is set, the hint incorrectly offers setting stack = true in config.toml as an effective alternative. The environment override prevents that config edit from enabling stack. |
| 🟡 MINOR | apps/cli/src/cli/stack-flag-opt-in-hint.integration.test.ts:112 |
test-coverage |
claude+codex | The stack-backend acceptance test checks only that the message lacks 'Unrecognized flag', so unrelated failures satisfy the assertion without establishing successful acceptance. |
Stats
Claude findings: 2 · Codex findings: 1 · Confirmed: 2 · 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.
Without the stack opt-in,
supabase start --runtime nativereaches the legacystart. That command fails with a bareUnrecognized flag: --runtime, which gives no clue that the flag belongs to the stack backend.When the legacy backend rejects a flag that the stack version of the same command accepts, the error now names the opt-in:
start,stopandstatuswithout a hand-kept list. A flag that neither backend accepts gets no hint.