Commit graph

1787 commits

Author SHA1 Message Date
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
b86fae351a Update Discord link 2026-02-01 17:04:02 +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
Sviatoslav Abakumov
4ca7bbe450
Fix tree selector focus behavior (#1142)
* fix(coding-agent): tree selector focuses nearest visible ancestor

When the selected entry is not visible (filtered out by mode change or a
metadata entry like model_change), walk up the parent chain to find the
nearest visible ancestor instead of jumping to the last item.

Fixes selection behavior for:

- Initial selection when currentLeafId is a metadata entry
- Filter switching, e.g. Ctrl+U for user-only mode

* fix(coding-agent): tree selector preserves selection through empty filters

When switching to a filter with no results, e.g. labeled-only with no
labels and back, the cursor would reset to the first message instead of
the original selection.

Track lastSelectedId as a class member and only update it when
filteredNodes is non-empty, preserving the selection across empty filter
results.

* test(coding-agent): add tree selector filter and selection tests

- Test metadata entry handling (model_change, thinking_level_change)
- Test filter switching with parent traversal (default ↔ user-only)
- Test empty filter preservation (labeled-only with no labels)
2026-02-01 13:23:52 +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
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
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
7d632ba1c3 chore: update changelog and docs for qwen extension 2026-02-01 01:52:53 +01:00
4h9fbZ
993c45a059 feat(coding-agent): add Qwen CLI OAuth provider 2026-02-01 01:51:55 +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
Petr Baudis
178e1e11c1 feat(coding-agent): compact one-line format for /resume session list
- One line per session instead of multi-line (message + metadata + blank)
- Age shown in compact format (now, 5m, 2h, 3d, 2w, 1mo, 1y)
- Message count on the left side
- Current session highlighted in accent color
- Selected row has background highlight
- Increased maxVisible from 5 to 10 sessions
2026-01-31 23:40:02 +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
Petr Baudis
42d54e0d1c feat(coding-agent): add threaded sort mode to /resume with tree display
Adds 'Threaded' as a new sort mode (now default) that displays sessions
in a tree structure based on parent-child relationships. The tree is
sorted by root session's modified date. Other sort modes (Recent, Fuzzy)
continue to show flat lists.

Sort mode cycles: Threaded -> Recent -> Fuzzy -> Threaded
2026-01-31 23:17:05 +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
Emanuel Stadler
fd6c6d8772
Update providers.md to include opencode provider (#1094)
add 'opencode' provider configuration to the documentation.
2026-01-30 16:43:32 +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
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
Ben Vargas
e045a9f142
feat(ai): add Vercel AI Gateway routing support (#1051)
* feat(ai): add Vercel AI Gateway routing support

Add vercelGatewayRouting to OpenAICompletionsCompat, parallel to
openRouterRouting. When a model targets ai-gateway.vercel.sh and has
vercelGatewayRouting configured, the openai-completions provider passes
providerOptions.gateway with only/order in the request body.

Changes:
- types.ts: VercelGatewayRouting interface + field on OpenAICompletionsCompat
- openai-completions.ts: buildParams passes providerOptions.gateway,
  detectCompat/getCompat include the new field
- model-registry.ts: VercelGatewayRoutingSchema for models.json validation
- test: updated Required<OpenAICompletionsCompat> in test fixture

* docs(coding-agent): add vercelGatewayRouting to custom models documentation
2026-01-30 01:44:51 +01:00
Nathan Igo
902473797d
feat(tui,coding-agent): add ctrl+b/ctrl+f cursor navigation keybindings (#1053) 2026-01-30 01:43:54 +01:00
Umberto B.
af4cf5f4ef
fix(coding-agent): show folder name for extensions in config selector (#1064) 2026-01-30 01:43:01 +01:00
Sviatoslav Abakumov
c5d16fe456
feat(tui): add character jump navigation (Ctrl+], Ctrl+Alt+]) (#1074)
Add Bash/Readline-style character search:

- Ctrl+] enters forward jump mode, awaits next character, jumps to it
- Ctrl+Alt+] does the same but searches backward
- Multi-line search
- Case-sensitive matching
- Pressing the hotkey again cancels; control chars cancel and fall
  through
2026-01-30 01:42:14 +01:00
Daniel Nouri
e20583aac8
feat(coding-agent): add set_session_name RPC command (#1075)
- Add set_session_name command with empty name validation
- Expose sessionName in get_state response
- Add setSessionName() to AgentSession and RpcClient
- Document in docs/rpc.md
2026-01-30 01:41:58 +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