Commit Graph
100 Commits
Author SHA1 Message Date
Mario Zechner f3cfb7e1ae feat: add /files command to list session file operations 2026-01-29 02:25:59 +01:00
Mario Zechner 1b6a147579 feat(ai): add PI_CACHE_RETENTION env var for extended prompt caching
Adds support for extended cache retention via PI_CACHE_RETENTION=long:
- Anthropic: 5m -> 1h TTL
- OpenAI: in-memory -> 24h retention

Only applies to direct API calls (api.anthropic.com, api.openai.com).
Proxies and other providers are unaffected.

fixes #967
2026-01-29 02:22:06 +01:00
Mario Zechner 605f6f494b fix(ai): normalize pipe-separated tool call IDs for cross-provider handoff
- Handle pipe-separated IDs from OpenAI Responses API in openai-completions provider
- Strip trailing underscores after truncation in openai-responses-shared (OpenAI Codex rejects them)
- Add regression tests for tool call ID normalization

fixes #1022
2026-01-29 01:28:12 +01:00
Mario Zechner 4f004adefa fix(coding-agent): reset retry counter after each successful LLM response
Previously, within a single tool-use turn, rate limit retries would
accumulate across separate LLM calls. For example, if each of 3 tool
calls hit a 429 and retried once, the counter would show '3/3' and fail
even though each individual retry succeeded.

Now the counter resets immediately when a successful (non-error)
assistant message arrives, so each LLM call gets a fresh set of retries.

Fixes #1019
2026-01-29 01:12:29 +01:00
Mario Zechner 25707f9ad4 fix(ai): 429 rate limit errors no longer trigger auto-compaction
429 (Too Many Requests) was incorrectly classified as context overflow,
triggering compaction instead of retry with backoff. The original logic
assumed token-based rate limiting correlates with context overflow, but
these are different concepts:

- Rate limiting (429): requests/tokens per time period (throughput)
- Context overflow: single request exceeds context window (size)

Now 429 errors are handled by the existing retry logic with exponential
backoff, while 400/413 remain as potential context overflow indicators.

fixes #1038
2026-01-29 00:43:38 +01:00
Mario Zechner a373dce747 fix(coding-agent): improve thinking defaults in footer 2026-01-29 00:33:45 +01:00
Mario ZechnerandJason Ish 81be81328c feat(tui,coding-agent): add shell-style keybindings alt+b, alt+f, ctrl+d
- Add alt+b/alt+f as alternative bindings for cursorWordLeft/cursorWordRight
- Add ctrl+d as alternative binding for deleteCharForward
- Fix ctrl+d in custom editor to perform delete when text is present
  (previously it was always consumed, even with non-empty input)

Closes #1043

Co-authored-by: Jason Ish <ish@unx.ca>
2026-01-29 00:21:39 +01:00
Mario Zechner 5ef79459dc Closes #1041, incorrect .md file name in warning messages. 2026-01-29 00:16:50 +01:00
Mario Zechner d21cbde87f fix(coding-agent): empty array in package filter now disables all resources
fixes #1044
2026-01-29 00:12:42 +01:00
Mario Zechner 8b5c81f21f fix(ai): preserve input token counts from message_start in Anthropic provider
Proxies like Portkey omit input_tokens in message_delta events (it's nullable
per the SDK). The previous code unconditionally overwrote usage fields, causing
input token counts to reset to 0.

Now only updates usage fields when they are present (not null), preserving
the correct input_tokens value captured from message_start.

