Reviewed commits since last release.
UnderstandAdded missing changelog entries.
EditConfirmed changelog completeness.
VerifyCommitted and pushed updates.
CleanupAudit 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.
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 -1v0.49.2Good, the last release tag is v0.49.2. Now let me list all commits since that tag.
>git log v0.49.2..HEAD --onelinef39ec4d7 feat(extensions): add antigravity-image-gen example for image generation (#893)
b712d1ca fix(ai, web-ui): browser compatibility for pi-ai, update tsgo for decorator support
d327b9c7 fix(ai): handle same-provider different-model handoff in OpenAI Responses API
de583910 test(ai): add failing test for orphaned function_call without reasoning item
b7cef51f fix(tui): don't add space after directory completion for @ file attachments
4ed95272 docs: add missing changelog entries for commits since v0.49.2
7dc652f3 Autocomplete allow searchs with `/`'s like: `folder1/folder2` (#882)
69d02b8a fix(coding-agent): use dynamic paths in error messages (#887)
620239bd fix(tui): prevent duplicate URL display for autolinked emails (#888)
0363a10c feat(coding-agent): add PI_SHARE_VIEWER_URL env var for custom share viewer (#889)
cdca9317 chore: approve contributor lightningRalf
487caef6 chore: approve contributor andresaraujo
3a14af12 chore: approve contributor toorusr
82cc0fe8 feat(extensions): add inline-bash example for expanding !{command} in prompts (#881)
565488fd fix(tui): fix viewport tracking and cursor positioning for overlays and content shrink
2354bc57 feat(coding-agent): show session name in terminal title and footer (#876)
698aea34 feat(tui): add Alt+Delete as hotkey for Delete word forwards (#878)
a9fbfc79 fix(export): use active theme instead of default for HTML export (#870)
236285b3 fix(coding-agent): fall back to 256color in Terminal.app (#869)
693112e3 feat(ai): add originator option to loginOpenAICodex
d2be6486 feat(ai): add headers option to StreamOptions for custom HTTP headers
20c7b5fe feat(tui, coding-agent): add configurable code block indent setting (#855)
46545276 fix(coding-agent): show errors from write tool in UI
d37b5a52 More fuzzy finder (#860)
d276c9fb l -> shift+l so one can search for l (#861)
68352a42 fix(ai): skip cross-provider-handoff tests when no API keys available
2f4b510c Add [Unreleased] section for next cycleGood, I have a list of commits since v0.49.2. Now let me read the [Unreleased] sections of each changelog to see what entries exist. Let me also check the stat for each commit to understand which packages they affect.
Now let me read the [Unreleased] sections from each changelog:
Now I need to analyze each commit and check if it has corresponding changelog entries. Let me examine the commits in more detail to see which packages they affect.
Commits to analyze (excluding chore/housekeeping):
f39ec4d7 feat(extensions): add antigravity-image-gen example for image generation (#893) - likely coding-agent (examples)
b712d1ca fix(ai, web-ui): browser compatibility for pi-ai, update tsgo for decorator support - ai, web-ui
d327b9c7 fix(ai): handle same-provider different-model handoff in OpenAI Responses API - ai
de583910 test(ai): add failing test for orphaned function_call without reasoning item - test only, skip
b7cef51f fix(tui): don't add space after directory completion for @ file attachments - tui
4ed95272 docs: add missing changelog entries for commits since v0.49.2 - doc only, skip
7dc652f3 Autocomplete allow searchs with /'s like: folder1/folder2 (#882) - likely tui
69d02b8a fix(coding-agent): use dynamic paths in error messages (#887) - coding-agent
620239bd fix(tui): prevent duplicate URL display for autolinked emails (#888) - tui
0363a10c feat(coding-agent): add PI_SHARE_VIEWER_URL env var for custom share viewer (#889) - coding-agent
cdca9317 chore: approve contributor lightningRalf - chore, skip
487caef6 chore: approve contributor andresaraujo - chore, skip
3a14af12 chore: approve contributor toorusr - chore, skip
82cc0fe8 feat(extensions): add inline-bash example for expanding !{command} in prompts (#881) - coding-agent
565488fd fix(tui): fix viewport tracking and cursor positioning for overlays and content shrink - tui
2354bc57 feat(coding-agent): show session name in terminal title and footer (#876) - coding-agent
698aea34 feat(tui): add Alt+Delete as hotkey for Delete word forwards (#878) - tui
a9fbfc79 fix(export): use active theme instead of default for HTML export (#870) - coding-agent
236285b3 fix(coding-agent): fall back to 256color in Terminal.app (#869) - coding-agent
693112e3 feat(ai): add originator option to loginOpenAICodex - ai
d2be6486 feat(ai): add headers option to StreamOptions for custom HTTP headers - ai
20c7b5fe feat(tui, coding-agent): add configurable code block indent setting (#855) - tui, coding-agent
46545276 fix(coding-agent): show errors from write tool in UI - coding-agent
d37b5a52 More fuzzy finder (#860) - likely tui
d276c9fb l -> shift+l so one can search - appears to be a keybinding adjustment for search functionality
, probably coding-agent
26. 68352a42 fix(ai): skip cross-provider-handoff tests when no API keys available - test-only change, can skip
27. 2f4b510c Add [Unreleased] section for next cycle - maintenance task, skip
Need to verify the package assignments for the ambiguous commits by checking their file modifications.
Let me check the details of a few commits that need clarification:
>git show f39ec4d7 --stat --name-only | head -20commit f39ec4d7728a54316ac0a8c08223765fabee5597
Author: Ben Vargas <[REDACTED]>
Date: Wed Jan 21 17:34:22 2026 -0700
feat(extensions): add antigravity-image-gen example for image generation (#893)
Adds a new extension that generates images via Google Antigravity's
image models (gemini-3-pro-image, imagen-3). Features:
- Returns images as tool result attachments for inline terminal rendering
- Configurable save modes: none, project, global, custom
- Supports env vars (PI_IMAGE_SAVE_MODE, PI_IMAGE_SAVE_DIR) and config files
- Configurable aspect ratios (1:1, 16:9, etc.)
Requires OAuth login via /login for google-antigravity provider.
packages/coding-agent/examples/extensions/README.md
packages/coding-agent/examples/extensions/antigravity-image-gen.ts>git show b712d1ca --stat --name-only | head -20commit b712d1ca43db87d9f64c5d610ab952b07e5a5bfb
Author: Mario Zechner <[REDACTED]>
Date: Thu Jan 22 01:33:46 2026 +0100
fix(ai, web-ui): browser compatibility for pi-ai, update tsgo for decorator support
- Update @typescript/native-preview to 7.0.0-dev.20260120.1 (supports experimentalDecorators)
- Replace top-level node:fs, node:os, node:path imports with dynamic imports in stream.ts
- Replace top-level node:os import with dynamic import in openai-codex-responses.ts
- Replace top-level node:crypto, node:http imports with dynamic imports in openai-codex.ts
- Replace Buffer.from with atob for browser-compatible base64 decoding
fixes #873
package-lock.json
package.json
packages/ai/src/providers/openai-codex-responses.ts
packages/ai/src/stream.ts
packages/ai/src/utils/oauth/openai-codex.ts>git show 7dc652f3 --stat --name-only | head -20commit 7dc652f304c4d4909168f3f0b72c9d64427b4dc2
Author: Richard Gill <[REDACTED]>
Date: Wed Jan 21 22:23:51 2026 +0000
Autocomplete allow searchs with `/`'s like: `folder1/folder2` (#882)
* Extend fd autocomplete tests
* Renamed fixture type in autocomplete test
packages/tui/src/autocomplete.ts
packages/tui/test/autocomplete.test.ts>git show d37b5a52 --stat --name-only | head -20commit d37b5a52d76942bd80b91fe3bb38263f09592758
Author: Armin Ronacher <[REDACTED]>
Date: Mon Jan 19 22:22:51 2026 +0100
More fuzzy finder (#860)
packages/tui/src/fuzzy.ts
packages/tui/test/fuzzy.test.ts>git show d276c9fb --stat --name-only | head -20commit d276c9fbe09d291b69329b97a5e9fa30b9347521
Author: Armin Ronacher <[REDACTED]>
Date: Mon Jan 19 22:22:20 2026 +0100
l -> shift+l so one can search for l (#861)
packages/coding-agent/src/modes/interactive/components/tree-selector.tsNow I have a clear picture. Let me analyze each commit against the changelog entries:
Commits that need changelog entries:
f39ec4d7 feat(extensions): add antigravity-image-gen example (#893) - coding-agent - MISSING (example extension)
b712d1ca fix(ai, web-ui): browser compatibility for pi-ai - ai, web-ui - MISSING (fixes #873 - browser compatibility)
d327b9c7 fix(ai): handle same-provider different-model handoff - ai - ✅ Present in ai CHANGELOG (references #886)
b7cef51f fix(tui): don't add space after directory completion - tui - ✅ Present in tui CHANGELOG
7dc652f3 Autocomplete allow searchs with / (#882)` - tui - ✅ Present in tui CHANGELOG (#882)
69d02b8a fix(coding-agent): use dynamic paths (#887) - coding-agent - ✅ Present in coding-agent CHANGELOG (#887)
620239bd fix(tui): prevent duplicate URL display (#888) - tui - ✅ Present in tui CHANGELOG (#888)
0363a10c feat(coding-agent): PI_SHARE_VIEWER_URL (#889) - coding-agent - ✅ Present (#889)
82cc0fe8 feat(extensions): inline-bash example (#881) - coding-agent - ✅ Present (#881)
565488fd fix(tui): viewport tracking and cursor positioning - tui - ✅ Present in tui CHANGELOG
2354bc57 feat(coding-agent): session name in terminal title (#876) - coding-agent - ✅ Present (#876)
698aea34 feat(tui): Alt+Delete as hotkey (#878) - tui - ✅ Present in tui CHANGELOG (#878)
a9fbfc79 fix(export): use active theme (#870) - coding-agent - ✅ Present (#870)
236285b3 fix(coding-agent): fall back to 256color (#869) - coding-agent - ✅ Present (#869)
693112e3 feat(ai): add originator option to loginOpenAICodex - ai - ✅ Present in ai CHANGELOG
The remaining commits all have corresponding changelog entries documented.
d2be6486 feat(ai): add headers option to StreamOptions - ai - ✅ Present in ai CHANGELOG20c7b5fe feat(tui, coding-agent): code block indent (#855) - tui, coding-agent - ✅ Present in both46545276 fix(coding-agent): show errors from write tool - coding-agent - ✅ Present (#856)d37b5a52 More fuzzy finder (#860) - tui - ✅ Present in tui (#860)d276c9fb l -> shift+l (#861) - coding-agent - ✅ Present (#861)Two entries are missing from the changelog: the antigravity-image-gen example extension and a browser compatibility fix for pi-ai.
Looking at what's been duplicated across packages, the library-level features in ai (headers, originator, OpenAI Responses API) don't need to appear in coding-agent since they're internal implementation details. The tui improvements that have already been mirrored to coding-agent include the Alt+Delete hotkey, fuzzy matching, directory completion, email autolink, and autocomplete with / - these are user-facing features that make sense to document in both places.
The viewport tracking fix and codeBlockIndent improvements have also been properly duplicated. Two items still need attention: the antigravity-image-gen example should be added to coding-agent, and the browser compatibility fix needs to be included in ai's changelog, with consideration for web-ui as well.
Let me check if web-ui has a CHANGELOG:
>ls packages/web-ui/CHANGELOG.md 2>/dev/null || echo "No CHANGELOG.md"packages/web-ui/CHANGELOG.mdLet me read the web-ui changelog to see its current state.
The web-ui changelog is mostly empty version stubs with no content entries. The browser compatibility fix in b712d1ca affects web-ui indirectly via the ai package (it's making the ai package browser-compatible). I'll add an entry to web-ui changelog as well since the commit mentions web-ui.
Now let me summarize my findings and add the missing entries:
Missing entries:
f39ec4d7 feat(extensions): add antigravity-image-gen example (#893) - coding-agent Added sectionb712d1ca fix(ai, web-ui): browser compatibility for pi-ai (#873) - ai and web-uiLet me add these entries.
Commits analyzed: 27 (since v0.49.2) Skipped: 8 (test-only, docs-only, chore, housekeeping) With entries: 17 Missing entries: 2
| Commit | Package(s) | Description |
|---|---|---|
f39ec4d7 | coding-agent | feat(extensions): add antigravity-image-gen example (#893) |
b712d1ca | ai, web-ui | fix(ai, web-ui): browser compatibility for pi-ai (#873) |
All tui changes that affect end users are properly duplicated to coding-agent. ✅
Adding the missing entries:
Good, I've added the missing entries. Let me verify the changes look correct.
Done. Added 3 missing changelog entries:
| Package | Entry |
|---|---|
| coding-agent | Added antigravity-image-gen.ts example extension for AI image generation via Google Antigravity (#893 by @benvargas) |
| ai | Browser compatibility for pi-ai: replaced top-level Node.js imports with dynamic imports for browser environments (#873) |
| web-ui | Updated tsgo to 7.0.0-dev.20260120.1 for decorator support (#873) |
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, as per the git rules.
Files I modified:
>git add packages/coding-agent/CHANGELOG.md packages/ai/CHANGELOG.md packages/web-ui/CHANGELOG.md && git commit -m "docs: add missing changelog entries for f39ec4d7, b712d1ca" && git pushRunning formatting, linting, and type checking...
> pi-monorepo@0.0.3 check
> biome check --write . && tsgo --noEmit && npm run check -w @mariozechner/pi-web-ui
Checked 410 files in 256ms. No fixes applied.
> @mariozechner/pi-web-ui@0.49.2 check
> biome check --write . && tsc --noEmit && cd example && biome check --write . && tsc --noEmit
Checked 73 files in 38ms. No fixes applied.
Checked 3 files in 8ms. No fixes applied.
✅ All pre-commit checks passed!
[main ccf6db63] docs: add missing changelog entries for f39ec4d7, b712d1ca
3 files changed, 6 insertions(+)
To https://github.com/badlogic/pi-mono.git
f39ec4d7..ccf6db63 main -> mainSuccessfully committed and pushed the changelog updates.
Pushed ccf6db63 to main.
git tag --sort=-version:refname | head -1git log <tag>..HEAD --oneline