Commit 95ab2d9
committed
feat: per-user 'computer' sandbox (bud parity) + IDE polish
Migrate from one Daytona sandbox per project to one sandbox PER USER, with
each project as a /workspace/<slug> subfolder running its own dev server on
its own per-project port — matching bud.app. Clean cut, no legacy/dual-mode.
- tenancy: projectSandboxName -> userSandboxName (one sandbox/user)
- projects.workspace_slug column (immutable per-project folder, unique/user)
- per-project dev-server port + slot app-preview:<slug> (allocateProjectPort);
general agent forced into /workspace/<slug> via runtime-context workspaceDir
(tool cwd + dev-server cwd), mkdir at run start, system-prompt guidance
- code-server: no project -> COMPUTER root (all projects); project -> scoped
/workspace/<slug>; Files tab opens even with no project
- concurrency limit counts distinct sandboxes (per-user model)
- IDE: git UI off (uniform tree, no A/M/U), COMPUTER relabel symlink,
ignoreRecommendations; single 'Working' timer (drop duplicate disclosure label)
Verified live: two web projects share one user sandbox as distinct subfolders
on distinct ports (5173/5174), each preview shows its own app, scoped computer.
turbo build 22/22 green.1 parent f2a5abd commit 95ab2d9
33 files changed
Lines changed: 2906 additions & 350 deletions
File tree
- apps
- agent-worker/src
- durable-objects
- web/src/components
- chat
- preview
- infra/containers/sandbox/scripts
- packages
- agent-core/src/mastra
- tools
- db
- drizzle
- meta
- src
- schema
- tools-code/src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| |||
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | | - | |
| 70 | + | |
71 | 71 | | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
72 | 75 | | |
73 | 76 | | |
74 | 77 | | |
| |||
77 | 80 | | |
78 | 81 | | |
79 | 82 | | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
| 83 | + | |
87 | 84 | | |
88 | 85 | | |
89 | 86 | | |
90 | 87 | | |
91 | 88 | | |
| 89 | + | |
| 90 | + | |
92 | 91 | | |
93 | 92 | | |
94 | 93 | | |
95 | | - | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
96 | 102 | | |
97 | | - | |
| 103 | + | |
98 | 104 | | |
99 | 105 | | |
100 | 106 | | |
| |||
185 | 191 | | |
186 | 192 | | |
187 | 193 | | |
| 194 | + | |
188 | 195 | | |
189 | 196 | | |
190 | 197 | | |
| |||
380 | 387 | | |
381 | 388 | | |
382 | 389 | | |
383 | | - | |
| 390 | + | |
384 | 391 | | |
385 | | - | |
| 392 | + | |
386 | 393 | | |
387 | 394 | | |
388 | 395 | | |
| |||
397 | 404 | | |
398 | 405 | | |
399 | 406 | | |
400 | | - | |
| 407 | + | |
401 | 408 | | |
402 | | - | |
| 409 | + | |
403 | 410 | | |
404 | 411 | | |
405 | 412 | | |
| |||
495 | 502 | | |
496 | 503 | | |
497 | 504 | | |
498 | | - | |
| 505 | + | |
499 | 506 | | |
500 | 507 | | |
501 | | - | |
502 | 508 | | |
503 | | - | |
504 | | - | |
505 | | - | |
506 | | - | |
| 509 | + | |
507 | 510 | | |
508 | 511 | | |
509 | 512 | | |
| |||
0 commit comments