Go module with the task tree screen; worktrees on and measured; Go installed

This commit is contained in:
Sam
2026-11-10 11:20:21 +11:00
parent a60a4a3067
commit 713774485a
10 changed files with 868 additions and 23 deletions

View File

@@ -59,32 +59,49 @@ A wake can still be refused without any error reaching us. Read
and a plain-English diagnosis. Refusal reasons seen in the documentation: the agent is
paused, its budget is exhausted, its cooldown has not elapsed, or its run slot is full.
## Isolated workspaces are switched off on this instance
## Isolated workspaces: switched on 2026-11-10, and measured working
The project was created asking for a git worktree per task (`executionWorkspacePolicy`
with `workspaceStrategy.type: "git_worktree"`). **No worktree was made.** The run worked
directly in `/tmp/pc-sandbox-2026-11-10` and committed onto `main`. The task's
`executionWorkspaceId` and `currentExecutionWorkspace` both read `null`.
The instance first had them off. With the flags off, the project's request for a git
worktree per task was silently ignored: `AUD-159` worked in `/tmp/pc-sandbox-2026-11-10`
on `main`, and the task's `executionWorkspaceId` read `null`.
`GET /api/instance/settings/experimental` returns:
Then, with the person's approval, two experimental settings were switched on:
```
"enableIsolatedWorkspaces": false,
"enableIsolatedWorkspacesByDefault": false,
"enableWorktreeRunExecution": false,
PATCH /api/instance/settings/experimental
{"enableIsolatedWorkspaces": true, "enableWorktreeRunExecution": true}
→ 200
```
With `enableIsolatedWorkspaces` false, Paperclip discards a task's workspace settings
before the run is dispatched, so the mode falls back to the shared project folder. The
worktree code is present in the server (`git worktree add` in
dist/services/workspace-runtime.js). Switching it on is an instance-wide experimental
setting and a decision for the person, not a setting for one project.
`enableIsolatedWorkspacesByDefault` was deliberately **left off**. That flag would give
every project without a policy of its own a worktree, which would change the other nine
projects on this instance. Only projects that ask for one now get one.
The next task (`AUD-160`) made a real worktree, and Paperclip posted a "Workspace Ready"
comment on the task naming it:
```
strategy git_worktree
branch AUD-160-milestone-1-t2-read-hello-txt
cwd /tmp/pc-sandbox-2026-11-10/.paperclip/worktrees/AUD-160-milestone-1-t2-read-hello-txt
baseRef main
deliveryState merged_by_ancestry (no commit was needed; the branch equals main)
```
`git worktree list` in the sandbox repository shows that path on that branch. So the
worktree is Paperclip's job after all, once the instance allows it, and the terminal
program never needs to run `git worktree` itself.
## Toolchain
- **Go is not installed on this machine.** `go version` → not found. The terminal program
needs it. Under Nix, add `go` to `/etc/nixos/configuration.nix` and rebuild; do not
install it by hand.
- **Go is installed** (2026-11-10), by `nix profile install nixpkgs#go` → `go1.26.5` at
`/home/sam/.nix-profile/bin/go`. That is the quick path: it works now, and it is not part
of the system closure.
- The durable path is also prepared: `go` and `gopls` were added to
`environment.systemPackages` in `/etc/nixos/configuration.nix`. `nix flake check` passes
and the dry-run build evaluates. **The rebuild has not been run**, because `sudo` needs a
password here. One command finishes it: `sudo nixos-rebuild switch --flake /etc/nixos#nixos-desktop`.
Until then the profile copy is what runs.
## The new repository