fix(pet): a member's pet chat starts in <their folder>/sagi

POST /api/lanes/ensure without a cwd defaulted to the dashboard's own
home, outside a member's folder, so every member's pet chat failed with
"a workspace must be inside your own folder" (EFOLDER). A member now
gets <their folder>/sagi, made as them (write-as mkdir) on first use.
This commit is contained in:
2026-11-03 11:53:21 +07:00
parent 497faae3bf
commit 5912e9e613
3 changed files with 67 additions and 6 deletions
+5 -3
View File
@@ -197,9 +197,11 @@ POST /api/lanes/ensure
```
`cwd` is optional — when missing or empty the server falls back to
`os.homedir()` (the user's home directory). This is how the Sagi mascot
adopts its dedicated workspace without the client needing to know an absolute
path. Existing cwd values still pass through unchanged. `pipeline` is
`os.homedir()` (the user's home directory) — or, for a server-mode member
with an own folder, `<their folder>/sagi`, made as them on first use (the
host's home lies outside their folder and would be `403 EFOLDER`). This is
how the Sagi mascot adopts its dedicated workspace without the client
needing to know an absolute path. Existing cwd values still pass through unchanged. `pipeline` is
optional and, like `title`, applies **only when a workspace is actually created**
— an existing workspace is returned untouched. Omitted, the workspace gets `default`.
`POST /api/lanes/worktree` and `POST /api/lanes` take the same optional