Skip to content

refactor(cli): remove FF_AUTO_PROVISION_INSTALL feature flag and dead code#15871

Merged
tonypan2 merged 1 commit into
mainfrom
tonypan/nuke-ff-auto-provision
Apr 9, 2026
Merged

refactor(cli): remove FF_AUTO_PROVISION_INSTALL feature flag and dead code#15871
tonypan2 merged 1 commit into
mainfrom
tonypan/nuke-ff-auto-provision

Conversation

@tonypan2

@tonypan2 tonypan2 commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Remove the FF_AUTO_PROVISION_INSTALL feature flag from vc integration add and vc install — the auto-provision flow has been the default for a while
  • Delete ~4,200 lines of dead code from the old provisioning path
  • Delete 4 orphaned utility files only used by the old path (wizard.ts, provision-store-resource.ts, create-authorization.ts, fetch-authorization.ts)
  • Delete 2 test files that only tested the old (FF=0) path, remove FF gating tests from remaining test files
  • Clean up orphaned types (MarketplaceBillingAuthorizationState, MetadataEntry, preauthorizationAmount field), dead mock data (usePreauthorization, useIntegration, integrationPlans, authorizations, dead integration entries, acme-two-projects config), always-true is_auto_provision telemetry, unnecessary exports, and stale wizard references
  • Add missing vc install --installation-id test

Test plan

Unit tests

$ cd packages/cli && pnpm vitest run test/unit/commands/integration/add-auto-provision.test.ts test/unit/util/integration/format-dynamic-examples.test.ts

 ✓ test/unit/commands/integration/add-auto-provision.test.ts  (108 tests) 923ms
 ✓ test/unit/util/integration/format-dynamic-examples.test.ts  (2 tests) 2ms

 Test Files  2 passed (2)
      Tests  110 passed (110)

Manual testing

Test Expected Actual Result
vc integration add --help Shows --installation-id, --format Both shown PASS
vc integration add upstash --help Dynamic help with products, metadata, billing All sections shown PASS
vc integration add (no slug) Error: must pass slug Error shown PASS
vc integration add upstash -e staging Invalid environment error Error shown PASS
vc integration add upstash/upstash-kv --no-connect Auto-provision fallback with source=cli Correct URL opened PASS
vc install --help Shows --installation-id, --format Both shown PASS
FF_AUTO_PROVISION_INSTALL=0 vc integration add --help Still shows --installation-id (FF removed) Shows it PASS
  • Tests pass
  • Manual testing passes

🤖 Generated with Claude Code

@changeset-bot

changeset-bot Bot commented Apr 7, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: ca0f5be

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
vercel Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions

github-actions Bot commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

📦 CLI Tarball Ready

The Vercel CLI tarball for this PR is now available!

Quick Test

You can test this PR's CLI directly by running:

npx https://vercel-hw6p1tugs.vercel.sh/tarballs/vercel.tgz --help

Use in vercel.json

To use this CLI version in your project builds, add to your vercel.json:

{
  "build": {
    "env": {
      "VERCEL_CLI_VERSION": "vercel@https://vercel-hw6p1tugs.vercel.sh/tarballs/vercel.tgz"
    }
  }
}

Python Runtime Wheel

A vercel-runtime wheel was also built for this PR.
To use in your Python project builds, also set this environment variable:

VERCEL_RUNTIME_PYTHON="vercel-runtime @ https://vercel-hw6p1tugs.vercel.sh/tarballs/vercel_runtime-0.13.0.dev1775753459+ca0f5be-py3-none-any.whl"

Python Workers Wheel

A vercel-workers wheel was also built for this PR.
To use in your Python project builds, also set this environment variable:

VERCEL_WORKERS_PYTHON="vercel-workers @ https://vercel-hw6p1tugs.vercel.sh/tarballs/vercel_workers-0.1.0.dev1775753459+ca0f5be-py3-none-any.whl"

@vercel

vercel Bot commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

Low Risk — Feature flag removal + dead code cleanup — auto-provision was already the default path.

  • add.ts: removed ~600 lines of legacy provisioning code, now always calls addAutoProvision
  • wizard.ts, create-authorization.ts, provision-store-resource.ts, fetch-authorization.ts: deleted orphaned utility files
  • integration.ts, add.test.ts, install/index.test.ts: removed FF gating logic and legacy-path tests

Assessed at ca0f5be.

@github-actions

github-actions Bot commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

🧪 Unit Test Strategy

Comparing: a31c84dca0f5be (view diff)

Strategy: Affected packages only

✅ Only testing packages that have been modified or depend on modified packages.

Affected packages - 1 (3%)
  1. vercel
