mirror of
https://github.com/Ark0N/Codeman.git
synced 2026-11-14 02:29:33 +01:00
fix(files): no outside worktree for an adopted session, and say what the routes re-check (#780)
outsideWorktreeOptions() now returns undefined for an adopted session as it does for a remote or Docker one: session.remote and session.docker are undefined on an adopted session, so it needs its own test. An adopted pane gets no paneCwd today (paneExitApplies), so nothing changes in practice; the rule stays true if that ever changes. The live-worktree.ts @fileoverview said the routes re-check only the realpath of an outside worktree. They also judge the attachment guard rules again on every request (isOutsideWorktreeRootRefused() through withGuardedOutsideWorktree()), which is what makes a confinement or blocked-tree change apply at once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
2e61ac9534
commit
028bd87494
2 files changed
+12
-7
No files matched your search
+6
-4
@@ -3054,12 +3054,14 @@ export class WebServer extends EventEmitter {
|
||||
*
|
||||
* Codeman judges these rules when the pane moves. The file routes judge the two guard rules
|
||||
* again on every request (`isOutsideWorktreeRootRefused()`), so a setting changed later applies
|
||||
* at once. The Docker and multi-user rules are judged only when the pane moves. Undefined for a remote or Docker session,
|
||||
* whose pane directory is not a path the agent works in on this host (it has no `paneCwd`
|
||||
* either, so this is belt and braces).
|
||||
* at once. The Docker and multi-user rules are judged only when the pane moves. Undefined for a remote, Docker or
|
||||
* adopted session, whose pane directory is not a path the agent works in on this host (an
|
||||
* adopted session's pane runs our tmux attach client). None of the three gets a `paneCwd`
|
||||
* either (`paneExitApplies`), so this is belt and braces; an adopted session needs its own
|
||||
* test because `session.remote` and `session.docker` are undefined on one.
|
||||
*/
|
||||
private outsideWorktreeOptions(session: Session): OutsideWorktreeOptions | undefined {
|
||||
if (session.remote || session.docker) return undefined;
|
||||
if (session.remote || session.docker || session.isAdopted) return undefined;
|
||||
return {
|
||||
dockerWorkspaces: defaultDockerWorkspaces,
|
||||
allowRoot: async (root: string): Promise<boolean> => {
|
||||
|
||||
Reference in new issue
Block a user