@oh-my-pi/pi-coding-agent
Added
- Added built-in Go coding rules including
go-add-cleanup,go-bench-loop,go-exp-promoted,go-ioutil,go-join-hostport,go-new-expr,go-rand-v2, andgo-range-int
Changed
- Relaxed strict bash tool constraints regarding the use of search, grep, ls, and find commands
Fixed
- Fixed auto-compaction dead-ends by automatically triggering a shake rescue to elide oversized tails
- Improved compaction warning message to suggest running
/shake imagesfor irreducible image tails - Fixed
grep/searchdirect execution to accept JSON-array stringpathsfor string-or-array inputs. (#3873) - Fixed auto-compaction dead-ending with "Compaction freed too little context to make progress" when a single recent turn (large tool output, heavy fenced/XML block) is itself bigger than the recovery band —
findCutPointcan't cut inside one message, so the summarizer had no lever left. The guard now runs an artifact-backedshakeelide pass over the oversized tail and re-tests headroom before pausing, and the remaining warning points at/shake imagesfor image-only tails it can't elide. (#3786) - Fixed reviewer/
tasksubagents whose incrementalyield(type: ["overall_correctness"],type: ["findings"], …) carried a value that mismatched the matching property's sub-schema being silently accepted and then post-mortem rejected withschema_violation— opaquely swapping the agent's accepted output for an error blob. The yield tool now validates each incremental section'sdataagainst its top-level property's sub-schema (items schema for array-typed labels) and surfaces the same retry feedback as terminal yields, so models likedeepseek-v4-prothat emit"Correct"/"correct."/"approved"for an enum field get up to three corrective retries; the existingMAX_SCHEMA_RETRIESoverride then accepts the value withSUBAGENT_WARNING_SCHEMA_OVERRIDDENinstead of losing the entire result. Unknown labels stay unconstrained (#3870). - Fixed streaming tool-call previews (notably
write) showing an empty body for the entire streaming phase by surfacing the partial JSON already in hand on the first reveal, then pacing only subsequent growth (#3881). - Fixed hashline edit mode preserving UTF-8 BOM bytes on edited files. (#3867)
- Fixed slow local LLM streams by forwarding persisted stream timeout settings (
providers.streamFirstEventTimeoutSeconds,providers.streamIdleTimeoutSeconds) into model requests, so users can widen or disable watchdogs without environment variables. (#3878) - Fixed the bash interceptor blocking
echo/printfredirects to/dev/null,/dev/tty,/dev/stdout, and/dev/stderrdevice sinks while still directing real file writes to the write tool. (#3763) - Fixed long snapcompact sessions re-sending multi-megabyte standing image archives on every provider request by enforcing a per-request frame byte budget, letting auto-compaction fall back to context-full summaries when snapcompact output is too large, and omitting legacy over-budget frames from rebuilt LLM contexts. (#3792)
@oh-my-pi/hashline
Fixed
- Fixed hashline writes preserving UTF-8 BOM bytes when the host text decoder hides the leading
U+FEFF. (#3867)
@oh-my-pi/snapcompact
Fixed
- Fixed large snapcompact archives being reconstructed into unbounded per-request image payloads by adding a frame base64 byte budget and omitting over-budget archive frames from prompt blocks. (#3792)
What's Changed
- fix(compaction): cap snapcompact frame payloads by @roboomp in #3866
- fix(yield): validate incremental sections per-label to prevent fatal schema_violation by @roboomp in #3872
- fix(tools): accept json-array grep paths by @roboomp in #3874
- fix(coding-agent): forward stream timeout settings by @roboomp in #3879
- fix(coding-agent): seed tool-args reveal with the partial JSON already in hand by @roboomp in #3883
- fix(edit): preserve hashline UTF-8 BOM by @roboomp in #3868
Full Changelog: v16.2.7...v16.2.8