mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-11-15 10:59:32 +01:00
feat(files): follow the agent into a worktree outside the session folder
#772 made the Files panel follow an agent into a worktree inside the session's folder. A worktree beside the repository (git worktree add ../feature, or an EnterWorktree into one that already exists there) stayed unfollowed, since serving it needs a second confinement root. findOutsideWorktree() answers that case without running git. The nearest .git above the pane must name <common dir>/worktrees/<id> of the session's own repository, and that registry entry must name the candidate back (or the .git folder must be the common dir itself). It refuses /, the home folder and above, any folder holding workingDir and Docker case workspaces, and multi-user mode applies the owner's folderAllowedForUser rule. The answer is liveWorktree with outside: true and the folder's real path. The file routes serve an absolute path inside that worktree, and only while the folder still resolves to the recorded path. A relative path still resolves against workingDir alone. The browser routes such paths to the editable preview, and root-relative markdown refs resolve from the top of the worktree. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
e9b2ecd552
commit
c9b79097b0
18 files changed
+1030
-56
No files matched your search
@@ -53,11 +53,16 @@ Only the Files panel moves. The **Git** panel stays on the session's folder, so
|
||||
folder, so an `.html` file in `.claude/worktrees/<name>` opens as source rather than as a
|
||||
rendered page. A session started in the worktree does not have that limit.
|
||||
|
||||
A worktree outside the session's folder (`git worktree add ../feature`) is not followed: Codeman
|
||||
only serves files inside the session's folder. The same goes for a session started in a subfolder
|
||||
of the repository, because Claude Code puts the worktree at the top of the repository, which is
|
||||
outside that session's folder. Open such a worktree as a case of its own with Add Case > Link
|
||||
Existing.
|
||||
A worktree beside the repository (`git worktree add ../feature`, or a setup that makes
|
||||
EnterWorktree put worktrees there) is followed too, as long as the session was started at the top
|
||||
of the repository or of one of its worktrees. The panel then lists that folder with full paths,
|
||||
and you can preview and edit its files there. Codeman follows such a worktree only when the
|
||||
session's own repository lists it, and never one that is your home folder or above it, one that
|
||||
holds the session's folder, or a Docker case's workspace.
|
||||
|
||||
A session started in a subfolder of the repository follows no worktree outside that subfolder,
|
||||
including the one Claude Code creates at the top of the repository. Open such a worktree as a case
|
||||
of its own with Add Case > Link Existing.
|
||||
|
||||
## Removing one
|
||||
|
||||
|
||||
Reference in new issue
Block a user