@oh-my-pi/pi-agent-core
Breaking Changes
- Renamed owned tool-calling options from
toolCallSyntax/exampleSyntaxtodialect/exampleDialect. - Changed compaction conversation serialization to use the target model's native dialect turn, thinking, tool-call, and tool-result envelopes when a dialect is selected.
- Renamed the owned dialect environment variable from
PI_OWNED_TOOLStoPI_DIALECT.
Added
- Added
onTurnEndhook support (setOnTurnEnd/onTurnEnd) to run awaited per-turn bookkeeping with current messages before the next model request and skip callback execution for aborted or error turns
Changed
- Renamed
toolCallSyntaxoption todialectin AgentOptions and AgentLoopConfig - Updated conversation serialization to use dialect's native transcript rendering when a dialect is selected
- Changed internal references from
ToolCallSyntaxtype toDialecttype across agent loop and compaction modules
@oh-my-pi/pi-ai
Breaking Changes
- Renamed the public dialect entrypoint from
@oh-my-pi/pi-ai/grammarto@oh-my-pi/pi-ai/dialect. - Renamed grammar dialect identifiers from
ToolCallSyntaxtoDialect, renamed theGrammarinterface toDialectDefinition, and renamedGrammar.syntaxtoDialectDefinition.dialect. - Added
DialectDefinition.renderThinkingandDialectDefinition.renderTranscriptso dialect implementations serialize complete native chat transcripts, not just tool call/result blocks.
Added
- Added
renderTranscriptmethod to dialect definitions for serializing complete native chat transcripts - Added
renderThinkingmethod to dialect definitions for rendering thinking/reasoning blocks - Added support for 11 dialect implementations: Anthropic, DeepSeek, Gemini, Gemma, GLM, Harmony, Hermes, Kimi, Pi-native, Qwen3, and XML
- Added
createInbandScannerfactory function to instantiate dialect-specific scanners - Added
getDialectDefinitionfunction to retrieve dialect implementations by name - Added
renderToolCatalogandrenderInbandToolPromptfunctions for tool catalog rendering - Added
renderToolInventoryfunction to generate human-readable per-tool documentation with examples - Added
renderToolExamplesfunction to render tool usage examples in the model's native dialect - Added
encodeInbandToolHistoryfunction to encode tool call history in dialect-specific format - Added
wrapInbandToolStreamfunction to process streaming responses with in-band tool call parsing - Added
ThinkingInbandScannerfor parsing thinking/reasoning blocks across dialects - Added
OwnedStreamclass for managing dialect-aware streaming with tool call events - Added in-band thinking channels to every dialect that was missing one:
gemini(a```thinkingfence mirroring```tool_code),gemma(its native<|channel>thought…<channel|>reasoning channel),kimi(<think>…</think>), andpi(<thinking>…</thinking>). Each scanner now parses reasoning into thinking events instead of leaking chain-of-thought into the visible reply, and every dialect'srenderThinkingis a real channel that round-trips back through its scanner (no passthrough renderers).
Changed
- Moved public dialect entrypoint from
@oh-my-pi/pi-ai/grammarto@oh-my-pi/pi-ai/dialectin package exports - Updated internal imports in
stream-markup-healing.tsto use new dialect module path - Changed
renderToolInventoryto demote a tool description's own markdown headers by one level when it contains a top-level#header, so they nest under the wrapping# Tool: <name>heading instead of reading as sibling sections. Descriptions that already start at##and headers inside fenced code blocks are left untouched.
Fixed
- Fixed Gemini, Gemma, Kimi, and Pi in-band scanners to respect
parseThinking: false, leaving private reasoning markers in visible text when parsing is disabled - Fixed thinking-channel parsing for streaming Gemini, Gemma, Kimi, and Pi outputs so split or partial
<thinking>blocks no longer leak into visible replies - Fixed in-band thinking finalization and Kimi stream-healing interactions so leaked
<think>blocks are preserved when structured tool calls are present, not duplicated when explicit reasoning is present, and closed on stream flush.
Removed
- Removed
src/grammar/factory.ts(replaced bysrc/dialect/factory.ts) - Removed
src/grammar/rendering.ts(functionality moved tosrc/dialect/rendering.ts) - Removed
src/grammar/xml.ts(replaced bysrc/dialect/xml.ts)
@oh-my-pi/pi-catalog
Breaking Changes
- Renamed the catalog-owned tool syntax API from
ToolCallSyntax/FALLBACK_TOOL_SYNTAX/preferredToolSyntaxtoDialect/FALLBACK_DIALECT/preferredDialect.
@oh-my-pi/pi-coding-agent
Breaking Changes
- Renamed the SDK tool format type and resolver from
ToolCallFormat/resolveToolCallSyntaxtoDialectFormat/resolveDialect, and the agent option fromtoolCallSyntaxtodialect. - Changed
/dumptranscript output to render messages with the selected model's native dialect turn and thinking envelopes instead of markdown role headings.
Added
- Added
advisor.syncBacklogsetting (off,1,3,5) to pause turn completion until advisor review backlog drops below the threshold, with a maximum 30-second wait - Added advisor backlog synchronization at turn end when enabled so the main session stays aligned with the advisor's pending review turns
- Added automatic discovery of WATCHDOG.md files from user and project locations so advisor guidance from local watchdog instructions is appended to its system prompt
- Added
/advisor on,/advisor off,/advisor status, and/advisor dump [raw]slash-command subcommands to manage the advisor at runtime - Added
advisor.enabledandadvisor.subagentssettings to enable the advisor and extend it to spawned task/eval subagents - Added advisor status badge (
++in success color) to the status line when an advisor is active - Added
/dump [raw]flag to toggle between compact and legacy uncompact transcript output formats - Added
/advisor on,/advisor off, and/advisor statusslash-command subcommands to enable or disable the advisor at runtime and view advisor status metrics - Added a passive advisor: assign a second model to the
advisorrole and enableadvisor.enabledto have it silently review each primary turn and inject severity-tagged advice notes via theadvisetool. Anitrides the non-interrupting aside queue (batched into one card at the next step boundary), while aconcernorblockerinterrupts the running agent through the steering channel — aborting in-flight tools, or resuming the agent when it has already yielded — so high-severity advice is acted on immediately. Advice renders in the primary transcript as a distinctAdvisorcard, and the advisor gets hard-isolated read-onlyread/search/findaccess — bound to its ownToolSessionso its reads never touch the primary's snapshot/seen-lines caches — to investigate the workspace before weighing in. The status line shows a++badge (in the success color, kept distinct from the model name) after the model name while an advisor is active, and/advisor dumpcopies the advisor's own transcript to the clipboard. Advisors are created only for the top-level session by default; enableadvisor.subagentsto extend them to spawned task/eval subagents. - Animated "thinking" pulse (
·‥…‥) shown in place of a hidden thinking block while the model is actively reasoning, so streaming progress is visible even withhideThinkingBlockenabled.
Changed
- Changed advisor prompting guidance to emit at most one
adviseper update and to prefer silence when the agent is on track - Changed
/dumpdefault output to compact markdown format; use/dump rawfor the legacy uncompact format - Changed
/dumpand/advisor dumpto default to compact transcript output and accept an optionalrawflag for the legacy uncompact format - Session dump output now renders message history using the model's native dialect turn envelope instead of markdown role headings
- Changed RPC, RPC-UI, and ACP hosts to default the advisor settings off instead of inheriting a user's interactive-session advisor preference.
Fixed
- Fixed advisor backlog tracking so failed advice prompts do not stall catch-up indefinitely by dropping pending backlog after repeated consecutive failures
- Fixed backlog accounting to decrement only after successful advisor prompts so sync waits correctly reflect advisor progress
- Fixed advisor context batching to still send pending review updates when context maintenance fails instead of dropping the batch
- Fixed explicit advisor enablement to clear protocol-default overrides so enabling the advisor applies immediately
- Fixed advisor message card notes getting truncated to two lines when the card is collapsed.
- Fixed advisor context handling to maintain its token budget by promoting or compacting/restarting advisor context while preserving advisor reasoning-off settings.
- Fixed
startup.quietleaving MCP and LSP startup status events visible during launch ().
What's Changed
- fix: align tool cache paths with XDG dirs by
- fix(coding-agent): respect startup.quiet for startup statuses by
Full Changelog: v15.13.3...v16.0.0
Community-Analysen & Experten-Meinungen 0
Verwandte Story-Cluster & Quellen (Vektor-KI)
Ähnliche Beiträge
Auch interessante Nachrichten v16.0.0
Thematisch verwandte Begriffe: v1600 · 6 Treffer
The Gemini desktop app is now available for Windows
Setting up live captions stuck in Windows 11
Burn Out, Or Fade Away
Microsoft tried to kill Paint in Windows for a successor nobody wanted, then killed the successor
Windows 11's latest update broke my speakers, and I'm not alone
Videos werden geladen ...
Beiträge werden geladen ...
Videos werden geladen ...
SOCIAL SHARE CARD GENERATOR