* Detect dependency requirement drift in bin/bundle-drift
The checker only compared resolved spec versions between Gemfile.lock
and Gemfile.saas.lock. When dependabot bumped solid_queue from ~> 1.3
to ~> 1.4, the forward command patched the resolved version but left
the stale dependency requirement. The checker didn't catch it because
both lockfiles resolved to the same version.
Now find_drift also compares dependency requirements for shared direct
dependencies, and forward patches the DEPENDENCIES section too.
Includes built-in self-test (bin/bundle-drift self-test).
* Sync solid_queue dependency requirement in Gemfile.saas.lock
Updates ~> 1.3 to ~> 1.4 to match Gemfile.lock.
Gemfile.saas evals Gemfile, so shared gems should have identical versions
in both lockfiles. This adds bin/bundle-drift to detect and fix drift:
* `bin/bundle-drift check` compares shared gem versions
* `bin/bundle-drift correct` seeds Gemfile.lock from Gemfile.saas.lock
and re-locks, letting Bundler prune SaaS-only gems while preserving
shared versions
Adds drift check to bin/ci and GitHub CI. Corrects existing drift.