diff --git a/packages/agent/CHANGELOG.md b/packages/agent/CHANGELOG.md index 01c57437a..284d8f773 100644 --- a/packages/agent/CHANGELOG.md +++ b/packages/agent/CHANGELOG.md @@ -2,44 +2,12 @@ ## [Unreleased] -## [5.6.70] - 2026-01-18 - ## [5.6.7] - 2026-01-18 ### Fixed - Added proper tool result messages for tool calls that are aborted or error out - Ensured tool_use/tool_result pairing is maintained when tool execution fails -## [5.5.0] - 2026-01-18 - -## [5.4.2] - 2026-01-16 - -## [5.4.0] - 2026-01-15 - -## [5.3.1] - 2026-01-15 - -## [5.3.0] - 2026-01-15 - -## [5.2.1] - 2026-01-14 - -## [5.2.0] - 2026-01-14 - -## [5.1.1] - 2026-01-14 - -## [5.1.0] - 2026-01-14 - -## [5.0.1] - 2026-01-12 - -## [5.0.0] - 2026-01-12 - -## [4.9.0] - 2026-01-12 - -## [4.8.3] - 2026-01-12 - -## [4.8.0] - 2026-01-12 - -## [4.7.0] - 2026-01-12 - ## [4.6.0] - 2026-01-12 ### Changed @@ -49,40 +17,12 @@ - Fixed tool result ordering in Cursor mode by buffering results and emitting them at the correct position within assistant messages -## [4.5.0] - 2026-01-12 - -## [4.4.9] - 2026-01-12 - -## [4.4.8] - 2026-01-12 - -## [4.4.6] - 2026-01-11 - -## [4.4.5] - 2026-01-11 - -## [4.4.4] - 2026-01-11 - -## [4.3.2] - 2026-01-11 - -## [4.3.1] - 2026-01-11 - ## [4.3.0] - 2026-01-11 ### Added - Added `cursorExecHandlers` and `cursorOnToolResult` options for local tool execution with cursor-based streaming - Added `emitExternalEvent` method to allow external event injection into the agent state -## [4.2.3] - 2026-01-11 - -## [4.2.2] - 2026-01-11 - -## [4.2.1] - 2026-01-11 - -## [4.2.0] - 2026-01-10 - -## [4.1.0] - 2026-01-10 - -## [4.0.1] - 2026-01-10 - ## [4.0.0] - 2026-01-10 ### Added @@ -94,16 +34,6 @@ - `minimal` thinking level now maps to `minimal` reasoning effort instead of being treated as `low` -## [3.37.1] - 2026-01-10 - -## [3.37.0] - 2026-01-10 - -## [3.36.0] - 2026-01-10 - -## [3.35.0] - 2026-01-09 - -## [3.34.0] - 2026-01-09 - ## [3.33.0] - 2026-01-08 ### Fixed @@ -111,16 +41,6 @@ - Ensured aborted assistant responses always include an error message for callers. - Filtered thinking blocks from Cerebras request context to keep multi-turn prompts compatible. -## [3.32.0] - 2026-01-08 - -## [3.31.0] - 2026-01-08 - -## [3.30.0] - 2026-01-07 - -## [3.25.0] - 2026-01-07 - -## [3.24.0] - 2026-01-07 - ## [3.21.0] - 2026-01-06 ### Changed @@ -132,8 +52,6 @@ - Added `sessionId` option for provider caching (e.g., OpenAI Codex session-based prompt caching) - Added `sessionId` getter/setter on Agent class for runtime session switching -## [3.20.1] - 2026-01-06 - ## [3.20.0] - 2026-01-06 ### Breaking Changes @@ -150,24 +68,6 @@ - `prompt()` and `continue()` now throw when the agent is already streaming; use steering or follow-up queues instead -## [3.15.1] - 2026-01-05 - -## [3.15.0] - 2026-01-05 - -## [3.14.0] - 2026-01-04 - -## [3.13.1337] - 2026-01-04 - -## [3.9.1337] - 2026-01-04 - -## [3.8.1337] - 2026-01-04 - -## [3.7.1337] - 2026-01-04 - -## [3.6.1337] - 2026-01-03 - -## [3.5.1337] - 2026-01-03 - ## [3.4.1337] - 2026-01-03 ### Added @@ -179,22 +79,6 @@ - Fixed abort handling to properly return aborted message state when stream is interrupted mid-response -## [3.3.1337] - 2026-01-03 - -## [3.1.1337] - 2026-01-03 - -## [3.0.1337] - 2026-01-03 - -## [2.3.1337] - 2026-01-03 - -## [2.2.1337] - 2026-01-03 - -## [2.1.1337] - 2026-01-03 - -## [2.0.1337] - 2026-01-03 - -## [1.500.0] - 2026-01-03 - ## [1.341.0] - 2026-01-03 ### Added @@ -204,8 +88,6 @@ - Implemented "wait" mode to defer queue processing until the entire turn completes. - Added getter and setter methods for `interruptMode` on Agent class. -## [1.338.0] - 2026-01-03 - ## [1.337.1] - 2026-01-02 ### Changed @@ -216,8 +98,6 @@ Initial release under @oh-my-pi scope. See previous releases at [badlogic/pi-mono](https://github.com/badlogic/pi-mono). -## [0.31.1] - 2026-01-02 - ## [0.31.0] - 2026-01-02 ### Breaking Changes diff --git a/packages/ai/CHANGELOG.md b/packages/ai/CHANGELOG.md index f794614c6..029371cdc 100644 --- a/packages/ai/CHANGELOG.md +++ b/packages/ai/CHANGELOG.md @@ -2,8 +2,6 @@ ## [Unreleased] -## [5.6.70] - 2026-01-18 - ## [5.6.7] - 2026-01-18 ### Added @@ -35,24 +33,12 @@ - Simplified Codex system prompt instructions - Removed bridge text override from Codex system prompt builder -## [5.4.2] - 2026-01-16 - -## [5.4.0] - 2026-01-15 - -## [5.3.1] - 2026-01-15 - ## [5.3.0] - 2026-01-15 ### Changed - Replaced detailed Codex system instructions with simplified pi assistant instructions - Updated internal documentation references to use pi-internal:// protocol -## [5.2.1] - 2026-01-14 - -## [5.2.0] - 2026-01-14 - -## [5.1.1] - 2026-01-14 - ## [5.1.0] - 2026-01-14 ### Added @@ -66,8 +52,6 @@ - Fixed Gemini CLI provider retries with proper error handling, retry delays from headers, and empty stream retry logic - Fixed numbered list items showing "1." for all items when code blocks break list continuity (via `start` property) -## [5.0.1] - 2026-01-12 - ## [5.0.0] - 2026-01-12 ### Added @@ -79,14 +63,6 @@ - Changed Google thinking token budgets: minimal (1024), low (2048→4096), medium (8192), high (16384), xhigh (24575) - Changed `supportsXhigh()` to return true for all Anthropic models -## [4.9.0] - 2026-01-12 - -## [4.8.3] - 2026-01-12 - -## [4.8.0] - 2026-01-12 - -## [4.7.0] - 2026-01-12 - ## [4.6.0] - 2026-01-12 ### Fixed @@ -94,8 +70,6 @@ - Fixed thought signature handling in Google Gemini CLI and Vertex AI streaming to properly preserve signatures across text deltas - Fixed Google schema sanitization stripping property names that match schema keywords (e.g., "pattern", "format") from tool definitions -## [4.5.0] - 2026-01-12 - ## [4.4.9] - 2026-01-12 ### Fixed @@ -128,10 +102,6 @@ - Fixed Cursor todo updates to bridge update_todos tool calls to the local todo_write tool -## [4.3.2] - 2026-01-11 - -## [4.3.1] - 2026-01-11 - ## [4.3.0] - 2026-01-11 ### Added @@ -157,10 +127,6 @@ - Fixed Cursor conversation history serialization so subagents retain task context and can call complete -## [4.2.3] - 2026-01-11 - -## [4.2.2] - 2026-01-11 - ## [4.2.1] - 2026-01-11 ### Changed @@ -172,12 +138,6 @@ - Fixed Cloud Code Assist tool schema conversion to avoid unsupported `const` fields -## [4.2.0] - 2026-01-10 - -## [4.1.0] - 2026-01-10 - -## [4.0.1] - 2026-01-10 - ## [4.0.0] - 2026-01-10 ### Added @@ -234,29 +194,17 @@ - Enabled type coercion in JSON schema validation to automatically convert compatible types -## [3.36.0] - 2026-01-10 - ## [3.35.0] - 2026-01-09 ### Added - Enhanced error messages to include retry-after timing information from API rate limit headers -## [3.34.0] - 2026-01-09 - ## [0.42.0] - 2026-01-09 ### Added - Added OpenCode Zen provider support with 26 models (Claude, GPT, Gemini, Grok, Kimi, GLM, Qwen, etc.). Set `OPENCODE_API_KEY` env var to use. -## [0.41.0] - 2026-01-09 - -## [0.40.1] - 2026-01-09 - -## [0.40.0] - 2026-01-08 - -## [0.39.1] - 2026-01-08 - ## [0.39.0] - 2026-01-08 ### Fixed @@ -281,20 +229,12 @@ - Fixed Codex SSE error events to surface message, code, and status. ([#551](https://github.com/badlogic/pi-mono/pull/551) by [@tmustier](https://github.com/tmustier)) - Fixed context overflow detection for `context_length_exceeded` error codes. -## [0.37.8] - 2026-01-07 - -## [0.37.7] - 2026-01-07 - ## [0.37.6] - 2026-01-06 ### Added - Exported OpenAI Codex utilities: `CacheMetadata`, `getCodexInstructions`, `getModelFamily`, `ModelFamily`, `buildCodexPiBridge`, `buildCodexSystemPrompt`, `CodexSystemPrompt` ([#510](https://github.com/badlogic/pi-mono/pull/510) by [@mitsuhiko](https://github.com/mitsuhiko)) -## [0.37.5] - 2026-01-06 - -## [0.37.4] - 2026-01-06 - ## [0.37.3] - 2026-01-06 ### Added @@ -307,8 +247,6 @@ - Codex provider now always includes `reasoning.encrypted_content` even when custom `include` options are passed ([#484](https://github.com/badlogic/pi-mono/pull/484) by [@kim0](https://github.com/kim0)) -## [0.37.1] - 2026-01-05 - ## [0.37.0] - 2026-01-05 ### Breaking Changes @@ -334,26 +272,12 @@ - Vertex AI dummy value for `getEnvApiKey()`: Returns `""` when Application Default Credentials are configured (`~/.config/gcloud/application_default_credentials.json` exists) and both `GOOGLE_CLOUD_PROJECT` (or `GCLOUD_PROJECT`) and `GOOGLE_CLOUD_LOCATION` are set. This allows `streamSimple()` to work with Vertex AI without explicit `apiKey` option. The ADC credentials file existence check is cached per-process to avoid repeated filesystem access. -## [0.35.0] - 2026-01-05 - -## [0.34.2] - 2026-01-04 - -## [0.34.1] - 2026-01-04 - -## [0.34.0] - 2026-01-04 - -## [0.33.0] - 2026-01-04 - ## [0.32.3] - 2026-01-03 ### Fixed - Google Vertex AI models no longer appear in available models list without explicit authentication. Previously, `getEnvApiKey()` returned a dummy value for `google-vertex`, causing models to show up even when Google Cloud ADC was not configured. -## [0.32.2] - 2026-01-03 - -## [0.32.1] - 2026-01-03 - ## [0.32.0] - 2026-01-03 ### Added @@ -364,8 +288,6 @@ - **Gemini CLI rate limit handling**: Added automatic retry with server-provided delay for 429 errors. Parses delay from error messages like "Your quota will reset after 39s" and waits accordingly. Falls back to exponential backoff for other transient errors. ([#370](https://github.com/badlogic/pi-mono/issues/370)) -## [0.31.1] - 2026-01-02 - ## [0.31.0] - 2026-01-02 ### Breaking Changes diff --git a/packages/coding-agent/CHANGELOG.md b/packages/coding-agent/CHANGELOG.md index 5a507edc7..4985063c3 100644 --- a/packages/coding-agent/CHANGELOG.md +++ b/packages/coding-agent/CHANGELOG.md @@ -119,10 +119,6 @@ - Improved system prompt guidance for position-addressed vs content-addressed file edits - Enhanced edit tool documentation with clear use cases for bash alternatives -## [5.4.0] - 2026-01-15 - -## [5.3.1] - 2026-01-15 - ## [5.3.0] - 2026-01-15 ### Changed @@ -185,8 +181,6 @@ - Implemented `xhigh` thinking level for Anthropic models with increased reasoning limits -## [4.9.0] - 2026-01-12 - ## [4.8.3] - 2026-01-12 ### Changed @@ -229,18 +223,12 @@ - Component `invalidate()` now properly rebuilds content on theme changes - Force full re-render after returning from external editor -## [4.5.0] - 2026-01-12 - -## [4.4.9] - 2026-01-12 - ## [4.4.8] - 2026-01-12 ### Changed - Changed review finding priority format from numeric (0-3) to string labels (P0-P3) for clearer severity indication - Replaced Type.Union with Type.Literal patterns with StringEnum helper across tool schemas for cleaner enum definitions -## [4.4.6] - 2026-01-11 - ## [4.4.5] - 2026-01-11 ### Changed @@ -521,8 +509,6 @@ - Ctrl+V clipboard image paste works on Wayland sessions - Extension directories in `settings.json` respect `package.json` manifests -## [3.37.1] - 2026-01-10 - ## [3.37.0] - 2026-01-10 ### Changed @@ -980,8 +966,6 @@ - Changed status line to display usage statistics more efficiently by using centralized session statistics instead of recalculating from entries -## [3.13.1337] - 2026-01-04 - ## [3.9.1337] - 2026-01-04 ### Changed @@ -1024,8 +1008,6 @@ - Fixed potential text decoding issues in bash executor by using streaming TextDecoder instead of Buffer.toString() -## [3.6.1337] - 2026-01-03 - ## [3.5.1337] - 2026-01-03 ### Added @@ -1104,10 +1086,6 @@ - Renamed environment variables from `PI_*` to `OMP_*` prefix (e.g., `OMP_SMOL_MODEL`, `OMP_SLOW_MODEL`) - Changed model role alias prefix from `pi/` to `omp/` (e.g., `omp/slow` instead of `pi/slow`) -## [2.3.1337] - 2026-01-03 - -## [2.2.1337] - 2026-01-03 - ## [2.1.1337] - 2026-01-03 ### Added diff --git a/packages/git-tool/CHANGELOG.md b/packages/git-tool/CHANGELOG.md index ba87b8112..51a177f49 100644 --- a/packages/git-tool/CHANGELOG.md +++ b/packages/git-tool/CHANGELOG.md @@ -2,100 +2,6 @@ ## [Unreleased] -## [5.6.70] - 2026-01-18 - -## [5.6.7] - 2026-01-18 - -## [5.5.0] - 2026-01-18 - -## [5.4.2] - 2026-01-16 - -## [5.4.0] - 2026-01-15 - -## [5.3.1] - 2026-01-15 - -## [5.3.0] - 2026-01-15 - -## [5.2.1] - 2026-01-14 - -## [5.2.0] - 2026-01-14 - -## [5.1.1] - 2026-01-14 - -## [5.1.0] - 2026-01-14 - -## [5.0.1] - 2026-01-12 - -## [5.0.0] - 2026-01-12 - -## [4.9.0] - 2026-01-12 - -## [4.8.3] - 2026-01-12 - -## [4.8.0] - 2026-01-12 - -## [4.7.0] - 2026-01-12 - -## [4.6.0] - 2026-01-12 - -## [4.5.0] - 2026-01-12 - -## [4.4.9] - 2026-01-12 - -## [4.4.8] - 2026-01-12 - -## [4.4.6] - 2026-01-11 - -## [4.4.5] - 2026-01-11 - -## [4.4.4] - 2026-01-11 - -## [4.3.2] - 2026-01-11 - -## [4.3.1] - 2026-01-11 - -## [4.3.0] - 2026-01-11 - -## [4.2.3] - 2026-01-11 - -## [4.2.2] - 2026-01-11 - -## [4.2.1] - 2026-01-11 - -## [4.2.0] - 2026-01-10 - -## [4.1.0] - 2026-01-10 - -## [4.0.1] - 2026-01-10 - -## [4.0.0] - 2026-01-10 - -## [3.37.1] - 2026-01-10 - -## [3.37.0] - 2026-01-10 - -## [3.36.0] - 2026-01-10 - -## [3.35.0] - 2026-01-09 - -## [3.34.0] - 2026-01-09 - -## [3.33.0] - 2026-01-08 - -## [3.32.0] - 2026-01-08 - -## [3.31.0] - 2026-01-08 - -## [3.30.0] - 2026-01-07 - -## [3.25.0] - 2026-01-07 - -## [3.24.0] - 2026-01-07 - -## [3.21.0] - 2026-01-06 - -## [3.20.1] - 2026-01-06 - ## [3.20.0] - 2026-01-06 ### Breaking Changes diff --git a/packages/tui/CHANGELOG.md b/packages/tui/CHANGELOG.md index f59d78757..5e5852e27 100644 --- a/packages/tui/CHANGELOG.md +++ b/packages/tui/CHANGELOG.md @@ -2,8 +2,6 @@ ## [Unreleased] -## [5.6.70] - 2026-01-18 - ## [5.6.7] - 2026-01-18 ### Added @@ -31,25 +29,11 @@ - Fixed backspace handling with additional codepoint support - Fixed Alt+letter key combinations for better recognition -## [5.5.0] - 2026-01-18 - -## [5.4.2] - 2026-01-16 - -## [5.4.0] - 2026-01-15 - ## [5.3.1] - 2026-01-15 ### Fixed - Fixed rendering issues on Windows by preventing re-entrant renders -## [5.3.0] - 2026-01-15 - -## [5.2.1] - 2026-01-14 - -## [5.2.0] - 2026-01-14 - -## [5.1.1] - 2026-01-14 - ## [5.1.0] - 2026-01-14 ### Added @@ -72,16 +56,6 @@ - Fixed numbered list items showing "1." for all items when code blocks break list continuity - Fixed width overflow protection in overlay compositing to prevent TUI crashes -## [5.0.1] - 2026-01-12 - -## [5.0.0] - 2026-01-12 - -## [4.9.0] - 2026-01-12 - -## [4.8.3] - 2026-01-12 - -## [4.8.0] - 2026-01-12 - ## [4.7.0] - 2026-01-12 ### Fixed @@ -100,31 +74,11 @@ - Rendering optimizations: only re-render changed lines - Refactor input component to use keybindings manager -## [4.5.0] - 2026-01-12 - -## [4.4.9] - 2026-01-12 - -## [4.4.8] - 2026-01-12 - -## [4.4.6] - 2026-01-11 - -## [4.4.5] - 2026-01-11 - ## [4.4.4] - 2026-01-11 ### Fixed - Fixed Ctrl+Enter sequences to insert new lines in the editor -## [4.3.2] - 2026-01-11 - -## [4.3.1] - 2026-01-11 - -## [4.3.0] - 2026-01-11 - -## [4.2.3] - 2026-01-11 - -## [4.2.2] - 2026-01-11 - ## [4.2.1] - 2026-01-11 ### Changed @@ -135,15 +89,11 @@ - Fixed editor redraw glitch when canceling autocomplete suggestions - Fixed `fd` tool detection to automatically find `fd` or `fdfind` in PATH when not explicitly configured -## [4.2.0] - 2026-01-10 - ## [4.1.0] - 2026-01-10 ### Added - Added persistent prompt history storage support via `setHistoryStorage()` method, allowing history to be saved and restored across sessions -## [4.0.1] - 2026-01-10 - ## [4.0.0] - 2026-01-10 ### Added @@ -168,36 +118,12 @@ - `matchesKey()` now correctly matches Kitty protocol sequences for unmodified letter keys - Crash when pasting text with trailing whitespace exceeding terminal width through Markdown rendering -## [3.37.1] - 2026-01-10 - -## [3.37.0] - 2026-01-10 - -## [3.36.0] - 2026-01-10 - -## [3.35.0] - 2026-01-09 - -## [3.34.0] - 2026-01-09 - -## [3.33.0] - 2026-01-08 - ## [3.32.0] - 2026-01-08 ### Fixed - Fixed text wrapping allowing long whitespace tokens to exceed line width -## [3.31.0] - 2026-01-08 - -## [3.30.0] - 2026-01-07 - -## [3.25.0] - 2026-01-07 - -## [3.24.0] - 2026-01-07 - -## [3.21.0] - 2026-01-06 - -## [3.20.1] - 2026-01-06 - ## [3.20.0] - 2026-01-06 ### Added @@ -229,10 +155,6 @@ - Added `SymbolTheme` interface for customizing UI symbols including cursors, borders, spinners, and box-drawing characters - Added support for custom spinner frames in the Loader component -## [3.14.0] - 2026-01-04 - -## [3.13.1337] - 2026-01-04 - ## [3.9.1337] - 2026-01-04 ### Added @@ -245,39 +167,11 @@ - Changed Editor component to use proper box borders with vertical side borders instead of horizontal-only borders - Changed cursor style from block to thin blinking bar (▏) at end of line -## [3.8.1337] - 2026-01-04 - -## [3.7.1337] - 2026-01-04 - -## [3.6.1337] - 2026-01-03 - -## [3.5.1337] - 2026-01-03 - -## [3.4.1337] - 2026-01-03 - -## [3.3.1337] - 2026-01-03 - -## [3.1.1337] - 2026-01-03 - -## [3.0.1337] - 2026-01-03 - -## [2.3.1337] - 2026-01-03 - -## [2.2.1337] - 2026-01-03 - -## [2.1.1337] - 2026-01-03 - -## [2.0.1337] - 2026-01-03 - ## [1.500.0] - 2026-01-03 ### Added - Added `getText()` method to Text component for retrieving current text content -## [1.341.0] - 2026-01-03 - -## [1.338.0] - 2026-01-03 - ## [1.337.1] - 2026-01-02 ### Added diff --git a/scripts/release.ts b/scripts/release.ts index 5dae303c5..3f82d3f51 100755 --- a/scripts/release.ts +++ b/scripts/release.ts @@ -56,6 +56,18 @@ async function watchCI(): Promise { } } +function hasUnreleasedContent(content: string): boolean { + const unreleasedMatch = content.match(/## \[Unreleased\]\s*\n([\s\S]*?)(?=## \[\d|$)/); + if (!unreleasedMatch) return false; + const sectionContent = unreleasedMatch[1].trim(); + return sectionContent.length > 0; +} + +function removeEmptyVersionEntries(content: string): string { + // Remove version entries that have no content (just whitespace until next ## [ or EOF) + return content.replace(/## \[\d+\.\d+\.\d+\] - \d{4}-\d{2}-\d{2}\s*\n(?=## \[|\s*$)/g, ""); +} + async function updateChangelogsForRelease(version: string): Promise { const date = new Date().toISOString().split("T")[0]; @@ -67,11 +79,14 @@ async function updateChangelogsForRelease(version: string): Promise { continue; } - // Replace [Unreleased] with version and date - content = content.replace("## [Unreleased]", `## [${version}] - ${date}`); + // Only create version entry if [Unreleased] has content + if (hasUnreleasedContent(content)) { + content = content.replace("## [Unreleased]", `## [${version}] - ${date}`); + content = content.replace(/^(# Changelog\n\n)/, `$1## [Unreleased]\n\n`); + } - // Add new [Unreleased] section after # Changelog header - content = content.replace(/^(# Changelog\n\n)/, `$1## [Unreleased]\n\n`); + // Clean up any existing empty version entries + content = removeEmptyVersionEntries(content); await Bun.write(changelog, content); console.log(` Updated ${changelog}`);