Unaffected packages - 39 (98%)
  1. @vercel-internals/get-package-json
  2. @vercel/backends
  3. @vercel/build-utils
  4. @vercel/cervel
  5. @vercel/cli-auth
  6. @vercel/client
  7. @vercel/config
  8. @vercel/detect-agent
  9. @vercel/edge
  10. @vercel/elysia
  11. @vercel/error-utils
  12. @vercel/express
  13. @vercel/fastify
  14. @vercel/firewall
  15. @vercel/frameworks
  16. @vercel/fs-detectors
  17. @vercel/functions
  18. @vercel/gatsby-plugin-vercel-builder
  19. @vercel/go
  20. @vercel/h3
  21. @vercel/hono
  22. @vercel/hydrogen
  23. @vercel/koa
  24. @vercel/nestjs
  25. @vercel/next
  26. @vercel/node
  27. @vercel/oidc
  28. @vercel/oidc-aws-credentials-provider
  29. @vercel/python
  30. @vercel/python-analysis
  31. @vercel/redwood
  32. @vercel/related-projects
  33. @vercel/remix-builder
  34. @vercel/routing-utils
  35. @vercel/ruby
  36. @vercel/rust
  37. @vercel/static-build
  38. @vercel/static-config
  39. examples

Results

  • Unit tests: Only affected packages will run unit tests
  • E2E tests: Running in parallel via E2E Tests workflow
  • Type checks: Only affected packages will run type checks

This comment is automatically generated based on the affected testing strategy

@tonypan2 tonypan2 marked this pull request as ready for review April 7, 2026 22:22
@tonypan2 tonypan2 requested review from a team as code owners April 7, 2026 22:22
@tonypan2 tonypan2 force-pushed the tonypan/nuke-ff-auto-provision branch from 03c0364 to bba1a4d Compare April 7, 2026 23:16
@tonypan2 tonypan2 force-pushed the tonypan/nuke-ff-auto-provision branch from bba1a4d to 0e71153 Compare April 7, 2026 23:20
@tonypan2 tonypan2 force-pushed the tonypan/nuke-ff-auto-provision branch from 0e71153 to a487d5c Compare April 7, 2026 23:25
@tonypan2 tonypan2 force-pushed the tonypan/nuke-ff-auto-provision branch from a487d5c to e7348d9 Compare April 7, 2026 23:28
@tonypan2 tonypan2 force-pushed the tonypan/nuke-ff-auto-provision branch from e7348d9 to a3fb821 Compare April 7, 2026 23:37
@tonypan2 tonypan2 force-pushed the tonypan/nuke-ff-auto-provision branch 2 times, most recently from 7d08410 to cc712ce Compare April 7, 2026 23:43
@tonypan2 tonypan2 enabled auto-merge (squash) April 8, 2026 04:25
… code

The auto-provision flow has been the default for `vc integration add` and
`vc install` for a while. Remove the kill-switch feature flag and all
dead code from the old provisioning path (~3,700 lines).

- Remove FF_AUTO_PROVISION_INSTALL checks from add.ts, index.ts, install/index.ts, and format-dynamic-examples.ts
- Delete orphaned files only used by old path: wizard.ts, provision-store-resource.ts, create-authorization.ts, fetch-authorization.ts
- Delete test files that only tested the old (FF=0) path: add.test.ts, install/index.test.ts
- Remove FF setup/teardown and FF gating tests from remaining test files

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@tonypan2 tonypan2 merged commit 73363a1 into main Apr 9, 2026
179 checks passed
@tonypan2 tonypan2 deleted the tonypan/nuke-ff-auto-provision branch April 9, 2026 18:16
healeycodes pushed a commit that referenced this pull request Apr 10, 2026
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## vercel@50.43.0

### Minor Changes

