diff --git a/.yoi/tickets/open/20260608-011036-allow-spawnpod-child-workspace-cwd/artifacts/.gitkeep b/.yoi/tickets/closed/20260608-011036-allow-spawnpod-child-workspace-cwd/artifacts/.gitkeep similarity index 100% rename from .yoi/tickets/open/20260608-011036-allow-spawnpod-child-workspace-cwd/artifacts/.gitkeep rename to .yoi/tickets/closed/20260608-011036-allow-spawnpod-child-workspace-cwd/artifacts/.gitkeep diff --git a/.yoi/tickets/open/20260608-011036-allow-spawnpod-child-workspace-cwd/item.md b/.yoi/tickets/closed/20260608-011036-allow-spawnpod-child-workspace-cwd/item.md similarity index 98% rename from .yoi/tickets/open/20260608-011036-allow-spawnpod-child-workspace-cwd/item.md rename to .yoi/tickets/closed/20260608-011036-allow-spawnpod-child-workspace-cwd/item.md index e6683656..4a5cbf57 100644 --- a/.yoi/tickets/open/20260608-011036-allow-spawnpod-child-workspace-cwd/item.md +++ b/.yoi/tickets/closed/20260608-011036-allow-spawnpod-child-workspace-cwd/item.md @@ -2,13 +2,13 @@ id: '20260608-011036-allow-spawnpod-child-workspace-cwd' slug: 'allow-spawnpod-child-workspace-cwd' title: 'Allow SpawnPod to specify child cwd' -status: 'open' +status: 'closed' kind: 'task' priority: 'P2' labels: ['pod', 'spawn', 'cwd', 'worktree', 'orchestration'] -workflow_state: 'inprogress' +workflow_state: 'done' created_at: '2026-06-08T01:10:36Z' -updated_at: '2026-06-08T08:13:38Z' +updated_at: '2026-06-08T08:17:51Z' assignee: null legacy_ticket: null queued_by: 'workspace-panel' diff --git a/.yoi/tickets/closed/20260608-011036-allow-spawnpod-child-workspace-cwd/resolution.md b/.yoi/tickets/closed/20260608-011036-allow-spawnpod-child-workspace-cwd/resolution.md new file mode 100644 index 00000000..74c0d7d2 --- /dev/null +++ b/.yoi/tickets/closed/20260608-011036-allow-spawnpod-child-workspace-cwd/resolution.md @@ -0,0 +1,32 @@ +Merged and completed `SpawnPod.cwd` support. + +Summary: +- Added optional `SpawnPodInput.cwd` for child process/tool working directory. +- Validates `cwd` before launch: absolute, existing directory, and usable under the child effective direct scope. +- Preserves omitted-`cwd` behavior. +- Separates runtime workspace context from tool cwd: child runtime receives inherited `--workspace`, while requested tool cwd is passed separately as hidden `--tool-cwd`. +- `Pod` now separates `workspace_root` from `pwd`; workspace/project/Ticket/workflow/memory/Profile context uses `workspace_root`, while tools/Bash/ScopedFs use `pwd`. +- Updated maintained multi-agent/worktree guidance to use `SpawnPod.cwd` as non-authority convenience while keeping delegated scope explicit. + +Merged branch/worktree: +- Branch: `allow-spawnpod-child-workspace-cwd` +- Commits: `3dd7707`, `248744f` +- Merge commit on `develop`: `05df656 merge: allow SpawnPod child cwd` + +Validation passed after merge: +- `cargo test -p pod spawn_pod --test spawn_pod_test` +- `cargo test -p pod spawn_pod` +- `cargo check -q` +- `cargo fmt --check` +- `git diff --check` +- `cargo run -q -p yoi -- ticket doctor` +- `nix build .#yoi` + +Cleanup completed: +- Stopped coder/reviewer Pods and reclaimed scope. +- Removed `.worktree/allow-spawnpod-child-workspace-cwd`. +- Deleted branch `allow-spawnpod-child-workspace-cwd`. + +Residual notes: +- Manual callers using a worktree cwd must still delegate readable workspace context plus explicit worktree scope; `cwd` grants no authority. +- Restore behavior for already-spawned Pods with distinct tool cwd was not deeply audited beyond launch-time/nested SpawnPod behavior and remains a possible future refinement if needed. \ No newline at end of file diff --git a/.yoi/tickets/open/20260608-011036-allow-spawnpod-child-workspace-cwd/thread.md b/.yoi/tickets/closed/20260608-011036-allow-spawnpod-child-workspace-cwd/thread.md similarity index 87% rename from .yoi/tickets/open/20260608-011036-allow-spawnpod-child-workspace-cwd/thread.md rename to .yoi/tickets/closed/20260608-011036-allow-spawnpod-child-workspace-cwd/thread.md index c2abaa78..cfd1eed0 100644 --- a/.yoi/tickets/open/20260608-011036-allow-spawnpod-child-workspace-cwd/thread.md +++ b/.yoi/tickets/closed/20260608-011036-allow-spawnpod-child-workspace-cwd/thread.md @@ -381,3 +381,67 @@ Parent/human decision needs: - User has authorized merge-completion and cleanup after approved work. Proceeding to merge-completion unless post-merge validation fails. --- + + + +## Review: approve + +Final merge-completion approval after merge to `develop` and post-merge validation. + +Evidence: +- Merged branch `allow-spawnpod-child-workspace-cwd` with `--no-ff`; a merge conflict in `crates/pod/src/pod.rs` was resolved by preserving both the Intake role marker methods and the new tool/process cwd documentation. +- Reviewer `reviewer-spawnpod-child-cwd` approved after fix-loop. +- Post-merge validation passed: `cargo test -p pod spawn_pod --test spawn_pod_test`, `cargo test -p pod spawn_pod`, `cargo check -q`, `cargo fmt --check`, `git diff --check`, `cargo run -q -p yoi -- ticket doctor`, and `nix build .#yoi`. +- Coder/reviewer Pods stopped and delegated scope reclaimed. +- Merged worktree removed and branch deleted. + +This approval is for the merged main-branch result, not merely the branch-local reviewer verdict. + +--- + + + +## State changed + +Merged to `develop`, post-merge validation passed, final merge-completion approval recorded, and SpawnPod cwd branch/worktree/Pods cleaned up. + +--- + + + +## Closed + +Merged and completed `SpawnPod.cwd` support. + +Summary: +- Added optional `SpawnPodInput.cwd` for child process/tool working directory. +- Validates `cwd` before launch: absolute, existing directory, and usable under the child effective direct scope. +- Preserves omitted-`cwd` behavior. +- Separates runtime workspace context from tool cwd: child runtime receives inherited `--workspace`, while requested tool cwd is passed separately as hidden `--tool-cwd`. +- `Pod` now separates `workspace_root` from `pwd`; workspace/project/Ticket/workflow/memory/Profile context uses `workspace_root`, while tools/Bash/ScopedFs use `pwd`. +- Updated maintained multi-agent/worktree guidance to use `SpawnPod.cwd` as non-authority convenience while keeping delegated scope explicit. + +Merged branch/worktree: +- Branch: `allow-spawnpod-child-workspace-cwd` +- Commits: `3dd7707`, `248744f` +- Merge commit on `develop`: `05df656 merge: allow SpawnPod child cwd` + +Validation passed after merge: +- `cargo test -p pod spawn_pod --test spawn_pod_test` +- `cargo test -p pod spawn_pod` +- `cargo check -q` +- `cargo fmt --check` +- `git diff --check` +- `cargo run -q -p yoi -- ticket doctor` +- `nix build .#yoi` + +Cleanup completed: +- Stopped coder/reviewer Pods and reclaimed scope. +- Removed `.worktree/allow-spawnpod-child-workspace-cwd`. +- Deleted branch `allow-spawnpod-child-workspace-cwd`. + +Residual notes: +- Manual callers using a worktree cwd must still delegate readable workspace context plus explicit worktree scope; `cwd` grants no authority. +- Restore behavior for already-spawned Pods with distinct tool cwd was not deeply audited beyond launch-time/nested SpawnPod behavior and remains a possible future refinement if needed. + +---