Skip to content

v0.2.1

Choose a tag to compare

@ilovepixelart ilovepixelart released this 20 Jul 14:20
6b01aca

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_trust when it finds no trust-requiring resources, and .claude/ and .mcp.json are not on that list, so the event never fired for the projects it targeted. The decision now happens where the project config is consumed, in mcp, hooks and subagent.
  • SECURITY.md no longer claims that gap is closed by a project_trust handler. 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' and echo "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. mcp previously 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.