Commit graph

789 commits

Author SHA1 Message Date
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
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
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
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
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
Aliou Diallo
7feae0d5c2
docs(coding-agent): document extension UI protocol in RPC docs, add examples (#1144) 2026-02-01 13:25:18 +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
b0e1672da2 docs(coding-agent): add cacheRetention changelog 2026-02-01 09:33:43 +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
scutifer
71d7a14b18
feat(coding-agent): add a spinner extension (#1131)
When the agent is running, we prefix an animated braille spinner to the title to show busy state.
Its cleared when the agent is done
2026-02-01 09:20:58 +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
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
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
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
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
Juan Ibiapina
6f2d066342 feat(coding-agent): add keybinding actions for /tree, /fork, and /new
Add newSession, tree, and fork as configurable keybinding actions.
All unbound by default. Users can configure in keybindings.json.

Closes #1088
2026-01-31 23:09:22 +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
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
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
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
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
098f396cf3 fix(coding-agent): respect .gitignore/.ignore/.fdignore when scanning package resources
fixes #1072
2026-01-30 01:02:56 +01:00
Mario Zechner
4edb506df8 fix(coding-agent): handle macOS filenames with curly quotes and NFD Unicode
Fixes #1078

- Add tryNFDVariant() to normalize paths to NFD form
- Add tryCurlyQuoteVariant() to convert straight quotes to curly quotes
- Try combined NFD + curly quote variant for French macOS screenshots
- Add comprehensive tests for path-utils
2026-01-29 22:58:22 +01:00
Mario Zechner
df667b510a Release v0.50.3 2026-01-29 04:19:02 +01:00
Mario Zechner
b78b21c588 docs(coding-agent): update changelog with missing fix entry and new features section
- Add New Features section for Kimi For Coding provider
- Add fix entry for resource ordering when resuming sessions
2026-01-29 04:16:55 +01:00
Mario Zechner
87ab5c5c3b feat(ai): add Kimi For Coding provider support
- Add kimi-coding provider using Anthropic Messages API
- API endpoint: https://api.kimi.com/coding/v1
- Environment variable: KIMI_API_KEY
- Models: kimi-k2-thinking (text), k2p5 (text + image)
- Add context overflow detection pattern for Kimi errors
- Add tests for all standard test suites
2026-01-29 04:12:28 +01:00