pi.setLabel(entryId, label) in ExtensionAPI for setting per-entry labels from extensions (#806)
Export keyHint, appKeyHint, editorKey, appKey, rawKeyHint for extensions to format keybinding hints consistently (#802 by @dannote)
Exported VERSION from the package index and updated the custom-header example. (#798 by @tallshort)
Added showHardwareCursor setting to control cursor visibility while still positioning it for IME support. (#800 by @ghoulr)
Added Emacs-style kill ring editing with yank and yank-pop keybindings, plus legacy Alt+letter handling and Alt+D delete word forward support in the interactive editor. (#810 by @Perlence)
Added ctx.compact() and ctx.getContextUsage() to extension contexts for programmatic compaction and context usage checks.
Added documentation for delete word forward and kill ring keybindings in interactive mode. (#810 by @Perlence)
Changed
Updated the default system prompt wording to clarify the pi harness and documentation scope.
Simplified Codex system prompt handling to use the default system prompt directly for Codex instructions.
Fixed
Fixed photon module failing to load in ESM context with "require is not defined" error (#795 by @dannote)
Fixed compaction UI not showing when extensions trigger compaction.
Fixed orphaned tool results after errored assistant messages causing Codex API errors. When an assistant message has stopReason: "error", its tool calls are now excluded from pending tool tracking, preventing synthetic tool results from being generated for calls that will be dropped by provider-specific converters. (#812)
Fixed Bedrock Claude max_tokens handling to always exceed thinking budget tokens, preventing compaction failures. (#797 by @pjtf93)
Fixed Claude Code tool name normalization to match the Claude Code tool list case-insensitively and remove invalid mappings.
Removed
Removed pi-internal:// path resolution from the read tool.