diff --git a/.pi/prompts/cl.md b/.pi/prompts/cl.md new file mode 100644 index 00000000..3e266834 --- /dev/null +++ b/.pi/prompts/cl.md @@ -0,0 +1,48 @@ +--- +description: Audit changelog entries before release +--- +Audit changelog entries for all commits since the last release. + +## Process + +1. **Find the last release tag:** + ```bash + git tag --sort=-version:refname | head -1 + ``` + +2. **List all commits since that tag:** + ```bash + git log ..HEAD --oneline + ``` + +3. **Read each package's [Unreleased] section:** + - packages/ai/CHANGELOG.md + - packages/tui/CHANGELOG.md + - packages/coding-agent/CHANGELOG.md + +4. **For each commit, check:** + - Skip: changelog updates, doc-only changes, release housekeeping + - Determine which package(s) the commit affects (use `git show --stat`) + - Verify a changelog entry exists in the affected package(s) + - For external contributions (PRs), verify format: `Description ([#N](url) by [@user](url))` + +5. **Cross-package duplication rule:** + Changes in `ai`, `agent` or `tui` that affect end users should be duplicated to `coding-agent` changelog, since coding-agent is the user-facing package that depends on them. + +6. **Report:** + - List commits with missing entries + - List entries that need cross-package duplication + - Add any missing entries directly + +## Changelog Format Reference + +Sections (in order): +- `### Breaking Changes` - API changes requiring migration +- `### Added` - New features +- `### Changed` - Changes to existing functionality +- `### Fixed` - Bug fixes +- `### Removed` - Removed features + +Attribution: +- Internal: `Fixed foo ([#123](https://github.com/badlogic/pi-mono/issues/123))` +- External: `Added bar ([#456](https://github.com/badlogic/pi-mono/pull/456) by [@user](https://github.com/user))` diff --git a/packages/ai/CHANGELOG.md b/packages/ai/CHANGELOG.md index 8f24f4d3..10c2c8de 100644 --- a/packages/ai/CHANGELOG.md +++ b/packages/ai/CHANGELOG.md @@ -5,6 +5,7 @@ ### Fixed - Fixed OpenAI-compatible provider feature detection to use `model.provider` in addition to URL, allowing custom base URLs (e.g., proxies) to work correctly with provider-specific settings ([#774](https://github.com/badlogic/pi-mono/issues/774)) +- Fixed Bedrock tool call IDs to use only alphanumeric characters, avoiding API errors from invalid characters ([#781](https://github.com/badlogic/pi-mono/pull/781) by [@pjtf93](https://github.com/pjtf93)) ## [0.47.0] - 2026-01-16 diff --git a/packages/coding-agent/CHANGELOG.md b/packages/coding-agent/CHANGELOG.md index 021cca96..bca2129a 100644 --- a/packages/coding-agent/CHANGELOG.md +++ b/packages/coding-agent/CHANGELOG.md @@ -6,11 +6,21 @@ - Added bash-style argument slicing for prompt templates ([#770](https://github.com/badlogic/pi-mono/pull/770) by [@airtonix](https://github.com/airtonix)) - Extension commands can provide argument auto-completions via `getArgumentCompletions` in `pi.registerCommand()` ([#775](https://github.com/badlogic/pi-mono/pull/775) by [@ribelo](https://github.com/ribelo)) +- Bash tool now displays the timeout value in the UI when a timeout is set ([#780](https://github.com/badlogic/pi-mono/pull/780) by [@dannote](https://github.com/dannote)) +- Export `getShellConfig` for extensions to detect user's shell environment ([#766](https://github.com/badlogic/pi-mono/pull/766) by [@dannote](https://github.com/dannote)) +- Added `thinkingText` and `selectedBg` to theme schema ([#763](https://github.com/badlogic/pi-mono/pull/763) by [@scutifer](https://github.com/scutifer)) ### Fixed - Fixed extension messages rendering twice on startup when `pi.sendMessage({ display: true })` is called during `session_start` ([#765](https://github.com/badlogic/pi-mono/pull/765) by [@dannote](https://github.com/dannote)) -- Fixed `PI_CODING_AGENT_DIR` env var not expanding tilde (`~`) to home directory ([#768](https://github.com/badlogic/pi-mono/pull/778) by [@aliou](https://github.com/aliou)) +- Fixed `PI_CODING_AGENT_DIR` env var not expanding tilde (`~`) to home directory ([#778](https://github.com/badlogic/pi-mono/pull/778) by [@aliou](https://github.com/aliou)) +- Fixed session picker hint text overflow ([#764](https://github.com/badlogic/pi-mono/issues/764)) +- Fixed Kitty keyboard protocol shifted symbol keys (e.g., `@`, `?`) not working in editor ([#779](https://github.com/badlogic/pi-mono/pull/779) by [@iamd3vil](https://github.com/iamd3vil)) +- Fixed Bedrock tool call IDs causing API errors from invalid characters ([#781](https://github.com/badlogic/pi-mono/pull/781) by [@pjtf93](https://github.com/pjtf93)) + +### Changed + +- Hardware cursor is now disabled by default for better terminal compatibility. Set `PI_HARDWARE_CURSOR=1` to enable (replaces `PI_NO_HARDWARE_CURSOR=1` which disabled it). ## [0.47.0] - 2026-01-16 diff --git a/packages/coding-agent/README.md b/packages/coding-agent/README.md index 60a2d71c..e6c17996 100644 --- a/packages/coding-agent/README.md +++ b/packages/coding-agent/README.md @@ -151,7 +151,7 @@ return config **Windows Terminal:** Does not support the Kitty keyboard protocol. Shift+Enter cannot be distinguished from Enter. Use Ctrl+Enter for multi-line input instead. All other keybindings work correctly. -**IntelliJ IDEA (Integrated Terminal):** The built-in terminal has limited escape sequence support. If you experience cursor visibility issues, set `PI_NO_HARDWARE_CURSOR=1` before running pi. Note that Shift+Enter cannot be distinguished from Enter in IntelliJ's terminal. Consider using a dedicated terminal emulator for the best experience. +**IntelliJ IDEA (Integrated Terminal):** The built-in terminal has limited escape sequence support. Note that Shift+Enter cannot be distinguished from Enter in IntelliJ's terminal. If you want the hardware cursor visible, set `PI_HARDWARE_CURSOR=1` before running pi (disabled by default for compatibility). Consider using a dedicated terminal emulator for the best experience. ### API Keys & OAuth diff --git a/packages/tui/CHANGELOG.md b/packages/tui/CHANGELOG.md index fe6b79e5..d363f171 100644 --- a/packages/tui/CHANGELOG.md +++ b/packages/tui/CHANGELOG.md @@ -2,13 +2,13 @@ ## [Unreleased] -### Added +### Changed -- `PI_NO_HARDWARE_CURSOR=1` environment variable to disable hardware cursor positioning for terminals with limited escape sequence support (e.g., IntelliJ IDEA's built-in terminal) +- Hardware cursor is now disabled by default for better terminal compatibility. Set `PI_HARDWARE_CURSOR=1` to enable (replaces `PI_NO_HARDWARE_CURSOR=1` which disabled it). ### Fixed -- Decode Kitty CSI-u printable sequences in the editor so shifted symbol keys (e.g., `@`, `?`) work in terminals that enable Kitty keyboard protocol +- Decode Kitty CSI-u printable sequences in the editor so shifted symbol keys (e.g., `@`, `?`) work in terminals that enable Kitty keyboard protocol ([#779](https://github.com/badlogic/pi-mono/pull/779) by [@iamd3vil](https://github.com/iamd3vil)) ## [0.47.0] - 2026-01-16 diff --git a/packages/tui/src/tui.ts b/packages/tui/src/tui.ts index d708661f..20f32446 100644 --- a/packages/tui/src/tui.ts +++ b/packages/tui/src/tui.ts @@ -208,6 +208,7 @@ export class TUI extends Container { private hardwareCursorRow = 0; // Actual terminal cursor row (may differ due to IME positioning) private inputBuffer = ""; // Buffer for parsing terminal responses private cellSizeQueryPending = false; + private useHardwareCursor = process.env.PI_HARDWARE_CURSOR === "1"; // Overlay stack for modal components rendered on top of base content private overlayStack: { @@ -981,8 +982,8 @@ export class TUI extends Container { * @param totalLines Total number of rendered lines */ private positionHardwareCursor(cursorPos: { row: number; col: number } | null, totalLines: number): void { - // PI_NO_HARDWARE_CURSOR=1 disables hardware cursor for terminals that don't handle it well - if (process.env.PI_NO_HARDWARE_CURSOR === "1") { + // PI_HARDWARE_CURSOR=1 enables hardware cursor (disabled by default due to terminal compatibility issues) + if (!this.useHardwareCursor) { this.terminal.hideCursor(); return; }