Dependency Updates
Bump dependencies across a project (or multiple projects), fix breaking API changes, verify tests pass, and open PRs — all concurrently.
Workflow
runPipeline(
listOutdatedDeps.then(
iterate().map(
withResource({
create: createUpdateBranch,
action: bumpDependency.then(
tryCatch(
(throwError) => runTests.unwrapOr(throwError).drop()
.then(typeCheck.unwrapOr(throwError).drop()),
diagnoseBreakage.then(applyFix),
),
).then(createPR),
dispose: cleanupBranch,
}),
).collect(),
),
);
Stages
- List outdated deps — query the package manager for available updates.
- For each dependency — process concurrently in isolated branches:
- Bump — update the dependency version.
- Test and type-check — run the test suite and type checker. If either fails, diagnose and fix.
- Open PR — create a pull request with the update.
- Cleanup —
withResourceensures the branch is cleaned up even if the update fails.
Key points
- Each dependency update runs in its own branch via
withResource, so updates don't interfere. tryCatchcatches test/type-check failures and routes to a diagnosis step rather than aborting.- The diagnosis agent sees only the failure output — it doesn't know about other dependency updates.
- Combine with the babysitting PRs workflow to monitor the resulting PRs through CI and review.