@oh-my-pi/pi-agent-core
Breaking Changes
- Changed
pruneSupersededToolResultsto allowsupersedeKeyto be omitted so useless-result pruning can run without read-style supersede grouping
Added
- Added
pruneUselesscontrols toPruneConfigandSupersedePruneConfigso callers can toggle compaction oftoolResultentries markeduseless - Added the ability to disable useless-result pruning by setting
pruneUselessto false - Tools can flag a result contextually useless (
AgentToolResult.useless; overridable viaAfterToolCallResult.useless): the agent loop copies the flag onto the persistedToolResultMessage(errors always win), and compaction consumes it — the cache-aware supersede pass and the threshold prune blank flagged results to the exactUSELESS_NOTICEplaceholder (bypassing the protect window, skipping results smaller than the notice), shake collects them inside the protect-recent window, andserializeConversationdrops the whole tool call/result pair from summarizer input
Changed
- Changed
pruneSupersededToolResultsto allow omittedsupersedeKeywhenpruneUselessis enabled, so useless-result pruning can run without read-style supersede grouping
@oh-my-pi/pi-ai
Added
- Added the optional
ToolResultMessage.uselessflag: tools can declare a finished result contextually useless (zero matches, elapsed wait) so compaction passes may elide it once consumed. Never serialized to provider wire formats and never set together withisError.
@oh-my-pi/pi-coding-agent
Added
- Added the
compaction.dropUselesssetting (default on): tool results flagged contextually useless are elided by the per-turn cache-aware prune pass and the pre-compaction threshold prune, replaced with[Uneventful result elided]. Built-in tools flag their uneventful outcomes — zero-match/zero-resultsearch/find/ast_grep/recall(warnings included; the follow-up call has already corrected course), empty LSP lookups,jobpolls where everything is still running (plus nothing-to-wait-for and unknown-id polls),ircwait timeouts and empty inbox drains, and zero-resultgithubsearches / run-watch give-ups
Fixed
- Restored the default double-Esc behavior to open the editable message-history selector instead of
/treeso pressing Esc twice can edit a previous message again (#2396).
@oh-my-pi/snapcompact
Changed
serializeConversationnow skips tool call/result pairs whose result is flagged contextually useless (useless: true, non-error), so archived frames stop carrying zero-match searches and timed-out waits
What's Changed
Full Changelog: v15.12.0...v15.12.1