Files
roboco/docs/rag/architecture/workspaces.md
T

90 lines
2.3 KiB
Markdown

# Workspace Structure
## Multi-Agent Isolation
Each agent gets their own git clone:
```
{workspaces_root}/
└── {project-slug}/
└── {team}/
└── {agent-slug}/
└── [git repo files]
```
## Example
```
/data/workspaces/
└── roboco/
├── backend/
│ ├── be-dev-1/ # be-dev-1's workspace
│ ├── be-dev-2/ # be-dev-2's workspace
│ ├── be-qa/ # be-qa's workspace
│ ├── be-pm/ # be-pm's workspace
│ └── be-doc/ # be-doc's workspace
├── frontend/
│ ├── fe-dev-1/
│ └── ...
└── ux_ui/
└── ...
```
## Configuration
```bash
# Environment variables
ROBOCO_WORKSPACES_ROOT=/data/workspaces
ROBOCO_WORKSPACE_AUTO_CLONE=true
ROBOCO_WORKSPACE_CLONE_TIMEOUT=300
```
## Features
| Feature | Description |
|---------|-------------|
| Auto-clone | Workspaces created on first access |
| Isolation | No file locking conflicts |
| Branch independence | Agents on different branches |
| Project-scoped | Organized by project slug |
## Benefits
1. **Parallel Development**: Multiple agents on same project
2. **No Conflicts**: Each has own working tree
3. **Branch Flexibility**: Different branches simultaneously
4. **Clean State**: Fresh clone if needed
## MCP Tools
| Tool | Purpose |
|------|---------|
| `roboco_workspace_ensure` | Create workspace if needed |
| `roboco_workspace_status` | Check workspace state |
| `roboco_workspace_list` | List all workspaces (PM only) |
```python
# Ensure workspace exists (auto-clones if needed)
roboco_workspace_ensure(project_slug="roboco")
# Check status
roboco_workspace_status(project_slug="roboco")
```
## Workspace Resolution
Path resolved automatically: `{workspaces_root}/{project}/{team}/{agent}/`
If `auto_clone=True` and workspace doesn't exist, it's created on first access.
## Authentication
HTTPS repositories require a GitHub PAT configured on the project:
- **Token configured**: Auto-clone works, git operations succeed
- **Token missing**: Error "Project requires a git token for HTTPS repositories"
**If you see this error**: Contact your PM to configure the project's git token.
PMs use `roboco_project_update(slug, git_token="...")` to set credentials.