Multi-package setups were configured with a separate vitest.workspace.ts that listed globs or inline configurations. Vitest 3.2 deprecated that file and moved the same capability into test.projects inside the ordinary vitest.config.ts.
Keeping the old file produces a deprecation warning and, in later versions, stops working. The migration is largely mechanical: the array that was the default export of the workspace file becomes the value of test.projects. Each entry can still be a glob string pointing at a package directory or an inline configuration object with its own name, environment, and include.
One behavior worth checking after the move is which options are per-project and which are root-only. Reporters, coverage, and the watcher are configured once at the root; environment, setup files, and includes are per project. Running vitest --project=<name> filters to a single project, which is the fastest way to confirm the new layout resolved as intended.