Keep CI pipelines deterministic and comprehensive:
@ai-sdk/* (or similar) dependencies to use caret ranges for normal maintenance, but ensure CI installs with a frozen lockfile so the build uses the exact pinned versions.vitest, Rust via cargo test).Example (package.json + CI wiring concept):
{
"scripts": {
"test:desktop-client": "vitest run webview/lib/desktop-client.test.ts --config vitest.config.ts"
}
}
In CI, make sure the step actually calls:
npm|bun|pnpm test:desktop-client (or equivalent), andcargo test for Rust components.Rule of thumb: PRs that change dependencies or tests must be accompanied by CI changes (or CI verification) so the pipeline runs with the intended versions and the intended test coverage.