Reviewed commits and changelog entries since last release.
UnderstandSummarized changelog updates for relevant packages.
EditCommitted and pushed changelog changes.
EditPerformed patch release and published packages.
BuildAudit changelog entries for all commits since the last release.
Find the last release tag:
git tag --sort=-version:refname | head -1List all commits since that tag:
git log <tag>..HEAD --onelineRead each package's [Unreleased] section:
For each commit, check:
git show <hash> --stat)Description ([#N](url) by [@user](url))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.
Add New Features section after changelog fixes:
### New Features section at the start of ## [Unreleased] in packages/coding-agent/CHANGELOG.md.Report:
Sections (in order):
### Breaking Changes - API changes requiring migration### Added - New features### Changed - Changes to existing functionality### Fixed - Bug fixes### Removed - Removed featuresAttribution:
Fixed foo ([#123](https://github.com/badlogic/pi-mono/issues/123))Added bar ([#456](https://github.com/badlogic/pi-mono/pull/456) by [@user](https://github.com/user))Let me start by finding the last release tag and then listing all commits since that tag.
>git tag --sort=-version:refname | head -1The last release tag is v0.50.1. Now let me list all commits since that tag.
>git log v0.50.1..HEAD --onelineNow I have the list of commits. Let me read the [Unreleased] sections of each package's CHANGELOG.md to see what entries already exist.
Now I need to analyze each commit to see if it's properly covered in the changelogs. Let me go through them one by one and check what files they affect.
Let me check the stats for each commit to determine which packages they affect:
>for commit in e44a37c9 06a7fAudit changelog entries for all commits since the last release.
Find the last release tag:
git tag --sort=-version:refname | head -1List all commits since that tag:
git log <tag>..HEAD --onelineRead each package's [Unreleased] section:
For each commit, check:
git show <hash> --stat)Description ([#N](url) by [@user](url))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.
Add New Features section after changelog fixes:
### New Features section at the start of ## [Unreleased] in packages/coding-agent/CHANGELOG.md.Report:
Sections (in order):
### Breaking Changes - API changes requiring migration### Added - New features### Changed - Changes to existing functionality### Fixed - Bug fixes### Removed - Removed featuresAttribution:
Fixed foo ([#123](https://github.com/badlogic/pi-mono/issues/123))Added bar ([#456](https://github.com/badlogic/pi-mono/pull/456) by [@user](https://github.com/user))The user wants me to audit changelog entries for all commits since the last release. Let me follow the process step by step.
Let me start.
>git tag --sort=-version:refname | head -1Now let me get all commits since v0.50.1
>git log v0.50.1..HEAD --onelineThat's a lot of commits. Now let me read the [Unreleased] sections from each changelog.
Now I have all the changelogs. Let me go through each commit and verify changelog entries.
Let me organize the commits and check them one by one:
bea3ab63 feat: add autocompleteMaxVisible setting for configurable dropdown height (#972) - This is a duplicate of the next commit (probably a merge commit)
b212314f feat: add autocompleteMaxVisible setting for configurable dropdown height - coding-agent and tui
06a7fedd docs(coding-agent): add changelog entry for #1039 - changelog update, skip
d8808733 create headerContainer for custom header (#1039) - coding-agent fix
b54d689e A couple of autocomplete improvements (#1024) - tui changes
d57a26c8 fix(tui): remove backslash input buffering (#1037) - tui fix
bac57f81 fix: preserve external settings.json edits on reload (#1046) - coding-agent fix
c808de60 feat(ai): add Hugging Face provider support - ai feature
f3cfb7e1 feat: add /files command to list session file operations - coding-agent feature
1b6a1475 feat(ai): add PI_CACHE_RETENTION env var for extended prompt caching - ai feature
605f6f49 fix(ai): normalize pipe-separated tool call IDs for cross-provider handoff - ai fix
4f004ade fix(coding-agent): reset retry counter after each successful LLM response - coding-agent fix
25707f9a fix(ai): 429 rate limit errors no longer trigger auto-compaction - ai fix
a373dce7 fix(coding-agent): improve thinking defaults in footer - coding-agent fix
81be8132 feat(tui,coding-agent): add shell-style keybindings alt+b, alt+f, ctrl+d - tui and coding-agent feature
5ef79459 Closes #1041, incorrect .md file name in warning messages. - coding-agent fix
d21cbde8 fix(coding-agent): empty array in package filter now disables all resources - coding-agent fix
8b5c81f2 fix(ai): preserve input token counts from message_start in Anthropic provider - ai fix
4f9dedd
d fix(ai): detect DeepSeek URLs and disable unsupported developer role- ai fix 20.ee7c0a7d fix(ai): handle sensitive stop_reason from Anthropic API (fixes #978)- ai fix 21.41d2c7ff OpenAI completions toolChoice fix (#998)- ai fix 22.dd854c4a feat(web-ui): export CustomProviderCard, ProviderKeyInput, AbortedMessage, ToolMessageDebugView (fixes #1015)- web-ui feature 23.7347d755 Revert "feat(web-ui): export CustomProviderCard...- revert 24.ec0aa5c3 feat(web-ui): export CustomProviderCard...- re-applied after revert 25.e bd8e895 fix: typos in comments (fixes #1016)- minor fix to skip. Several tui performance improvements follow: row dividers and minimum width rendering, cursor position extraction optimizations scanning in reverse order and early exit when cursor is above viewport. A new RPC commandget_commands` was added for headless clients.
0ad189f1 Add get_commands RPC for headless clients (#995) - coding-agent feature67b582f fix(coding-agent): hide provider in footer when terminal is narrow (#981) - coding-agent fix1224b311 feat(tui): auto-apply single suggestion in force file autocomplete (#993) - tui feature2cc25448 Add [Unreleased] section for next cycle - housekeeping, skipNow verifying changelog entries for packages/ai [Unreleased]: Hugging Face provider addition, PI_CACHE_RETENTION environment variable, cross-provider handoff fix, 429 rate limit error handling, and sensitive stop_reason fix all align with their corresponding commits.
Also checking: DeepSeek URL detection fix and Anthropic input token count correction are accounted for. However, 41d2c7ff OpenAI completions toolChoice fix (#998) needs verification.
For packages/tui [Unreleased]: autocompleteMaxVisible option and alt+b, alt+f, ctrl+d keybindings are documented. But I'm noticing d57a26c8 fix(tui): remove backslash input buffering (#1037) and b54d689e A couple of autocomplete improvements (#1024) appear to be missing from the changelog.
Several other tui improvements aren't accounted for: table rendering enhancements with row dividers and min width, cursor position extraction optimizations (scanning bottom terminal height lines, early-out when cursor is above viewport, reverse order scanning), and the auto-apply single suggestion feature for force file autocomplete.
For packages/coding-agent [Unreleased], external settings.json edits and custom header with quietStartup fixes are present, plus the autocomplete feature is being added.
Missing from coding-agent are file command additions, thinking defaults improvements in the footer, markdown filename warning corrections, RPC get_commands for headless clients, and provider footer visibility adjustments.
Let me check the commits that might have missing entries:
>git show d57a26c8 --stat --oneline>git show b54d689e --stat --oneline>git show e7b9209d --stat --oneline>git show a8f33fd6 --stat --oneline>git show 1224b311 --stat --oneline>git show f3cfb7e1 --stat --oneline>git show a373dce7 --stat --oneline>git show 5ef79459 --stat --oneline>git show 0ad189f1 --stat --oneline>git show c67b582f --stat --oneline>git show 41d2c7ff --stat --onelineNow let me also check the web-ui commits:
>git show dd854c4a --stat --oneline>git show fb693fbc --stat --oneline>git show 9d47747f --stat --onelineNow let me check if web-ui has an unreleased section:
Now let me check the f3cfb7e1 commit more carefully - it's adding a local extension file not in packages/, so it doesn't need a changelog entry.
Let me summarize what's missing:
packages/ai:
41d2c7ff OpenAI completions toolChoice fix (#998) - This is an external PR, needs proper attributionpackages/tui:
d57a26c8 fix(tui): remove backslash input buffering (#1037) - needs entryb54d689e A couple of autocomplete improvements (#1024) - needs entrye7b9209d fix(tui): improve table rendering with row dividers and min width (#997) - needs entryfb693fbc perf(tui): scan only bottom terminal height lines in extractCursorPosition - perf improvements, no PR#9d47747f perf(tui): early-out extractCursorPosition when cursor is above visible viewport - perf improvements, no PR#a8f33fd6 perf(tui): optimized extractCursorPosition to scan lines in reverse order (#1004) - needs entry1224b311 feat(tui): auto-apply single suggestion in force file autocomplete (#993) - needs entrypackages/coding-agent:
Missing: f3cfb7e1 feat: add /files command to list session file operations - This is a local extension addition, not a package change, skip
Missing: a373dce7 fix(coding-agent): improve thinking defaults in footer - internal improvement, could be documented
Missing: 5ef79459 Closes #1041, incorrect .md file name in warning messages. - needs entry
Missing: 0ad189f1 Add get_commands RPC for headless clients (#995) - needs entry
Missing: c67b582f fix(coding-agent): hide provider in footer when terminal is narrow (#981) - needs entry
packages/web-ui:
dd854c4a feat(web-ui): export CustomProviderCard, ProviderKeyInput, AbortedMessage, ToolMessageDebugView (fixes #1015) - needs entryI should verify the PR authors for external contributions to ensure proper attribution.
Let me check the PR authors for proper attribution:
>gh pr view 1037 --json author,title 2>/dev/null || echo "Not a PR">gh pr view 1024 --json author,title 2>/dev/null || echo "Not a PR">gh pr view 997 --json author,title 2>/dev/null || echo "Not a PR">gh pr view 1004 --json author,title 2>/dev/null || echo "Not a PR">gh pr view 993 --json author,title 2>/dev/null || echo "Not a PR">gh pr view 995 --json author,title 2>/dev/null || echo "Not a PR">gh pr view 981 --json author,title 2>/dev/null || echo "Not a PR">gh pr view 998 --json author,title 2>/dev/null || echo "Not a PR">gh pr view 1015 --json author,title 2>/dev/null || echo "Not a PR"Let me check #1015 as an issue:
>gh issue view 1015 --json title,body,author 2>/dev/null | head -20>gh issue view 1041 --json title,author 2>/dev/nullNow I have enough info to compile the missing entries. Let me add them.
packages/ai:
41d2c7ff OpenAI completions toolChoice fix (#998) - external PR by @williamtwomeypackages/tui:
d57a26c8 fix(tui): remove backslash input buffering (#1037) - external PR by @Perlenceb54d689e A couple of autocomplete improvements (#1024) - external PR by @Perlencee7b9209d fix(tui): improve table rendering with row dividers and min width (#997) - external PR by @tmustierfb693fbc perf(tui): scan only bottom terminal height lines in extractCursorPosition - internal, no PR9d47747f perf(tui): early-out extractCursorPosition when cursor is above visible viewport - internal, no PRa8f33fd6 perf(tui): optimized extractCursorPosition to scan lines in reverse order (#1004) - external PR by @can13571224b311 feat(tui): auto-apply single suggestion in force file autocomplete (#993) - external PR by @Perlencepackages/coding-agent:
a373dce7 fix(coding-agent): improve thinking defaults in footer - internal fix, minor5ef79459 Closes #1041, incorrect .md file name in warning messages. - external issue by @llimllib0ad189f1 Add get_commands RPC for headless clients (#995) - external PR by @dnouric67b582f fix(coding-agent): hide provider in footer when terminal is narrow (#981) - external PR by @Perlencepackages/web-ui:
dd854c4a feat(web-ui): export CustomProviderCard, ProviderKeyInput, AbortedMessage, ToolMessageDebugView (fixes #1015) - internal fix based on issue by @sjhddhSeveral changes need to be duplicated across packages. The ai package updates—Hugging Face provider support, PI_CACHE_RETENTION env var, cross-provider handoff fix, 429 rate limit handling, Anthropic sensitive stop_reason fix, DeepSeek URL detection, Anthropic input token counts, and the OpenAI toolChoice fix—should also appear in coding-agent. There are additional tui changes that need propagation as well.
From the tui package, I need to bring over the backslash input buffering fix, autocomplete enhancements, table rendering improvements, extractCursorPosition performance optimizations, and the auto-apply behavior for single suggestions in force file autocomplete.
Now I have a complete picture. Let me report and add the missing entries.
packages/ai:
| Commit | Description | Author |
|---|---|---|
41d2c7ff | OpenAI completions toolChoice fix (#998) | @williamtwomey |
packages/tui:
| Commit | Description | Author |
|---|---|---|
d57a26c8 | Remove backslash input buffering (#1037) | @Perlence |
b54d689e | Autocomplete improvements (#1024) | @Perlence |
e7b9209d | Table rendering with row dividers and min width (#997) | @tmustier |
fb693fbc | perf: extractCursorPosition scan optimization | internal |
9d47747f | perf: extractCursorPosition early-out | internal |
a8f33fd6 | perf: extractCursorPosition reverse scan (#1004) | @can1357 |
1224b311 | Auto-apply single suggestion in force file autocomplete (#993) | @Perlence |
packages/coding-agent:
| Commit | Description | Author |
|---|---|---|
5ef79459 | Incorrect .md file name in warning messages (#1041) | @llimllib |
0ad189f1 | Add get_commands RPC for headless clients (#995) | @dnouri |
c67b582f | Hide provider in footer when terminal is narrow (#981) | @Perlence |
packages/web-ui:
| Commit | Description | Author |
|---|---|---|
dd854c4a | Export CustomProviderCard, ProviderKeyInput, AbortedMessage, ToolMessageDebugView (#1015) | internal (issue by @sjhddh) |
Let me add all missing entries:
Now let me add the tui missing entries.
Now let me add the coding-agent missing entries and cross-package duplications.
Now let me add the web-ui entry.
Now let me verify all the changes are correct by running npm run check.
>cd /Users/badlogic/workspaces/pi-mono && npm run check 2>&1All checks pass. Now I need to propose the New Features section for coding-agent changelog as requested in step 6. Let me think about what the top new features are from this release cycle.
Looking at the commits and changelog entries:
get_commands RPC method for headless clientsautocompleteMaxVisible setting for configurable dropdown heightAll checks pass. Now for the New Features section, here are the top new features since v0.50.1:
Hugging Face provider - Access Hugging Face models via OpenAI-compatible Inference Router. Set HF_TOKEN env var.
Extended prompt caching - PI_CACHE_RETENTION=long enables 1-hour caching for Anthropic (vs 5min) and 24-hour for OpenAI (vs in-memory). Only applies to direct API calls.
Configurable autocomplete height - autocompleteMaxVisible setting (3-20 items, default 5) controls dropdown size.
Shell-style keybindings - alt+b/alt+f for word navigation, ctrl+d for delete character forward.
RPC get_commands - Headless clients can now list available commands programmatically.
Should I add these as a ### New Features section at the top of the [Unreleased] section, or would you prefer a different selection/ordering?
double check everything is covered
Let me go through all commits again systematically and verify each one has a changelog entry or is correctly skipped.
>git log v0.50.1..HEAD --onelineI see there's a new commit 2ad48256 fix: autocompleteMaxVisible setting not persisting that wasn't in my earlier list. Let me check it.
There's a new commit I missed. Let me check it and then verify all entries:
>git show 2ad48256 --stat --onelineThis is a coding-agent fix that should be documented. Let me also re-read the changelogs to verify all entries are present.
Let me now create a checklist of all commits and verify each one:
| Commit | Description | Package | Status |
|---|---|---|---|
2ad48256 | fix: autocompleteMaxVisible setting not persisting | coding-agent | MISSING |
bea3ab63 | feat: add autocompleteMaxVisible (#972) | tui, coding-agent | ✓ (merge commit, covered by b212314f) |
b212314f | feat: add autocompleteMaxVisible | tui, coding-agent | ✓ |
06a7fedd | docs(coding-agent): add changelog entry for #1039 | - | SKIP (changelog update) |
d8808733 | create headerContainer for custom header (#1039) | coding-agent | ✓ |
b54d689e | A couple of autocomplete improvements (#1024) | tui | ✓ |
d57a26c8 | fix(tui): remove backslash input buffering (#1037) | tui | ✓ |
bac57f81 | fix: preserve external settings.json edits (#1046) | coding-agent | ✓ |
c808de60 | feat(ai): add Hugging Face provider support | ai | ✓ |
f3cfb7e1 | feat: add /files command to list session file operations | .pi/extensions | SKIP (local extension, not package) |
1b6a1475 | feat(ai): add PI_CACHE_RETENTION env var | ai | ✓ |
605f6f49 | fix(ai): normalize pipe-separated tool call IDs | ai | ✓ |
4f004ade | fix(coding-agent): reset retry counter | coding-agent | ✓ |
| 25707f9a | fix(ai): 429 rate limit errors | ai | ✓ |
| a373dce7 | fix(coding-agent): improve thinking defaults in footer | coding-agent | SKIP (internal improvement, minor) |
| 81be8132 | feat(tui,coding-agent): add shell-style keybindings | tui, coding-agent | ✓ |
| 5ef79459 | Closes #1041, incorrect .md file names | coding-agent | ✓ |
| d21cbde8 | fix(coding-agent): empty array in package filter | coding-agent | ✓ |
| 8b5c81f2 | fix(ai): preserve input token counts Anthropic | ai | ✓ |
| 4f9deddd | fix(ai): detect DeepSeek URLs | ai | ✓ |
| ee7c0a7d | fix(ai): handle sensitive stop_reason | ai | ✓ |
| 41d2c7ff | OpenAI completions toolChoice fix (#998) | ai | ✓ |
| dd854c4a | feat(web-ui): export components (#1015) | web-ui | ✓ |
| 7347d755 | Revert web-ui export | - | SKIP (revert) |
| ec0aa5c3 | feat(web-ui): export components | - | SKIP (reverted and re-applied) |
| ebd8e895 | fix: typos in comments (#1016) | - | SKIP (typo fix, no user impact) |
| e7b9209d | fix(tui): improve table rendering (#997) | tui | ✓ |
| fb693fbc | perf(tui): scan only bottom terminal height | tui | ✓ (covered by #1004 entry) |
| 9d47747f | perf(tui): early-out extractCursorPosition | tui | ✓ (covered by #1004 entry) |
| a8f33fd6 | perf(tui): optimized extractCursorPosition (#1004) | tui | ✓ |
| 0ad189f1 | Add get_commands RPC (#995) | coding-agent | ✓ |
| c67b582f | fix(coding-agent): hide provider in footer (#981) | coding-agent | ✓ |
| 1224b311 | feat(tui): auto-apply single suggestion (#993) | tui | ✓ |
| 2ad48256 | fix: autocompleteMaxVisible setting not persisting | coding-agent | ✓ |
| 2cc25448 | Add [Unreleased] section for next cycle | - | SKIP (housekeeping) |
I notice the autocompleteMaxVisible fix for coding-agent was missing from the list and needs to be included.
Found one missing entry - the new commit 2ad48256:
| Commit | Description | Status |
|---|---|---|
2ad48256 | fix: autocompleteMaxVisible setting not persisting | MISSING in coding-agent |
Let me add it:
re: new features, yes, please add
The user wants me to add the New Features section to the coding-agent changelog. Let me add it at the start of the [Unreleased] section.
Let me also add the missing fix for autocompleteMaxVisible setting not persisting since that's a fix, not a feature.
Let me verify everything is correct by running check and reading the final changelog.
>cd /Users/badlogic/workspaces/pi-mono && npm run check 2>&1All checks pass. Let me show a summary of what was added.
Done. Here's a summary of all changelog updates:
packages/ai/CHANGELOG.md:
toolChoice fix (#998 by @williamtwomey)packages/tui/CHANGELOG.md:
packages/coding-agent/CHANGELOG.md:
/files command, get_commands RPC, HF provider, PI_CACHE_RETENTIONautocompleteMaxVisible setting not persistingpackages/web-ui/CHANGELOG.md:
commit and push
The user wants me to commit and push the changelog updates. I need to be careful to only add the specific files I modified.
>cd /Users/badlogic/workspaces/pi-mono && git add packages/ai/CHANGELOG.md packages/tui/CHANGELOG.md packages/coding-agent/CHANGELOG.md packages/web-ui/CHANGELOG.md && git commit -m "docs: add missing changelog entries for v0.50.1..HEAD commits"Now let me push the changes.
>cd /Users/badlogic/workspaces/pi-mono && git pushDone! I've committed and pushed the changelog updates.
Done. Committed and pushed 58aa7096.
do a patch release
The user wants to do a patch release. According to the AGENTS.md, I should run:
npm run release:patchThis will handle version bump, CHANGELOG finalization, commit, tag, publish, and adding new [Unreleased] sections.
>cd /Users/badlogic/workspaces/pi-mono && npm run release:patch 2>&1The release was successful! All packages have been published to npm at version 0.50.2.
Released v0.50.2 successfully.
Published packages:
@mariozechner/pi-ai@0.50.2@mariozechner/pi-tui@0.50.2@mariozechner/pi-coding-agent@0.50.2@mariozechner/pi-web-ui@0.50.2@mariozechner/pi-mom@0.50.2@mariozechner/pi@0.50.2Tag v0.50.2 pushed to origin.
git tag --sort=-version:refname | head -1git log <tag>..HEAD --onelinegit tag --sort=-version:refname | head -1git log <tag>..HEAD --onelinenpm run release:patch