@oh-my-pi/pi-ai
Fixed
- Fixed Cursor sessions exposing
ast_edit(and other staged-previewxd://devices) without a reachable resolver: the built-inwritetool — which carries thexd://resolve/xd://rejecttransport that finalizes a staged preview — was filtered out of Cursor's forwarded catalog, so previews could never be resolved and the session aborted after three forcedwriteturns.writeis now re-included in the forwarded catalog whenever pi-agent devices are advertised (#6536). - Fixed OpenAI Responses and chat-completions streams honoring per-model first-event watchdog policy, allowing local llama.cpp-style backends to process arbitrarily large prompts without a premature client cancellation (#6524).
@oh-my-pi/pi-catalog
Fixed
- Disabled the first-event watchdog for local OpenAI-compatible backends while retaining the 300-second inter-event watchdog, so long llama.cpp prompt prefill is not canceled and retried (#6524).
@oh-my-pi/pi-coding-agent
Fixed
- Fixed the in-process
findbuiltin's-exec/-execdirchildren inheriting the omp process's real stdout/stderr, so commands likefind … -exec ls -ld {} \;spammed their output straight into the terminal (corrupting the TUI) instead of the tool's captured output, and bypassed shell redirects. Exec children now stream stdout/stderr back through the shell's scope streams (matchingxargs/ifne) and run with the shell's exported environment (env_clear+ scope snapshot) instead of the host process environment. - Fixed
ast_editerroring with "langis required" — an argument that no longer exists in the tool schema — whenpathsresolved to files of multiple languages (e.g. a crate directory with.rs+.toml). Mixed-language paths now rewrite per file: each file is parsed in its own inferred language, patterns are compiled per language, and a pattern that doesn't parse in some matched language simply skips those files. - Fixed the
retaintool's TUI renderer crashing when streaming arguments temporarily expose a non-arrayitemsvalue (#6528). - Fixed Edit and Write tools failing with
Settings not initializedin isolated sessions by using each tool session's settings for generated-file guards, with safe schema defaults for standalone guards and inline-image rendering (#6549).
@oh-my-pi/pi-natives
Changed
astEditwithout an explicitlangnow rewrites mixed-language paths per file (each file parsed in its own inferred language, patterns compiled per language) instead of erroring when the path/glob spans multiple languages. A pattern that parses in no discovered language is still reported (or fails the call underfailOnParseError); files whose language cannot be inferred surface as per-file parse errors instead of aborting the whole call.
What's Changed
- fix(cursor): forward write transport so xd:// previews resolve by @roboomp in #6538
- fix(coding-agent): use session settings in file guards by @roboomp in #6551
- fix(ai): disable local first-event watchdogs by @roboomp in #6525
- fix(coding-agent): guard retain renderer streaming args by @roboomp in #6529
Full Changelog: v17.1.2...v17.1.3