Monorepo subdirectory builds now auto-anchor to root
vercel@54.21.0
Minor Changes
-
cc74129: Enable monorepo subdirectory build fixes by default (previously gated behind
VERCEL_RESOLVE_ROOT_DIRECTORY=1), scoped to directories the workspace actually claims.When a project is linked in place (
apps/api/.vercel/project.json) andvc buildis run from that directory, the build now re-anchors to the workspace root and expresses the project as its path relative to that root — so builders trace correctly, hoisted dependencies are packaged, and--standaloneoutput preserves package-manager symlinks so dependencies resolve at runtime.Re-anchoring only happens when an ancestor workspace manifest (
pnpm-workspace.yamlorpackage.json#workspaces) actually declares the linked directory as a member package. Membership is decided by matching the directory's path against the manifest's declared patterns (including negations like!apps/legacy) plus apackage.jsonexistence check — pure string matching with no filesystem traversal, so large repositories and recursive patterns like**cost nothing. A project that merely sits inside an unrelated repository — a vendored folder, a fixture, a scratch project in a company monorepo, or a plain git repo with no workspace — is left untouched and builds from its own directory exactly as before.The
rootDirectorysetting is interpreted relative to the link's location and honored when it points at a folder that exists; otherwise (e.g. a redundantapps/apisetting on a link atapps/api, which previously crashed withENOENT .../apps/api/apps/api/...) it is ignored in favor of the link's own location and a warning is emitted.To restore the previous behavior, pin an earlier CLI version.
Patch Changes
- 001a879: Do not duplicate global flags (e.g.
--scope) in agent-outputnext[]command suggestions when the command template already carries the flag - d15f17c: Resolve projects for
domains inspectanddomains rmfrom the domain's project-domains instead of scanning every project in the account - 3190211: Show list help instead of transfer-in help for
vercel domains ls --help - 85c897e: Run framework detection during
vc build(opt-in viaVERCEL_FRAMEWORK_DETECTION=1): detect the framework on a project's first deployment (VERCEL_FIRST_DEPLOYMENT=1) when none is configured and record it asdetectedFrameworkinbuilds.json, cross-check the configured framework against the source code in the background without slowing the build, and validate the build output after it is written. Adds adetectionConfidenceannotation to framework definitions for detections that are commonly incidental (e.g. Storybook as a devDependency) so they are never suggested as a framework override. - 3f3ca56: [cli]
integration addnow installs a product's declared agent skills after provisioning. It reads the product'sagentSkills(public GitHubSKILL.mdlinks) and runsnpx skills addfor each — prompting first in an interactive terminal (default yes), or auto-installing for non-interactive callers (agents, CI).--format=jsonstays read-only: it surfaces askillsarray instead of installing. Non-GitHub or unparseable links are skipped. - 3aa331b: Emit structured agent-output JSON (
project_not_foundwith runnablenextsuggestions) whenvercel list <project>does not resolve in non-interactive mode - 24b012c: Update the CLI's
sandboxdependency from3.1.2to3.4.0. - d8307a7: Add a project update command for changing framework and build settings.
- Updated dependencies [6dbc280]
- Updated dependencies [4097a62]
- @vercel/next@4.20.3
- @vercel/python@6.48.0
- @vercel/static-build@2.11.4
Fetched July 6, 2026
