refactor(control-plane): group Vercel files under providers/vercel#709
Conversation
Move the Vercel sandbox modules added in #700 into a dedicated src/sandbox/providers/vercel/ directory and drop the redundant "vercel-" filename prefix: providers/vercel-provider.ts -> providers/vercel/provider.ts vercel-client.ts -> providers/vercel/client.ts vercel-bootstrap.ts -> providers/vercel/bootstrap.ts vercel-base-snapshot.ts -> providers/vercel/base-snapshot.ts (+ co-located tests) Keeping the provider under providers/ preserves that directory as the home for every provider and sets up a per-provider convention that Modal and Daytona can adopt later. Pure move plus import-path update: no exported symbols change, so the sandbox barrel's public surface is identical.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughVercel sandbox provider modules are reorganized from flat paths to a nested ChangesVercel module path reorganization
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Terraform Validation Results
Pushed by: @ColeMurray, Action: |
There was a problem hiding this comment.
[deep review] I did not find any high-confidence structural maintainability regressions in this refactor. The Vercel files are now grouped under a single provider directory, no file crosses the 1k-line threshold, stale old-path imports are gone, and the moved Vercel tests plus control-plane typecheck pass locally.
There was a problem hiding this comment.
Summary
Reviewed PR #709, refactor(control-plane): group Vercel files under providers/vercel by @ColeMurray. The TypeScript move/import updates are consistent and npm run typecheck -w @open-inspect/control-plane passes, but one non-TypeScript reference still points at the old moved files.
Critical Issues
- [Functionality]
terraform/environments/production/vercel.tf:16- The Vercel source-hash data source still includespackages/control-plane/src/sandbox/vercel-base-snapshot.ts,vercel-bootstrap.ts, andvercel-client.ts. Those files were moved, so Terraform will no longer hash changes to the new Vercel base snapshot/client/bootstrap sources that drive base snapshot rebuilds. Update these paths topackages/control-plane/src/sandbox/providers/vercel/...and include the provider file if it should participate in the rebuild trigger.
Suggestions
None.
Nitpicks
None.
Positive Feedback
- The sandbox barrel preserves the existing public exports while moving implementation files.
- Internal TypeScript imports and Vitest mock paths were updated consistently.
- The rename keeps Vercel provider-specific code cohesive under
providers/vercel/.
Questions
None.
Verdict
Request Changes: please update the Terraform source-hash paths before merging.
The data.external.vercel_source_hash block listed the pre-move Vercel
file paths (sandbox/vercel-{base-snapshot,bootstrap,client}.ts), which
no longer exist after grouping them under sandbox/providers/vercel/.
find would skip the missing paths, so edits to the moved builder code
would no longer change the hash that triggers base snapshot rebuilds.
provider.ts is intentionally excluded: it is the worker-side provider
that consumes the finished snapshot, not builder code baked into it.
Terraform Validation Results
Pushed by: @ColeMurray, Action: |
Summary
Groups the Vercel sandbox modules added in #700 into a dedicated
packages/control-plane/src/sandbox/providers/vercel/directory and drops the redundantvercel-filename prefix. Previously the Vercel files were split between the top ofsandbox/(client, bootstrap, base-snapshot) andsandbox/providers/(the provider).Structure
Why under
providers/(notsandbox/vercel/)Keeping the provider under
providers/preserves that directory as the home for every provider and establishes a per-provider convention (providers/<name>/) that Modal and Daytona can adopt later, leaving top-levelsandbox/for cross-provider concerns (provider.tsinterface,provider-name.ts,index.ts,lifecycle/).Scope / notes
sandboxbarrel's public API is identical.git mv(renames detected at 96–100% similarity, history preserved).index.ts),routes/repo-images.ts(+ test, including thevi.mockpath string),session/durable-object.ts, andscripts/build-vercel-base-snapshot.ts.providers/modal/andproviders/daytona/for full symmetry.package.json, Terraform, CI, or docs (verified — no hardcoded module paths; snapshot bundle output staysdist/vercel-base-snapshot.js).Validation
npm run typecheck -w @open-inspect/control-planenpm run lint -w @open-inspect/control-planenpm test -w @open-inspect/control-plane— 77 files, 1257 tests passednpm run build:vercel-base-snapshot -w @open-inspect/control-planenpm run build -w @open-inspect/control-planeSummary by CodeRabbit