Fixed
--no-skillswas missing from the async runner (subagent-runner.ts). PR #41 added skill scoping to the sync path but the async runner spawns pi through its own code path, so background subagents with explicit skills still got the full<available_skills>catalog injected.defaultSessionDirandsessionDirwith~paths (e.g."~/.pi/agent/sessions/subagent/") were not expanded —path.resolve("~/...")treats~as a literal directory name. Added tilde expansion matching the existing pattern inskills.ts.- Multiple subagent calls within a session would collide when
defaultSessionDirwas configured, since it wasn't appending a uniquerunId. BothdefaultSessionDirand parent-session-derived paths now getrunIdappended.
Removed
- Removed exported
resolveSessionRoot()function andSessionRootInputinterface. These were introduced by PR #46 but never called in production — the inline resolution logic diverged (always-on sessions,runIdappended) making the function's contract misleading. Associated tests and dead code from PR #47 scaffolding also removed frompath-handling.test.ts.