Fixes #1045
2026-01-29 00:06:51 +01:00
Mario Zechner 4f9deddd47 fix(ai): detect DeepSeek URLs and disable unsupported developer role
fixes #1048
2026-01-28 23:55:54 +01:00
Mario Zechner 2cc2544809 Add [Unreleased] section for next cycle 2026-01-27 00:15:42 +01:00
Mario Zechner 29c59d79ba Release v0.50.1 2026-01-27 00:14:58 +01:00
Mario Zechner bec72c428c docs(coding-agent): clarify dependency categories 2026-01-27 00:13:54 +01:00
Mario Zechner 484b605ca0 docs(coding-agent): clarify pi package dependency bundling 2026-01-27 00:10:58 +01:00
Mario Zechner 6159eb4be8 chore: update changelogs 2026-01-27 00:08:06 +01:00
Mario Zechner ee7d03cf52 fix(coding-agent): prune empty git dirs on remove 2026-01-26 23:58:14 +01:00
Mario Zechner a5f603d704 fix(diff): keep picker open after selection 2026-01-26 23:04:32 +01:00
Mario Zechner 5dbeadae05 fix(coding-agent): bind extension UI context on startup 2026-01-26 23:00:48 +01:00
Mario Zechner f86e3c3103 fix(coding-agent): sync agent state after newSession setup callback
Move setup callback handling from interactive/rpc modes into AgentSession.newSession().
After setup() runs, sync agent state via replaceMessages() so the LLM has context
and the UI renders the messages properly.

fixes #968
2026-01-26 22:25:09 +01:00
Mario Zechner 0134a2a73d fix(coding-agent): handle force-pushed git extensions in pi update
Simplified to use @{upstream} instead of branch detection.
Moved changelog entry to [Unreleased].

Closes #961
2026-01-26 22:02:17 +01:00
Mario Zechner 3c252d50f5 docs(coding-agent): add placement note for extension hot-reload 2026-01-26 21:55:57 +01:00
Mario Zechner 2bbc1a7659 Add [Unreleased] section for next cycle 2026-01-26 16:55:24 +01:00
Mario Zechner 453e104d3a Release v0.50.0 2026-01-26 16:54:37 +01:00
Mario Zechner 1c7c5e10e0 add redraws helper extension for TUI development 2026-01-26 16:53:49 +01:00
Mario Zechner d2de6d0830 docs(coding-agent): expand pi documentation references in system prompt
- Add instruction to read pi .md files completely and follow cross-references
- Add more doc references: prompt-templates, keybindings, sdk, custom-provider, models, packages
- Reorder entries (custom providers last, prompt templates after skills)
2026-01-26 16:52:32 +01:00
Mario Zechner a6f9c3cf0d fix(tui): fix scrollback overwrite when appending lines past viewport
Appended lines were not committed to terminal scrollback because the
renderer used cursor movement (CSI B) and carriage return without
linefeed. This caused earlier content to be overwritten when the
viewport filled up.

Changes:
- For appended lines, emit \r\n to create real scrollback lines
- When target row is below viewport, scroll with \r\n before positioning
- Add PI_TUI_WRITE_LOG env var for debugging raw ANSI output
- Add fullRedraws readonly property to TUI class
- Add viewport-overwrite-repro.ts test script

