Commit graph

1835 commits

Author SHA1 Message Date
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
warren
2613754c47 feat(coding-agent): add ExtensionAPI.getCommands() 2026-02-03 12:18:52 +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
4137ed787b
Merge pull request #1203 from Itsnotaka/main
feat(coding-agent): implement install method detection
2026-02-03 01:44:41 +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
6909f61884
Merge pull request #1199 from academo/academo/implement-set-expand-tool-api
feat: add setToolsExpanded and getToolsExpanded to ExtensionsUIContext
2026-02-03 01:16:04 +01:00
Mario Zechner
c64e228b76 fix(tui): honor keybindings for submit fallback 2026-02-03 01:10:06 +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
Daniel Fu
0d828f925e feat(coding-agent): implement install method detection and update instructions
Added functionality to detect the installation method (bun-binary, npm, pnpm, yarn, bun, unknown) and provide corresponding update instructions for the package. This enhances user experience by guiding them on how to update the package based on their environment.
2026-02-02 15:33:01 -05: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
Esteban Beltran
ca62c44775
feat: add setToolsExpanded and getToolsExpanded to ExtensionsUIContext 2026-02-02 19:25:00 +01:00
haoqixu
29e2997f41 fix(coding-agent): filter out commands conflict with builtins 2026-02-03 01:23:49 +08:00
Michael Renner
f7c03ef6a2
fix(coding-agent): handle scoped models after logout (#1194) 2026-02-02 18:05:15 +01:00
Juan Ibiapina
d0228412d6
feat(coding-agent): add switchSession to Extension API (#1191)
Allows extension commands to programmatically switch to a different session file via ctx.switchSession(sessionPath).

fixes #1187
2026-02-02 18:03:26 +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
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
Aliou Diallo
fe1d0ae7f3
fix(coding-agent): preserve editor content during tree navigation summarization (#1169)
Do not overwrite editor text with the rewound user message after
navigateTree completes if the user has already typed something during
the summarization wait. Applies to both the /tree selector and the
extension-driven navigateTree handler.

docs: update changelog for PR #1169
2026-02-01 23:30:50 +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
Aliou Diallo
bc3fda518d fix(coding-agent): only update extension in scope it's in
update(source) unconditionally called updateSourceForScope for both
user and project scopes, creating a local install even when the source
was only registered globally. Unify into a single code path that
iterates settings per scope, filtering by identity when a source is
provided.
2026-02-01 22:43:11 +01:00
Aliou Diallo
7f78c383c9 test(coding-agent): fix git-update tests to use setPackages
Tests used setExtensionPaths but update() iterates packages, not
extensions. All 5 non-pinned tests were silently passing as no-ops.

Also add regression test for scope-aware update behavior.
2026-02-01 22:42:58 +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
G
a8a0f4b9fb feat(coding-agent): type ToolCallEvent.input per tool
Matches ToolResultEvent pattern with typed inputs via discriminated union.

- Export *ToolInput types from tool schemas
- Add *ToolCallEvent interfaces for each built-in tool
- Add isToolCallEventType() guard with overloads for built-ins

Direct narrowing (event.toolName === "bash") doesn't work due to
CustomToolCallEvent.toolName: string overlapping with literals.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 19:13:52 +01:00
Mario Zechner
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
Daniel M. Drucker, Ph.D.
5893cd092c
openclaw renaming (#1145) 2026-02-01 18:32:44 +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
George Zhang
0e49235af0
feat(config): add PI_PACKAGE_DIR env var to override package path (#1153) 2026-02-01 17:52:44 +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