Problem
`spawn_agent` has a full `worktree` flag that creates a git worktree,
sets up a fresh workspace, and launches an agent with a startup command.
`dispatch_tasks` is a batch tool meant for kicking off multiple agents
at once, but it doesn't expose the `worktree` parameter at all.
An orchestrator that wants N agents in N worktrees must currently call
`spawn_agent` N times sequentially instead of using `dispatch_tasks`.
Proposed solution
Add a `worktree` boolean and the associated worktree parameters
(`base`, `branch`, `repo_path`, etc.) to each task item in
`dispatch_tasks`, mirroring the `spawn_agent` interface.
The implementation can delegate to the same `spawnAgentInWorktree`
helper already used by `spawn_agent`.
Acceptance criteria
Problem
`spawn_agent` has a full `worktree` flag that creates a git worktree,
sets up a fresh workspace, and launches an agent with a startup command.
`dispatch_tasks` is a batch tool meant for kicking off multiple agents
at once, but it doesn't expose the `worktree` parameter at all.
An orchestrator that wants N agents in N worktrees must currently call
`spawn_agent` N times sequentially instead of using `dispatch_tasks`.
Proposed solution
Add a `worktree` boolean and the associated worktree parameters
(`base`, `branch`, `repo_path`, etc.) to each task item in
`dispatch_tasks`, mirroring the `spawn_agent` interface.
The implementation can delegate to the same `spawnAgentInWorktree`
helper already used by `spawn_agent`.
Acceptance criteria