You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(go/windows): root the default clone workspace under an absolute base (#110)
* fix(go): root the default workspace under an absolute base on Windows (#107)
A build given only repo_url derived its clone target under a hardcoded
"/workspaces" base. On the Windows Go node that is a drive-relative path
(no drive letter), which the node's spawn context resolves unpredictably:
MkdirAll appears to succeed but `git clone` then fails with "destination
path ... already exists and is not an empty directory".
Add internal/workspace.Root(): SWE_WORKSPACE_ROOT override on every
platform, else %LOCALAPPDATA%\agentfield\workspaces on Windows (temp-dir
fallback when LOCALAPPDATA is empty), else exactly "/workspaces" for
Docker parity. Wire it into the three default-derivation sites (orch
build single/multi-repo, orch resolve, fast build) via filepath.Join so
the name/suffix patterns stay byte-identical.
Ref: #107
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(go): create only the parent dir before git clone (#107)
git clone refuses a destination it did not create with "already exists
and is not an empty directory" when it cannot re-open a node-created leaf
dir from the Windows spawn context. Pre-creating the clone target's leaf
therefore reintroduces the very failure issue #107 is about.
In the orch build and resolve clone paths (including the reset-failed
re-clone), create only filepath.Dir(repoPath) and let git clone create
the leaf. The fresh-init default case and the fast node keep creating the
leaf — they git-init in place rather than cloning.
Ref: #107
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(py): mirror the Windows workspace-root fix on the Python node (#107)
The Python node runs on Windows too and derived the same drive-relative
"/workspaces/..." defaults. Add _workspace_root() in execution/schemas.py
(SWE_WORKSPACE_ROOT override; else %LOCALAPPDATA%\agentfield\workspaces
on nt with a temp-dir fallback; else "/workspaces") and use it at every
default-derivation site: build single/multi-repo, resolve, and fast build.
Also stop pre-creating the clone destination leaf before git clone in the
single-repo, re-clone, resolve, and multi-repo clone_repos paths — create
only the parent so git clone owns the leaf, matching the Go node. Update
the build-isolation source assertions to the os.path.join form and add
_workspace_root unit tests (override, nt LOCALAPPDATA/tempdir, posix).
Ref: #107
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
0 commit comments