Commit Graph

665 Commits

Author SHA1 Message Date
Mario Zechner 55508cca6a docs: audit and update changelog entries for v0.49.0 2026-01-17 22:01:03 +01:00
Mario Zechner 4068bc556a chore: simplify codex prompt handling 2026-01-17 21:53:01 +01:00
Mario Zechner 94bd7f69fd fix(coding-agent): load photon via dynamic import 2026-01-17 21:32:23 +01:00
Mario Zechner 157e4e51bf feat(coding-agent): add ExtensionAPI setLabel 2026-01-17 21:18:59 +01:00
Mario Zechner 18d9d9d704 fix(tui): document kill ring and reset history 2026-01-17 21:12:48 +01:00
Mario Zechner 673916f63c fix(tui): always position cursor for IME
# Conflicts:
#	packages/coding-agent/CHANGELOG.md
2026-01-17 11:40:39 +01:00
Danila Poyarkov 58eec55154 feat(coding-agent): export keyHint utilities for extensions (#802) 2026-01-17 10:51:03 +01:00
Mario Zechner 7f9cf543d5 Add [Unreleased] section for next cycle 2026-01-17 00:32:57 +01:00
Mario Zechner 91be338e39 Release v0.48.0 2026-01-17 00:32:07 +01:00
Mario Zechner 760414b288 docs: add missing changelog entries for v0.48.0 2026-01-17 00:31:03 +01:00
Mario Zechner fe52ff00d2 feat: add editorPaddingX setting for input editor horizontal padding 2026-01-16 23:50:00 +01:00
Mario Zechner 1405e30492 revert: remove editor paddingX from coding-agent 2026-01-16 23:19:58 +01:00
ferologics 48ea444bc4 fix: align input editor with message content padding
Adds paddingX option to Editor component and hardcodes paddingX: 1 in
coding-agent editors so the cursor/text aligns with chat message content.
2026-01-16 23:15:06 +01:00
Mario Zechner 20f5fcc79d fix(coding-agent): handle auto-compaction failures gracefully
When auto-compaction fails (e.g., quota exceeded), emit the error via
the auto_compaction_end event instead of throwing. The UI now displays
the error message, allowing users to take action (switch models, wait
for quota reset, etc.) instead of crashing.

fixes #792
2026-01-16 23:13:26 +01:00
Mario Zechner fbb74bb29e fix(ai): filter empty error assistant messages in transformMessages
When 429/500 errors occur during tool execution, empty assistant messages
with stopReason='error' get persisted. These break the tool_use -> tool_result
chain for Claude/Gemini APIs.

Added centralized filtering in transformMessages to skip assistant messages
with empty content and no tool calls. Provider-level filters remain for
defense-in-depth.
2026-01-16 22:35:50 +01:00
Mario Zechner 3326b8f521 Fix --no-extensions flag not preventing extension discovery
When --no-extensions was used, extensionsResult.extensions was an empty
array. The condition in buildSessionOptions() checked .length > 0,
so preloadedExtensions was not set. This caused createAgentSession()
to fall through to extension discovery.

Remove the .length > 0 condition so the empty result is passed through,
signaling that extension loading was already handled.

Fixes #776
2026-01-16 22:01:23 +01:00
Mario Zechner 572ec64dbd Fix navigateTree API: add missing type updates, handler passthrough, and docs
- Update ExtensionCommandContext.navigateTree type signature
- Pass new options through in print-mode and rpc-mode handlers
- Update docs/extensions.md, docs/sdk.md, docs/tree.md
- Add changelog entry
2026-01-16 21:47:01 +01:00
Mario Zechner 0c33e0dee5 chore: audit changelog entries for v0.47.0, add cl.md prompt template
- Add missing changelog entries for commits since v0.47.0
- Cross-duplicate ai/tui fixes to coding-agent changelog
- Change PI_NO_HARDWARE_CURSOR to PI_HARDWARE_CURSOR (opt-in)
- Fix typo in PI_CODING_AGENT_DIR changelog entry
- Add .pi/prompts/cl.md for pre-release changelog audits
2026-01-16 21:11:01 +01:00
Aliou Diallo 09d9107d7f fix(coding-agent): expand tilde in PI_CODING_AGENT_DIR env var (#778) 2026-01-16 17:53:58 +01:00
mom fc3ca545df docs(coding-agent): fix ctx.branch -> ctx.fork in extensions docs 2026-01-16 13:47:28 +00:00
Rafał Krzyważnia 35e48ca018 feat(coding-agent): extension command argument autocomplete 2026-01-16 12:47:29 +01:00
Mario Zechner 0438decd26 docs: add changelog entry for #765 2026-01-16 12:16:49 +01:00
Mario Zechner 43c4a80e2e docs: document prompt template slicing 2026-01-16 12:08:57 +01:00
Mario Zechner 589a2ffcd3 Add [Unreleased] section for next cycle 2026-01-16 04:41:48 +01:00
Mario Zechner 6248d86ff6 Release v0.47.0 2026-01-16 04:41:04 +01:00
Mario Zechner cb369b680b Update changelogs for v0.47.0 release
- Add OpenAI Codex official support entry
- Add pi-internal:// URL scheme
- Add ctx.shutdown() fix (#756)
- Add OpenAI Codex retry logic (#733)
- Add third-party contributions:
  - #702 by @aliou (custom tool HTML export)
  - #728 by @richardgill (frontmatter parsing, SelectList fix)
  - #747 by @kaofelix (tree filter shortcuts)
  - #752 by @richardgill (keymap expansion)
2026-01-16 04:39:48 +01:00
Mario Zechner 356a482527 fix(tui): add vertical scrolling to Editor when content exceeds terminal height
The Editor component now accepts TUI as the first constructor parameter,
enabling it to query terminal dimensions. When content exceeds available
height, the editor scrolls vertically keeping the cursor visible.

Features:
- Max editor height is 30% of terminal rows (minimum 5 lines)
- Page Up/Down keys scroll by page size
- Scroll indicators show lines above/below: ─── ↑ 5 more ───

Breaking change: Editor constructor signature changed from
  new Editor(theme)
to
  new Editor(tui, theme)

fixes #732
2026-01-16 04:12:21 +01:00
Mario Zechner c50bfec01b Fix piped stdin support, auto-enable print mode
When stdin is piped (not a TTY), read the content and treat it as the
first message. Since interactive mode requires a TTY for keyboard input,
print mode is automatically enabled.

- echo foo | pi -> equivalent to pi -p foo
- echo foo | pi -p -> equivalent to pi -p foo
- RPC mode unaffected (uses stdin for JSON-RPC)

fixes #708
2026-01-16 03:18:56 +01:00
Mario Zechner c08801e4c5 Add retry logic to OpenAI Codex provider
Fixes #733
2026-01-16 03:15:59 +01:00
Mario Zechner b4a05cbcab Move skill command handling to AgentSession, update docs
- Skill commands (/skill:name) now expanded in AgentSession instead of
  interactive mode, enabling them in RPC and print modes
- Input event can now intercept /skill:name before expansion
- Updated extensions.md with clearer input event docs and processing order
- Updated rpc.md: hook -> extension terminology, added skill expansion mentions
- Added PR attribution to changelog entries for #761
2026-01-16 03:01:08 +01:00
Nico Bailon 3e5d91f287 feat(coding-agent): add input event for extension input interception (#761)
* feat(coding-agent): add input event for extension input interception

Extensions can now intercept, transform, or handle user input before the
agent processes it. Three result types: continue (pass through), transform
(modify text/images), handled (respond without LLM). Handlers chain
transforms and short-circuit on handled. Source field identifies origin.

* fix: make source public, use if/else over ternary

* fix: remove response field, extension handles own UI
2026-01-16 02:41:56 +01:00
warren 3a89ebbe7c fix(coding-agent): fix tree indentation after filtering 2026-01-15 18:05:52 +01:00
Mario Zechner e46cc55fe0 Add [Unreleased] section for next cycle 2026-01-15 17:36:40 +01:00
Mario Zechner 0aaa4ef5e4 Release v0.46.0 2026-01-15 17:35:54 +01:00
Mario Zechner a216cc496f chore: update changelogs 2026-01-15 17:34:59 +01:00
Can Celik 2c10cc6da9 fix(coding-agent): remember last selected model when using scoped models (#736) 2026-01-15 13:10:15 +01:00
Fero 39ee5fee92 fix(plan-mode): change shortcut from Shift+P to Ctrl+Alt+P (#746)
Shift+P conflicts with typing capital P. Ctrl+Alt+P is cross-platform
safe and doesn't conflict with common shortcuts like:
- Ctrl+Shift+P (command palette on Windows/VS Code)
- Shift+Alt+P (types π on macOS)
2026-01-15 13:09:16 +01:00
Can Celik 537bdb6972 feat(coding-agent): improve session picker search (#731) 2026-01-14 23:28:23 +01:00
Mario Zechner 9712f84ee5 docs(coding-agent): update changelog for recent PRs 2026-01-14 12:03:46 +01:00
Danila Poyarkov 5279bb92da fix: show bun install instead of npm install in update notification when running under Bun (#714)
Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-01-14 10:23:49 +01:00
Danila Poyarkov 0c135d0141 feat(edit): add fuzzy matching for trailing whitespace, quotes, dashes, and spaces (#713) 2026-01-14 10:22:00 +01:00
Mario Zechner 95859725b7 Add [Unreleased] section for next cycle 2026-01-14 00:11:36 +01:00
Mario Zechner d08821cc4a Release v0.45.7 2026-01-14 00:10:52 +01:00
Mario Zechner c16698130c chore: update changelogs 2026-01-14 00:09:51 +01:00
Mario Zechner d83e1745d8 Add [Unreleased] section for next cycle 2026-01-13 22:48:47 +01:00
Mario Zechner f8dc72d24f Release v0.45.6 2026-01-13 22:48:05 +01:00
Mario Zechner 6c1d226210 docs: move PR #667 overlay entries to unreleased section 2026-01-13 22:47:38 +01:00
Mario Zechner 7d45e434de Merge branch 'main' into feat/tui-overlay-options 2026-01-13 22:06:02 +01:00
Mario Zechner 9994ebbedd Add [Unreleased] section for next cycle 2026-01-13 21:47:38 +01:00
Mario Zechner 9a08bb0d1e Release v0.45.5 2026-01-13 21:46:57 +01:00