[0.15.0] - 2026-04-16
Added
- Added
systemPromptModeso subagents can replace Pi's base prompt with--system-promptinstead of always appending with--append-system-prompt, shipping the core of issue#85from @isvlasov. - Added
inheritProjectContextandinheritSkillsso child runs can keep or strip inherited project instruction files (AGENTS.md,CLAUDE.md, etc.) and Pi's discovered skills block.
Changed
- Builtin subagents now default to
systemPromptMode: replace, with builtindelegatestaying onappend. - Builtin agents now inherit project-level instruction files by default unless the user overrides them.
- Builtin agent prompts were rewritten for the new prompt-assembly model, and builtin
reviewer/context-buildertool lists now match their documented behaviors. This rounds out the prompt-assembly work merged in PR#92, which closed issue#85. Thanks @isvlasov.
Fixed
- Cross-platform tests now avoid machine-specific Pi install paths, align homedir-sensitive settings discovery on Windows CI, and use deterministic async config-write failure fixtures.
- Request-level
cwdhandling is now consistent across management and execution paths.subagentrequests that target a worktree or nested checkout now resolve project agents, project settings, and builtin agent overrides from the requestedcwdinstead of accidentally inheriting the parent session's repo. This fixes issue#83. Thanks @hakin19 for the report. - Relative child
cwdvalues now resolve from the already-selected request/sharedcwdacross sync runs, async/background runs, chain steps, and top-level parallel tasks. This fixes cases where values likepackages/appwere interpreted from the wrong base directory, which could break skill lookup, output paths, and child process spawning. - Worktree parallel-mode validation now compares task-level
cwdoverrides after relative-path resolution, so equivalent paths like.no longer trigger false conflict errors against the shared worktree base. - Internal TypeScript source imports in the touched runtime paths now consistently use
.tslocal specifiers, matching the repo's direct TypeScript runtime loading conventions and reducing drift between adjacent modules.