v0.2.1
Corrects a security fix that shipped inert in 0.2.0, and the documentation that claimed it worked.
Security
- The trust mechanism in 0.2.0 could never run. pi resolves project trust before emitting
project_trustwhen it finds no trust-requiring resources, and.claude/and.mcp.jsonare not on that list, so the event never fired for the projects it targeted. The decision now happens where the project config is consumed, inmcp,hooksandsubagent. - SECURITY.md no longer claims that gap is closed by a
project_trusthandler. It describes what pi actually does and what the approval check does instead.
Fixes
- Plan mode's per-subcommand split was quote-blind, so ordinary reads were refused:
grep "foo;bar",grep 'a|b'andecho "a && b"all split mid-argument and failed the allowlist. The split now ignores separators inside quotes and fails closed on an unbalanced quote. - Tool output truncation is now one shared guard at pi's documented budget of 50KB or 2000 lines.
mcppreviously capped bytes only, so a result of thousands of short lines reached the model untouched.
Note for anyone on 0.2.0
0.2.0's trust prompt never appeared. A project shipping only .claude/ and .mcp.json was still trusted without being asked. If you rely on that prompt, upgrade.