piagent_
← /news
Oct 21, 2026community

pi's October 21 merges are all fixes: recovery keeps truncated tool results, grep ignores ripgrep config, and @-completion escapes metacharacters

pi merged three pull requests on October 21, 2026, all fixes: two from petrroll repair failure paths in recovery and grep, and rwachtler’s stops @ file completion from mangling names like [id].tsx.

#11233 closes a recovery bug that could poison the rest of a session (issue #11227). On a recoverable length stop, recovery hides the failed assistant message with a context edit, but _omitRecoveryAttempt() only hid the tool results its caller passed — and the pre-prompt check in _prepareRun() passed none. A resumed session could then carry a toolResult whose tool call was hidden; OpenAI rejects that request, and the persisted edit breaks every later prompt. The helper now finds the matching tool results itself, in the projected context between that assistant message and the next, so every caller hides call and results together — the same shape as the end-of-run path, compaction cut points, and orderToolResults() in packages/durable. The _lastAssistantToolResults plumbing and _checkCompaction()’s toolResults parameter are gone.

#11230 keeps the built-in grep tool deterministic in the face of ripgrep configuration (issue #11203). The tool spawns rg with the inherited process environment, so a RIPGREP_CONFIG_PATH containing –fixed-strings silently flipped the semantics of searches declared with literal: false — literal matches, incomplete results, no error. rg now runs with –no-config, which the author verified against ripgrep 15.2.0 fully neutralizes the variable, pinning the tool’s contract — literal, glob, limit, and the rest — on every machine. The accompanying audit clears the other built-ins: fd has no config file or env-var mechanism, bash and powershell intentionally inherit the full environment, and ls, read, edit, and write spawn nothing. .gitignore, .ignore, and global git excludes still apply to grep and find, which stays intended and documented; anyone who wants customized grep behavior can wrap the tool with an extension or call rg through the bash tool.

The day’s earliest merge, #11212 from rwachtler, repairs @ file completion for filenames that read like regex (issue #10972): slash-free queries are now escaped before they reach fd, so [id].tsx and (group).ts match literally instead of as patterns, and an unreachable segments.length === 0 guard in buildFdPathQuery goes with it.

None of the three has shipped in a release: v1.3.0 was cut on October 15, six days earlier, so they reach users with the next tag; until then, diffs and regression tests live on the pull request pages.

source: https://github.com/earendil-works/pi/pull/11233