Skip to content

feat: add multi-project workspace support#531

Draft
dataforxyz wants to merge 2 commits intoendorhq:mainfrom
dataforxyz:feat/multi-project-workspaces
Draft

feat: add multi-project workspace support#531
dataforxyz wants to merge 2 commits intoendorhq:mainfrom
dataforxyz:feat/multi-project-workspaces

Conversation

@dataforxyz
Copy link
Copy Markdown
Contributor

Summary

  • Adds optional projects array to rover.json (schema v1.4) for multi-project workspaces
  • Sandbox aggregates all languages, package managers, and task managers from root + sub-projects (deduplicated)
  • Per-project init scripts run in order with correct working directory (cd /workspace/<path>)
  • Workspace description JSON mounted at /workspace/.rover-workspace.json for agent context
  • Image cache hash includes sub-project configs for correct invalidation
  • Existing single-project configs auto-migrate to v1.4 with no behavior change

Closes #529

Changes

Schema (packages/schemas): SubProjectSchema, projects field on ProjectConfigSchema, version bump to 1.4

Core (packages/core): Aggregation getters (allLanguages, allPackageManagers, allTaskManagers, allInitScripts), mutation methods (addProject, removeProject), migration support

CLI (packages/cli): Setup builder uses aggregated getters, multi-init script entrypoint generation, workspace description generation, Docker/Podman mount updates, image cache hash includes projects

Test plan

  • pnpm build — all packages compile
  • pnpm test — all 1333 tests pass (20 schema + 888 core + 5 agent + 420 CLI)
  • pnpm format — no formatting issues
  • Manual: created rover.json with projects array, verified entrypoint installs all languages and runs per-project init scripts with correct cd commands
  • Manual: verified existing single-project rover.json auto-migrates to v1.4 and works identically
  • Manual: verified workspace-description.json and .rover-workspace.json generated correctly

🤖 Generated with Claude Code

dataforxyz and others added 2 commits February 20, 2026 16:56
Add an optional `projects` array to rover.json (schema v1.4) so a single
task can span multiple sub-projects. When present, the sandbox aggregates
all languages/package managers/task managers from all sub-projects and
runs per-project init scripts. Existing single-project configs are fully
preserved via auto-migration.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@dataforxyz dataforxyz marked this pull request as draft February 24, 2026 03:58
@dataforxyz dataforxyz marked this pull request as draft February 24, 2026 03:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support multi-project workspaces (frontend + backend + e2e testing)

1 participant