fixes #954
2026-01-26 16:51:28 +01:00
Mario Zechner fa8b26a184 docs: update changelog guidance and links 2026-01-26 15:45:51 +01:00
Mario Zechner 9b903656ae fix(ai): correct provider error message typo (closes #958) 2026-01-26 15:37:57 +01:00
Mario Zechner 585ce73be1 fix(coding-agent): align auto-discovery with loader rules 2026-01-26 13:49:21 +01:00
Mario Zechner b270e7b585 fix(coding-agent): apply config overrides to auto-discovery 2026-01-26 13:37:08 +01:00
Mario Zechner ea93e2f3da fix(coding-agent): add force exclude pattern and fix config toggle persistence
- Add `-path` force-exclude pattern (exact path match, highest precedence)
- Change `+path` force-include to exact path match (no glob)
- Manifest-excluded resources are now hidden from config (not toggleable)
- Config toggle uses `+` to enable and `-` to disable
- Settings paths resolve relative to settings.json location:
  - Global: relative to ~/.pi/agent
  - Project: relative to .pi
- Add baseDir to PathMetadata for proper relative path computation
- Update tests for new base directory and pattern behavior

fixes #951
2026-01-26 12:47:07 +01:00
Mario Zechner 7a0b435923 docs(coding-agent): add security warnings for third-party packages
- README.md: Pi Packages section
- packages.md: Install and Manage section
- extensions.md: Extension Locations section
- skills.md: Locations section
2026-01-26 12:38:04 +01:00
Mario Zechner a8d04a1dbf docs(coding-agent): add comprehensive cross-links in extensions.md
- context event → session.md (message types)
- setModel → models.md (custom models)
- session_before_tree → tree.md (tree navigation)
- Mode Behavior table → rpc.md, json.md (add JSON mode row)
- Fix table to distinguish RPC vs JSON modes
2026-01-26 11:54:56 +01:00
Mario Zechner c3b8685467 docs(coding-agent): link to session.md for message types in context event 2026-01-26 11:52:29 +01:00
Mario Zechner b078141c24 docs(coding-agent): add cross-links to themes.md and session.md 2026-01-26 11:51:11 +01:00
Mario Zechner 530826ba07 docs(coding-agent): link to tool-execution.ts in Custom Rendering section 2026-01-26 11:47:31 +01:00
Mario Zechner d726c81faf docs(coding-agent): remove duplicate packages content from extensions.md
Replace 130 lines of duplicate content with link to packages.md
2026-01-26 11:44:56 +01:00
Mario Zechner 930207130b docs(coding-agent): improve extensions.md, add missing examples
- Add cross-links to session.md, keybindings.md, themes.md
- Document truncateLine, highlightCode, getLanguageFromPath utilities
- Add examples for previously undocumented APIs:
  - message-renderer.ts: registerMessageRenderer with Box styling
  - session-name.ts: setSessionName/getSessionName
  - event-bus.ts: pi.events for inter-extension communication
  - bookmark.ts: setLabel for entry bookmarking
- Update examples table in extensions.md and README.md
2026-01-26 11:43:01 +01:00
Mario Zechner bf876fcd3b Revert "docs(coding-agent): restructure extensions.md, consolidate examples"
This reverts commit b85bf05461.
2026-01-26 02:44:16 +01:00
Mario Zechner b85bf05461 docs(coding-agent): restructure extensions.md, consolidate examples
- Reduce from 1840 to 817 lines (55% smaller)
- Move all scattered example references to Examples Reference table at end
- Add missing setHeader() API documentation
- Add all 50 examples organized by category (Tools, Commands, Events, UI, etc.)
- Fix tui.md hooks->extensions terminology
2026-01-26 02:40:46 +01:00
Mario Zechner efc598b6b0 docs(coding-agent): replace README.md with new structure
- Reorganized: Quick Start, Providers, Interactive Mode, Sessions, Settings, Context Files, Customization, Programmatic Usage, Philosophy, CLI Reference
- Added package discovery links (npmjs.com, Discord)
- More concise, better flow, reduced redundancy
2026-01-26 02:33:46 +01:00
Mario Zechner 5340862910 docs(coding-agent): update README-NEW.md, tui.md, add new docs
- README-NEW.md: add environment variables, philosophy extras (no built-in to-dos, no background bash), session ID support, pi config command, plain git URLs, version pinning
- tui.md: fix hooks->extensions terminology, update Component interface (invalidate required, add wantsKeyRelease)
- Add new docs: settings.md, development.md, json.md
- Add screenshots: tree-view.png, doom-extension.png
2026-01-26 02:27:19 +01:00
Mario Zechner 28ab25b07e docs(coding-agent): improve README structure and update session/compaction docs
- README-NEW.md: add Quick Start, Interactive Mode, Sessions sections
- session.md: add Message Types section, complete SessionManager API, fix source links to GitHub URLs
- compaction.md: rename hooks to extensions, fix source links to GitHub URLs
- keybindings.md: new file documenting all keyboard shortcuts
2026-01-26 01:25:15 +01:00
Mario Zechner 859a4e05b6 docs(coding-agent): rename Header to Startup header 2026-01-26 00:39:41 +01:00
Mario Zechner b16af6e554 docs(coding-agent): add commands intro with skills, templates, extensions 2026-01-26 00:38:51 +01:00
Mario Zechner 6275d46d10 docs(coding-agent): add Q&A tool example for custom UI 2026-01-26 00:36:43 +01:00
Mario Zechner de700f795f docs(coding-agent): note extensions can replace editor 2026-01-26 00:35:43 +01:00
Mario Zechner 13b9e1e394 docs(coding-agent): mention editor replacement UI 2026-01-26 00:35:12 +01:00
Mario Zechner 011c9ecda7 docs(coding-agent): describe all UI components 2026-01-26 00:33:54 +01:00
Mario Zechner 965ab51b16 docs(coding-agent): tighten interactive mode intro 2026-01-26 00:31:50 +01:00
Mario Zechner b25f047808 docs(coding-agent): describe startup UI elements 2026-01-26 00:31:17 +01:00
Mario Zechner b32c9a8814 docs(coding-agent): update screenshot and add interactive mode description 2026-01-26 00:29:46 +01:00
Mario Zechner a0e778cb8a docs(coding-agent): update interactive mode screenshot 2026-01-26 00:28:18 +01:00
Mario Zechner 3f28266ab0 docs(coding-agent): add interactive mode screenshot 2026-01-26 00:27:02 +01:00
Mario Zechner 6783271d75 docs(coding-agent): note that model list is updated with each release 2026-01-26 00:18:45 +01:00
Mario Zechner 591525a1ce docs(coding-agent): link to custom-provider.md for extension-based providers 2026-01-26 00:16:20 +01:00
Mario Zechner 98a1e7b86b docs(coding-agent): add models.md for custom providers and models 2026-01-26 00:11:10 +01:00
Mario Zechner fd1beb4941 docs(coding-agent): add Custom Providers section to providers.md 2026-01-26 00:10:07 +01:00
Mario Zechner b08ec08fd4 docs(coding-agent): rename authentication.md to providers.md 2026-01-26 00:08:29 +01:00
Mario Zechner 1544ab1794 fix: clarify startup hints for thinking level and expand thinking 2026-01-26 00:05:35 +01:00
Mario Zechner 07325c27e8 fix: use findInitialModel in SDK, default to opus-4-5 for anthropic 2026-01-25 23:59:11 +01:00
Mario Zechner 0423c2c2d5 fix: add /model instruction to no models warning 2026-01-25 23:55:40 +01:00
Mario Zechner 88f184f433 fix: point auth error messages to docs/authentication.md 2026-01-25 23:55:00 +01:00
Mario Zechner 9c0c09e1c5 fix: handle empty args array in pi-test.sh 2026-01-25 23:47:35 +01:00
Mario Zechner 579a77493a feat: add --no-env flag to pi-test.sh to clear API keys 2026-01-25 23:45:28 +01:00
Mario Zechner 82e3be9dc8 docs(coding-agent): add windows.md and shell-aliases.md 2026-01-25 22:12:03 +01:00
Mario Zechner 1b98d45c77 docs(coding-agent): simplify resolution order, remove troubleshooting 2026-01-25 21:45:50 +01:00
Mario Zechner 676353ab4f docs(coding-agent): clean up subscription provider list 2026-01-25 21:44:45 +01:00
Mario Zechner 7eae6603bb docs(coding-agent): simplify subscriptions list, remove cost column 2026-01-25 21:44:12 +01:00
Mario Zechner a2c6a32e9b docs(coding-agent): fix /login docs - it shows a picker, no args 2026-01-25 21:43:57 +01:00
Mario Zechner 8eae92cbb7 docs(coding-agent): tighten authentication section in README 2026-01-25 21:42:55 +01:00
Mario Zechner 726e0a4b5b docs(coding-agent): rewrite authentication.md with proper structure
- Subscriptions first (OAuth providers)
- Clear API keys table
- Auth file format
- Cloud providers section (Azure, Bedrock, Vertex)
- Resolution order
- Troubleshooting
2026-01-25 21:42:20 +01:00
Mario Zechner 8d11d1e2f3 docs(coding-agent): remove incorrect prompt cache note from OpenAI Codex 2026-01-25 21:40:45 +01:00
Mario Zechner d9e87d26c4 docs(coding-agent): reorder auth section - subscriptions first, then API keys 2026-01-25 21:39:41 +01:00
Mario Zechner 5946c8211c docs(coding-agent): rename API Keys to Authentication 2026-01-25 21:37:56 +01:00
Mario Zechner 1b705a92b8 docs(coding-agent): move OAuth details to docs/authentication.md, simplify README 2026-01-25 21:37:25 +01:00
Mario Zechner e112d2a917 docs(coding-agent): move terminal setup to docs/terminal-setup.md 2026-01-25 21:34:07 +01:00
Mario Zechner d7410fafc0 docs(coding-agent): show how to run pi after install 2026-01-25 21:32:34 +01:00
Mario Zechner 455d576d70 docs(coding-agent): move shell aliases to its own section (not Windows-specific) 2026-01-25 21:31:41 +01:00
Mario Zechner 10f530f605 docs(coding-agent): remove binary mentions from installation 2026-01-25 21:30:46 +01:00
Mario Zechner 1a8842e355 docs(coding-agent): simplify installation, link to releases for binaries 2026-01-25 21:29:31 +01:00
Mario Zechner 0be68c9b4b docs(coding-agent): clarify that missing description prevents skill loading 2026-01-25 20:58:02 +01:00
Mario Zechner 6cc370c446 docs(coding-agent): clarify how to toggle settings and invoke templates
- skills.md: mention /settings and settings.json for toggling skill commands
- prompt-templates.md: add Usage section with examples
2026-01-25 20:56:24 +01:00
Mario Zechner c12d18483d docs(coding-agent): clarify skill invocation is model behavior 2026-01-25 20:55:10 +01:00
Mario Zechner a4cb9ff02a docs(coding-agent): mention /skill:name as alternative to model invocation 2026-01-25 20:54:39 +01:00
Mario Zechner b29de1c73d docs(coding-agent): note that models often need prompting to use skills 2026-01-25 20:54:10 +01:00
Mario Zechner 77469e1599 docs(coding-agent): link to agentskills.io integration spec for XML format 2026-01-25 20:53:43 +01:00
Mario Zechner ff50d45c04 docs(coding-agent): add instructions for using skills from other harnesses 2026-01-25 20:52:42 +01:00
Mario Zechner dbbb658628 docs(coding-agent): clarify lenient Agent Skills standard compliance 2026-01-25 20:50:55 +01:00
Mario Zechner 3dca4979e4 docs(coding-agent): fix token count in themes.md, rewrite skills.md
- Fixed themes.md: 50 -> 51 color tokens
- Rewrote skills.md to match structure of other docs (TOC, concise sections)
- Removed redundant content from skills.md while keeping all essential info
2026-01-25 20:48:47 +01:00
Mario Zechner 728dc86d49 fix(coding-agent): correct theme schema URL path 2026-01-25 20:46:22 +01:00
Mario Zechner d79eb99cd2 docs(coding-agent): merge theme.md into themes.md, add hot reload info
- Merged theme.md content into themes.md
- Added hot reload documentation
- Updated all references from theme.md to themes.md
- Fixed outdated info (vars not defs, complete example with all 50 tokens)
- Removed dev-focused Implementation section
2026-01-25 20:39:49 +01:00
Mario Zechner 94952bd6c0 docs(coding-agent): update README intro, add packages/prompt-templates/themes docs
- Rewrote README intro to emphasize extensibility and pi packages
- Added Pi Packages section to README
- Created docs/packages.md covering install, sources, manifest, filtering
- Created docs/prompt-templates.md covering format and arguments
- Created docs/themes.md with overview linking to theme.md
2026-01-25 20:33:19 +01:00
Mario Zechner 4bb21b7f5f fix(coding-agent): change sort keybinding from Ctrl+N to Ctrl+S in /resume picker
Also add changelog entries for #863 session rename feature.
2026-01-25 19:43:16 +01:00
Mario Zechner 676de103e1 Update models/package-lock.json after adding deps 2026-01-25 19:29:02 +01:00
Mario Zechner b1211261be docs(coding-agent): add changelog entry for extension shortcut fix (#947) 2026-01-25 19:21:18 +01:00
Mario Zechner 62209c4a0f docs: add tmux testing instructions to AGENTS.md 2026-01-25 19:20:14 +01:00
Mario Zechner 0faba293e6 fix(coding-agent): truncate bash hint line to terminal width
Fixes TUI crash on narrow terminals (< 40 chars) when displaying
collapsed bash output with 'earlier lines' hint.

fixes #941
2026-01-25 19:19:41 +01:00
Mario Zechner b0c050582a fix(coding-agent): update test expectations for trailing period in read tool messages 2026-01-25 19:08:52 +01:00