- Add Deployment Checks support to `deploy --prod`. Shows "Running
Checks..." spinner when checks are pending, detects check failures
before alias promotion, and displays failed check run details with links
to logs. ([#15884](#15884))

- Extend marketplace integration CLI parity: add `vercel integration
installations` to list team installations (with optional `--integration`
filter and JSON output), align `vercel integration update` argument
parsing with other subcommands (parse only tokens after `update`, so the
integration slug is the first positional), and ship related
help/telemetry updates.
([#15849](#15849))

- Add `vercel project protection` actions for automation protection
bypass via PATCH `/v1/projects/.../protection-bypass`
(`--protection-bypass`).
([#15862](#15862))

- Add `vercel project protection` actions for customer support code
visibility (`--customer-support-code-visibility`).
([#15860](#15860))

- Add `vercel project protection` actions for Git fork protection
(`--git-fork-protection`).
([#15861](#15861))

- [services] migrate python workers to Queues V3 API
([#15885](#15885))

- [cli] Add `vercel flags override` subcommand to encrypt and decrypt
flag override tokens for the `vercel-flag-overrides` cookie
([#15875](#15875))

### Patch Changes

- Persist CLI telemetry across invocations with bounded-time sessions,
stable installation device IDs, and per-invocation identifiers.
([#15872](#15872))

- Update the `vercel metrics` CLI to use the V2 observability metrics
API with `--metric`-based schema inspection and querying.
([#15876](#15876))

- Improve `vercel integration add` command to support fallback to the
discover API and first-party integrations.
([#15788](#15788))

- refactor(cli): remove FF_AUTO_PROVISION_INSTALL feature flag and dead
code from `integration add`
([#15871](#15871))

- Updated dependencies
\[[`5e02289f927050a6c1025cc0edb7eda607fd5e73`](5e02289),
[`2e15ee828f14de4a849a462429ca03feab161174`](2e15ee8),
[`a31c84d1bda56a60da6d7bc6d611b0b18ba3bf57`](a31c84d)]:
    -   @vercel/detect-agent@1.2.2
    -   @vercel/build-utils@13.14.1
    -   @vercel/backends@0.0.58
    -   @vercel/elysia@0.1.61
    -   @vercel/express@0.1.71
    -   @vercel/fastify@0.1.64
    -   @vercel/go@3.4.7
    -   @vercel/h3@0.1.70
    -   @vercel/hono@0.2.64
    -   @vercel/hydrogen@1.3.6
    -   @vercel/koa@0.1.44
    -   @vercel/nestjs@0.2.65
    -   @vercel/next@4.16.5
    -   @vercel/node@5.7.3
    -   @vercel/python@6.29.0
    -   @vercel/redwood@2.4.12
    -   @vercel/remix-builder@5.7.2
    -   @vercel/ruby@2.3.2
    -   @vercel/rust@1.1.0
    -   @vercel/static-build@2.9.11

## @vercel/client@17.3.0

### Minor Changes

- Add Deployment Checks support to `deploy --prod`. Shows "Running
Checks..." spinner when checks are pending, detects check failures
before alias promotion, and displays failed check run details with links
to logs. ([#15884](#15884))

### Patch Changes

- Updated dependencies
\[[`2e15ee828f14de4a849a462429ca03feab161174`](2e15ee8),
[`a31c84d1bda56a60da6d7bc6d611b0b18ba3bf57`](a31c84d)]:
    -   @vercel/build-utils@13.14.1

## @vercel/backends@0.0.58

### Patch Changes

- Updated dependencies
\[[`2e15ee828f14de4a849a462429ca03feab161174`](2e15ee8),
[`a31c84d1bda56a60da6d7bc6d611b0b18ba3bf57`](a31c84d)]:
    -   @vercel/build-utils@13.14.1

## @vercel/build-utils@13.14.1

### Patch Changes

- Restore `finalizeLambda()` to return `zipPath: null` for the default
in-memory path, preserving the existing caller-facing result contract
while keeping custom ZIP strategies supported.
([#15887](#15887))

- feat(node): filter non-entrypoint Node.js files in `/api` directory
([#15873](#15873))

## @vercel/cervel@0.0.45

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/backends@0.0.58

## @vercel/detect-agent@1.2.2

### Patch Changes

- Detect Cursor agent execution when
`CURSOR_EXTENSION_HOST_ROLE=agent-exec` is set so tools launched from
Cursor still report the `cursor-cli` agent when `CURSOR_AGENT` is not
present. ([#15879](#15879))

## @vercel/elysia@0.1.61

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.3

## @vercel/express@0.1.71

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.3
    -   @vercel/cervel@0.0.45

## @vercel/fastify@0.1.64

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.3

## @vercel/fs-detectors@5.15.1

### Patch Changes

- feat(node): filter non-entrypoint Node.js files in `/api` directory
([#15873](#15873))

- Updated dependencies
\[[`2e15ee828f14de4a849a462429ca03feab161174`](2e15ee8),
[`a31c84d1bda56a60da6d7bc6d611b0b18ba3bf57`](a31c84d)]:
    -   @vercel/build-utils@13.14.1

## @vercel/gatsby-plugin-vercel-builder@2.1.11

### Patch Changes

- Updated dependencies
\[[`2e15ee828f14de4a849a462429ca03feab161174`](2e15ee8),
[`a31c84d1bda56a60da6d7bc6d611b0b18ba3bf57`](a31c84d)]:
    -   @vercel/build-utils@13.14.1

## @vercel/h3@0.1.70

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.3

## @vercel/hono@0.2.64

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.3

## @vercel/koa@0.1.44

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.3

## @vercel/nestjs@0.2.65

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/node@5.7.3

## @vercel/node@5.7.3

### Patch Changes

- Updated dependencies
\[[`2e15ee828f14de4a849a462429ca03feab161174`](2e15ee8),
[`a31c84d1bda56a60da6d7bc6d611b0b18ba3bf57`](a31c84d)]:
    -   @vercel/build-utils@13.14.1

## @vercel/static-build@2.9.11

### Patch Changes

-   Updated dependencies \[]:
    -   @vercel/gatsby-plugin-vercel-builder@2.1.11

## @vercel/python-workers@0.0.14

### Patch Changes

- [services] migrate python workers to Queues V3 API
([#15885](#15885))

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

2 participants