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 Zechner and Jason 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