Commit Graph
100 Commits
Author SHA1 Message Date
Mario Zechner 2e1c5ebdee fix(ai): relax xhigh model check
fixes #1209
2026-02-03 13:03:46 +01:00
Mario Zechner 2f5235b966 fix(coding-agent): support local install paths relative to settings files closes #1216 2026-02-03 12:58:34 +01:00
Mario Zechner e54dff7efb fix(coding-agent): rename SlashCommandSource "template" to "prompt" for consistency
BREAKING CHANGE: RPC get_commands response and SlashCommandSource type
now use "prompt" instead of "template" to match the rest of the codebase.
2026-02-03 12:27:45 +01:00
Mario Zechner 8292d7ce5d feat(coding-agent): add commands.ts example and export SlashCommandInfo types
- Add example extension demonstrating pi.getCommands() API
- Export SlashCommandInfo, SlashCommandLocation, SlashCommandSource from main index.ts

Follow-up to #1210
2026-02-03 12:20:37 +01:00
Mario Zechner 5a6151ba1e feat(coding-agent): add ExtensionAPI.getCommands() (#1210) 2026-02-03 12:18:55 +01:00
Mario Zechner ff9a3f0660 Add [Unreleased] section for next cycle 2026-02-03 02:19:00 +01:00
Mario Zechner 4cbc865215 Release v0.51.2 2026-02-03 02:18:12 +01:00
Mario Zechner c6ab9a64ce chore(changelog): audit unreleased entries 2026-02-03 02:17:01 +01:00
Mario Zechner 494a7750ef fix(coding-agent): remove install method cache 2026-02-03 01:45:35 +01:00
Mario Zechner 2b197c7fb1 docs: require closes/fixes in commit messages 2026-02-03 01:36:46 +01:00
Mario Zechner 20d704fee1 fix(tui): restore legacy newline handling 2026-02-03 01:36:46 +01:00
Mario Zechner ba5eb05f44 fix(tui): include hidden paths in @ autocomplete 2026-02-03 01:36:46 +01:00
Mario Zechner 7a9c668357 Merge pull request #1196 from haoqixu/fix-commands-conflict
fix(coding-agent): filter out commands conflict with builtins
2026-02-03 01:22:29 +01:00
Mario Zechner 90b18218bd docs(coding-agent): document tool expansion UI methods 2026-02-03 01:16:29 +01:00
Mario Zechner c64e228b76 fix(tui): honor keybindings for submit fallback 2026-02-03 01:10:06 +01:00
Mario Zechner d2139d8ed2 chore(agent): drop unused pi-tui dependency 2026-02-03 00:26:52 +01:00
Mario Zechner 8c38de0495 fix(tui): drain stdin on exit to avoid Kitty release leak
Drain stdin for up to 1s after disabling Kitty protocol so in-flight key
release events are consumed before the shell regains control.

Fixes #1204
2026-02-03 00:07:35 +01:00
Mario Zechner 9a4d043b28 fix(tui): drain Kitty key release events before exit to prevent SSH leak
Adds Terminal.prepareForExit() to disable Kitty protocol and wait for
in-flight release events before fully stopping. This prevents escape
sequences from leaking to the parent shell over slow SSH connections.

Fixes #1204
2026-02-03 00:01:39 +01:00
Mario Zechner c9a20a3aa4 fix(coding-agent): normalize @ path prefixes closes #1206 2026-02-02 23:56:20 +01:00
Mario Zechner 1fbafd6cc7 docs: document video and image fields for package gallery 2026-02-02 20:16:18 +01:00
Mario Zechner 0aa0b5fdba Add [Unreleased] section for next cycle 2026-02-02 19:36:52 +01:00
Mario Zechner e02bdf8ef1 Release v0.51.1 2026-02-02 19:36:08 +01:00
Mario Zechner 59acb17354 docs: audit and update changelog entries for v0.51.0..HEAD 2026-02-02 19:35:17 +01:00
Mario Zechner f431f62609 fix(tui): pause stdin before restoring raw mode to prevent SSH session close
Fixes #1185
2026-02-02 19:24:55 +01:00
Mario Zechner 111a31e4db fix(ai): apply cache_control to string user messages 2026-02-02 19:19:12 +01:00
Mario Zechner 0d934091f4 feat(tui): add PI_DEBUG_REDRAW=1 env var for debugging full redraws
Logs redraw triggers to ~/.pi/agent/pi-debug.log when enabled.
2026-02-02 08:39:57 +01:00
Mario Zechner 0925fafe3b fix(tui): reduce unnecessary full redraws for better performance
- Remove height change detection (only width changes trigger full redraw)
- Change clearOnShrink default to false (use PI_CLEAR_ON_SHRINK=1 to enable)
- Fix viewport check to use previousLines.length instead of maxLinesRendered
  (prevents false positive redraws when appending lines after content shrunk)
- Add clearOnShrink setting to /settings in coding-agent
- Remove line truncation in custom message component (always show full content)
2026-02-02 08:10:08 +01:00
Mario Zechner 419c07fb19 Add [Unreleased] section for next cycle 2026-02-02 00:51:29 +01:00
Mario Zechner 580c02c74d Release v0.51.0 2026-02-02 00:50:46 +01:00
Mario Zechner ff0eb3ecd4 fix(ai): omit strict for unsupported openai completions 2026-02-02 00:44:55 +01:00
Mario Zechner 5d6a7d6c34 Better skill dir resolution, closes #1171 2026-02-02 00:33:51 +01:00
Mario Zechner 0a26db53ef fix(coding-agent): align ToolDefinition.execute signature with AgentTool
BREAKING CHANGE: ToolDefinition.execute parameter order changed from
(id, params, onUpdate, ctx, signal) to (id, params, signal, onUpdate, ctx).

This aligns with AgentTool.execute so wrapping built-in tools no longer
requires parameter reordering. Update extensions by swapping signal and
onUpdate parameters.
2026-02-02 00:29:47 +01:00
Mario Zechner 287a0b606d fix(coding-agent): guard clipboard native load 2026-02-02 00:23:12 +01:00
Mario Zechner ad8026f821 docs(coding-agent): add Termux setup guide and changelog audit
- Add comprehensive Termux (Android) setup documentation
- Add Termux platform detection in tools-manager for fd/rg
- Add New Features entries for Android/Termux, bash spawn hook, Linux ARM64 musl
- Add missing changelog entry for clipboard dependency update
2026-02-02 00:09:17 +01:00
Mario Zechner 86b43c8eac feat(coding-agent): add bash spawn hook 2026-02-01 23:17:51 +01:00
Mario Zechner 25fa1fafde docs(coding-agent): add Android/Termux changelog entry 2026-02-01 22:59:39 +01:00
Mario Zechner cb850676e7 feat(coding-agent): add Android/Termux support
- Make @mariozechner/clipboard an optional dependency
- Lazy-load clipboard module with graceful fallback
- Add Termux clipboard support via termux-clipboard-set
- Skip image clipboard on Termux (not supported)

fixes #1164
2026-02-01 22:59:11 +01:00
Mario Zechner cafe12b79e docs(coding-agent): add missing changelog entries and New Features section
- Add New Features section highlighting PI_PACKAGE_DIR, named session filter,
  typed tool call events, and Extension UI Protocol
- Add missing fix: tree selector focus behavior (#1142)
- Cross-package: cacheRetention passthrough fix (#1154)
- Cross-package: OAuth proxy support fix (#1132)
2026-02-01 22:26:03 +01:00
Mario Zechner b10a1743f9 Fix Discord link 2026-02-01 22:25:07 +01:00
Mario Zechner ce607fc343 feat(coding-agent): type ToolCallEvent.input per tool (#1147) 2026-02-01 19:13:55 +01:00
Mario Zechner 469fb5d27c fix(ai): OAuth login/refresh now respects HTTP proxy env vars
Extracted HTTP proxy setup to shared module and imported it from both
stream.ts and oauth/index.ts. This ensures fetch() calls during OAuth
flows (token exchange, refresh, project discovery) go through the proxy.

fixes #1132
2026-02-01 19:08:13 +01:00
Mario Zechnerandwarren 73839f876e feat(coding-agent): add named-only filter toggle to /resume picker (#1128)
Adds Ctrl+N toggle to filter sessions by named-only vs all in the /resume picker.

- Add NameFilter type and filtering logic to session-selector-search.ts
- Add toggleSessionNamedFilter app keybinding (default: ctrl+n)
- Show Name: All/Named state in header
- Empty state mentions toggle keybinding as escape hatch
- Export hasSessionName() to avoid duplication

Co-authored-by: warren <warren.winter@gmail.com>
2026-02-01 19:03:38 +01:00
Mario Zechner 47308d3f4f Update @mariozechner/clipboard to 0.3.2 (adds linux-arm64-musl support) 2026-02-01 18:23:23 +01:00
Mario Zechner 3c687b427e fix(skills): add path resolution guidance to skills preamble
Models were resolving relative paths in skill files from cwd instead of
the skill directory. Added explicit instruction that relative paths are
resolved from the skill directory (parent of the location path).

Fixes #1136
2026-02-01 18:06:13 +01:00
Mario Zechner 67dbe7c6b7 docs(coding-agent): add PI_PACKAGE_DIR to changelog and documentation
Adds changelog entry, README env var table entry, and CLI help text for
the PI_PACKAGE_DIR environment variable added in #1153.
2026-02-01 18:03:42 +01:00
Mario Zechner 8306b3bc20 docs(coding-agent): improve models.md with minimal example and defaults
- Add minimal example showing only required fields for local models
- Rename 'Basic Example' to 'Full Example' showing all fields
- Add 'Default' column to model configuration table
- Clarify that apiKey is required but ignored by Ollama
2026-02-01 17:51:24 +01:00
Mario Zechner c8b8f043a7 fix(coding-agent): make models.json model fields optional with defaults
Model definitions now only require 'id'. All other fields have sensible
defaults for local models (Ollama, LM Studio, etc.):
- name: defaults to id
- reasoning: defaults to false
- input: defaults to ["text"]
- cost: defaults to {input: 0, output: 0, cacheRead: 0, cacheWrite: 0}
- contextWindow: defaults to 128000
- maxTokens: defaults to 16384

Existing configs that specify all fields continue to work unchanged.

Fixes #1146
2026-02-01 17:49:19 +01:00
Mario Zechner 3830d74d22 fix(coding-agent): export discoverAndLoadExtensions from package
closes #1148
2026-02-01 17:47:01 +01:00
Mario Zechner bd00d2fbca fix(coding-agent): pi update not updating packages without args
fixes #1151
2026-02-01 17:41:36 +01:00
Mario Zechner 8f7ef85833 fix(ai): pass through cacheRetention in buildBaseOptions
fixes #1154
2026-02-01 17:37:45 +01:00
Mario Zechner b86fae351a Update Discord link 2026-02-01 17:04:02 +01:00
Mario Zechner 43be54c237 Add [Unreleased] section for next cycle 2026-02-01 09:36:24 +01:00
Mario Zechner 7678b075fb Release v0.50.9 2026-02-01 09:35:42 +01:00
Mario Zechner 55ce7e84ef chore: Fix import order 2026-02-01 09:34:44 +01:00
Mario Zechner b0e1672da2 docs(coding-agent): add cacheRetention changelog 2026-02-01 09:33:43 +01:00
Mario Zechner abfd04b5c5 feat(ai): add cacheRetention stream option 2026-02-01 09:32:10 +01:00
Mario Zechner e9ca0be769 feat(ai): add PI_AI_ANTIGRAVITY_VERSION env var override
Allows users to override the Antigravity User-Agent version when Google
updates their version requirements, avoiding the need to wait for a
package release.

Fixes #1129
2026-02-01 09:32:10 +01:00
Mario Zechner aa83170e0f Add [Unreleased] section for next cycle 2026-02-01 02:34:06 +01:00
Mario Zechner 4baa42cb6d Release v0.50.8 2026-02-01 02:33:23 +01:00
Mario Zechner 025b7bec7a fix(coding-agent): add spacer before context output 2026-02-01 02:24:51 +01:00
Mario Zechner 3b8d0a8921 feat(coding-agent): add resources_discover hook 2026-02-01 02:20:35 +01:00
Mario Zechner 6b6030d549 chore: audit changelog entries 2026-02-01 02:20:35 +01:00
Mario Zechner 39d69f42fd Merge branch 'merge/pr-940' 2026-02-01 01:53:26 +01:00
Mario Zechner 7d632ba1c3 chore: update changelog and docs for qwen extension 2026-02-01 01:52:53 +01:00
Mario Zechner c27168840c test(tui): cover non-qwerty kitty base layout fallback 2026-02-01 01:33:28 +01:00
Mario Zechner 6e4508f129 feat(coding-agent): threaded sort mode and compact format for /resume (#1124)
Adds 'Threaded' as a new sort mode (now default) that displays sessions
in a tree structure based on parent-child relationships. Compact one-line
format with message count and age right-aligned for clean title alignment.

Closes #1108
2026-02-01 01:10:58 +01:00
Mario Zechner 2a631a2488 feat(coding-agent): threaded sort mode and compact format for /resume
Adds 'Threaded' as a new sort mode (now default) that displays sessions
in a tree structure based on parent-child relationships. Compact one-line
format with message count and age right-aligned for clean title alignment.

Closes #1108
2026-02-01 01:10:36 +01:00
Mario Zechner 030a61d88c feat: add maxDelayMs setting to cap server-requested retry delays
When a provider (e.g., Google Gemini CLI) requests a retry delay longer
than maxDelayMs (default: 60s), the request fails immediately with an
informative error instead of waiting silently for hours.

The error is then handled by agent-level auto-retry, which shows the
delay to the user and allows aborting with Escape.

- Add maxRetryDelayMs to StreamOptions (packages/ai)
- Add maxRetryDelayMs to AgentOptions (packages/agent)
- Add retry.maxDelayMs to settings (packages/coding-agent)
- Update _isRetryableError to match 'retry delay' errors

fixes #1123
2026-02-01 00:50:41 +01:00
Mario Zechner 1bd68327f3 fix: make pre-commit hook fail on lint warnings, fix template literal warnings
- Add --error-on-warnings to biome check in root and web-ui package.json
- Convert string concatenation to template literals in daxnuts.ts
- Convert string concatenation to template literals in test file

Fixes #1103
2026-02-01 00:25:57 +01:00
Mario Zechner 7eae0a7d30 fix(coding-agent): make setThinkingLevel idempotent
switchSession() was appending spurious thinking_level_change entries
to session log on resume because setThinkingLevel() unconditionally
persisted. Now only persists if the level actually changes.

fixes #1118
2026-02-01 00:14:49 +01:00
Mario Zechner c9fa28e626 fix: override fast-xml-parser to 5.3.4 to resolve CVE 2026-01-31 23:48:22 +01:00
Mario Zechner 0ece01b51e chore(coding-agent): add dev script for watch mode 2026-01-31 23:24:18 +01:00
Mario Zechner 38ed9e86f8 fix(coding-agent): convert clipboard BMP images to PNG on paste
WSL2/WSLg often provides clipboard images as image/bmp only.
Previously this resulted in invalid PNG files being written.

Now readClipboardImage() converts unsupported formats to PNG
via Photon before returning.

Closes #1109

Based on #1112 by @lightningRalf
2026-01-31 23:24:10 +01:00
Mario Zechner f0eda2dfda Add [Unreleased] section for next cycle 2026-01-31 01:09:12 +01:00
Mario Zechner c50a0b8b6d Release v0.50.7 2026-01-31 01:08:29 +01:00
Mario Zechner ed80ab2129 fix(coding-agent): multi-file extensions in packages now discovered correctly
Package resolution now uses the same discovery logic as local extensions:
only index.ts (or manifest-declared entries) are loaded from subdirectories,
not helper modules.

fixes #1102
2026-01-31 01:07:33 +01:00
Mario Zechner 022b20f364 Add [Unreleased] section for next cycle 2026-01-30 22:03:55 +01:00
Mario Zechner f8d43ce02c Release v0.50.6 2026-01-30 22:03:14 +01:00
Mario Zechner d91cdc5f0c docs: add missing changelog entries for v0.50.5..HEAD
- tui: add #1095 content shrink fix (by @marckrenn)
- tui: add isImageLine perf optimization
- coding-agent: cross-package duplication for #1095, #1099
2026-01-30 22:02:17 +01:00
Mario Zechner 836e852af1 Fixes #1099 2026-01-30 18:19:16 +01:00
Mario Zechner 99281e5913 feat(coding-agent): add ctx.getSystemPrompt() to extension context
Adds a method to access the effective system prompt (after any per-turn
extension modifications) from the extension context.

Implementation:
- Add systemPrompt getter to AgentSession reading from agent.state.systemPrompt
- Wire getSystemPrompt through ExtensionContextActions to ExtensionRunner
- Add getSystemPrompt to interactive-mode's shortcut context
- Update docs with ctx.getSystemPrompt() section
- Add system-prompt-header.ts example
- Add example to docs reference table

Closes #1098
2026-01-30 17:44:25 +01:00
Mario Zechner abd0c47b03 perf(tui): use startsWith short-circuit in isImageLine 2026-01-30 17:07:43 +01:00
Mario Zechner 0091857f8b Add [Unreleased] section for next cycle 2026-01-30 11:48:16 +01:00
Mario Zechner 01d521c625 Release v0.50.5 2026-01-30 11:47:35 +01:00
Mario Zechner 012d5b488c style: format test file 2026-01-30 11:46:53 +01:00
Mario Zechner 283ad4d370 fix(tui): isImageLine should detect image escape sequences anywhere in line (#1091) 2026-01-30 11:46:35 +01:00
Mario Zechner 2cee7e17de Add [Unreleased] section for next cycle 2026-01-30 03:27:09 +01:00
Mario Zechner 3f5fe42d37 Release v0.50.4 2026-01-30 03:26:23 +01:00
Mario Zechner 0e2f90b734 feat(coding-agent): add daxnuts easter egg 2026-01-30 03:25:00 +01:00
Mario Zechner 355bc5adc3 docs: add missing changelog entries for commits since v0.50.3
- ai: Vercel AI Gateway routing support (#1051)
- tui: Ctrl+B/Ctrl+F keybindings (#1053), character jump navigation (#1074),
  line boundary navigation (#1050), performance optimizations (#1084)
- coding-agent: set_session_name RPC (#1075), config selector folder names (#1064)
- Cross-package duplication of tui/ai changes to coding-agent
- Add New Features section to coding-agent changelog
2026-01-30 03:25:00 +01:00
Mario Zechner 9ee58fdea9 feat(coding-agent): add OSC 52 clipboard support for SSH/mosh sessions
Fixes #1069
2026-01-30 03:25:00 +01:00
Mario Zechner cb08758696 feat(coding-agent): add "none" option to doubleEscapeAction setting
Allows disabling double-escape behavior entirely for users who
accidentally trigger the tree/fork selector.

Fixes #973
2026-01-30 01:20:14 +01:00
Mario Zechner 0587f045d9 docs(coding-agent): add changelog for tool arg defaults 2026-01-30 01:16:24 +01:00
Mario Zechner 8f7cdc24fd docs(ai): add changelog for tool arg defaults 2026-01-30 01:15:36 +01:00
Mario Zechner af813f9048 fix(ai): default tool call arguments
fixes #1065
2026-01-30 01:13:16 +01:00
Mario Zechner 098f396cf3 fix(coding-agent): respect .gitignore/.ignore/.fdignore when scanning package resources
fixes #1072
2026-01-30 01:02:56 +01:00
Mario Zechner c6557b93be docs(tui): note quoted autocomplete fix 2026-01-30 00:29:33 +01:00
Mario Zechner f181385859 fix(tui): avoid duplicating quotes during autocomplete 2026-01-30 00:26:24 +01:00
Mario Zechner 1665636fbe fix(tui): close quoted directory paths during autocomplete 2026-01-30 00:20:14 +01:00
Mario Zechner dc8539a001 fix(tui): support quoted paths with spaces in autocomplete
Fixes #1077
2026-01-30 00:11:12 +01:00