Commit Graph

1214 Commits

Author SHA1 Message Date
Mario Zechner
e3fee7a511 fix(keybindings): migrate to namespaced ids closes #2391 2026-03-20 01:55:30 +01:00
Mario Zechner
74a46fc7ea fix(coding-agent): queue file mutations across edit and write
closes #2327
2026-03-20 01:55:30 +01:00
Mario Zechner
21ef72e9ce fix(coding-agent): protect rpc stdout fixes #2388 2026-03-20 01:55:30 +01:00
Petr Baudis
8a0529ed9d fix(coding-agent): resolve waitForRetry() race when auto-retry produces tool calls (#2440)
When auto-retry fires after a retryable error (e.g. overloaded_error) and the
retry response includes tool_use, session.prompt() returned prematurely because
_resolveRetry() was called on the first successful message_end — while the
agent loop was still executing tools via the fire-and-forget agent.continue().

This caused callers to observe isStreaming=true after prompt() returned, and
follow-up session.prompt() calls threw 'Agent is already processing'. The
tool execution results were silently lost.

Fix: move _resolveRetry() from the message_end handler to the agent_end
handler. The _retryAttempt counter reset stays on message_end (preventing
accumulation across LLM calls within a turn), but the promise that unblocks
waitForRetry() now only resolves when the full agent loop completes.
2026-03-20 00:33:17 +01:00
Sviatoslav Abakumov
970774ec3c fix(coding-agent): /model shows stale scoped models (#2408)
After updating models.json, the scoped model selector still shows the
old values when opened. Switching to the "all" scope, however, shows
updated model definitions.
2026-03-19 23:40:07 +01:00
Dillon Mulroy
fe535333fe feat(coding-agent): add resizable share sidebar (#2435) 2026-03-19 23:31:53 +01:00
Mario Zechner
31c7406a56 fix(coding-agent): suppress process warnings in CLI closes #2404 2026-03-19 22:21:48 +01:00
Mario Zechner
a6337dc709 fix(coding-agent): show bash tool elapsed time at bottom closes #2406 2026-03-19 22:13:27 +01:00
Mario Zechner
3620adb3e2 fix(coding-agent): reload custom themes from disk watcher\n\ncloses #2417\ncloses #2003 2026-03-19 21:53:05 +01:00
Mario Zechner
e0f85a3b5e fix(coding-agent): avoid blocking footer branch refresh and isolate invalid extension provider registrations closes #2418 closes #2431 2026-03-19 21:40:55 +01:00
Duncan Ogilvie
25b185f398 fix(coding-agent): fix windows hanging when descendants inherit stdout/stderr handles (#2389) 2026-03-19 08:34:52 +01:00
Mario Zechner
ce15f40769 fix(coding-agent): use native clipboard text copy on desktop closes #2347 2026-03-18 22:42:02 +01:00
Helmut Januschka
fd385ecf06 feat(coding-agent): add JSONL export/import for sessions (#2356)
fixes #2274
2026-03-18 22:37:11 +01:00
Burak Varlı
d7befef90e fix(coding-agent): use setBedrockProviderModule in Bun entrypoint closes #2349 (#2350)
`registerApiProvider()` gets wiped by `resetApiProviders()` during
session reload, replacing the Bun-bundled Bedrock provider with the
opaque lazy loader that cannot resolve inside the binary.
`setBedrockProviderModule()` sets an override that survives resets.
2026-03-18 16:41:45 +01:00
PriNova
f704ee7255 fix(ai): use OpenRouter reasoning payload (#2298)
* fix(ai): use OpenRouter reasoning payload

* fix(coding-agent): stop updating packages on startup closes #1963

* fix(ai): add openrouter thinkingFormat compat

---------

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-03-18 11:23:27 +01:00
Mario Zechner
8a8e2a8049 docs(agent): update steering docs for deferred tool execution closes #2330 2026-03-18 03:49:30 +01:00
Mario Zechner
f951d45000 fix(coding-agent): stop updating packages on startup closes #1963 2026-03-18 03:26:46 +01:00
Mario Zechner
2becbbdff3 fix(coding-agent): refresh active model after provider updates closes #2291 2026-03-18 01:12:11 +01:00
Mario Zechner
1a9185d3cb feat(coding-agent): add --fork session flag closes #2290 2026-03-18 01:09:23 +01:00
Mario Zechner
9651e4114d feat(coding-agent): expose local bash operations closes #2299 2026-03-18 00:41:57 +01:00
Mario Zechner
7eb55b08cf fix(coding-agent): reload keybindings on /reload closes #2309 2026-03-17 23:59:45 +01:00
Mario Zechner
8dc2bb969c fix(coding-agent,ai): restore Bun binary lazy provider loading closes #2314 2026-03-17 23:30:18 +01:00
Mario Zechner
d914d1c199 fix(coding-agent): handle z.ai network_error closes #2313 2026-03-17 22:34:49 +01:00
Mario Zechner
bbd8392ef9 fix(coding-agent): merge piped stdin into initial prompt closes #2315 2026-03-17 22:25:35 +01:00
Gabriel Goller
9fc11921e4 fix(coding-agent): skip tmux extended-keys warning when tmux is unreachable (#2311)
When running inside a sandbox (e.g., bubblewrap) that blocks access
to the tmux socket, the tmux query hangs and times out, returning
undefined. Previously this was treated as "extended-keys is off",
showing a false warning. Now we skip the warning when the tmux server
can't be reached.
2026-03-17 22:15:25 +01:00
Aliou Diallo
18d90b5c48 fix(coding-agent): handle empty session titles and session info metadata (#2304)
* fix(coding-agent): handle empty session titles in tree

* fix(coding-agent): ignore session info in summaries

* docs: update changelog for PR #2304
2026-03-17 16:22:04 +01:00
Aaron Soules
2d05e87281 fix(coding-agent): handle reftable footer branch detection (#2300)
* fix(coding-agent): handle reftable footer branch detection

- Fall back to git commands when HEAD contains refs/heads/.invalid
- Treat unresolved .invalid as detached instead of showing literal .invalid
- Watch reftable directory for branch change updates
- Resolve commonGitDir for worktree setups

fixes #2123

* fix(coding-agent): improve reftable branch detection and reduce false-positive rerenders

- Re-resolve branch on watcher events instead of invalidating cache;
  only notify listeners when the branch string actually changed
- Add regression tests: regular repo fast path (no spawnSync), nested
  cwd upward walk, unchanged-branch reftable churn suppression
2026-03-17 15:33:33 +01:00
Mario Zechner
42d6a5461f fix(coding-agent): emit OSC 133 command-executed marker closes #2242 2026-03-17 12:56:44 +01:00
Mario Zechner
7817e9b227 fix(coding-agent): make prompt snippets opt in closes #2285 2026-03-17 12:44:16 +01:00
Mario Zechner
8e3bb4ff55 fix(coding-agent): retry provider returned error closes #2264 2026-03-17 12:43:20 +01:00
Mario Zechner
700bcf3455 fix(coding-agent): normalize fuzzy edit matching and run touched tests closes #2044 2026-03-15 19:15:38 +01:00
Mario Zechner
b752a6e0a1 fix(coding-agent): handle slash-delimited /model refs closes #2174 2026-03-15 16:41:06 +01:00
Markus Ylisiurunen
c9a3d14aa5 feat(tui): make select list column sizing configurable (#2154)
* feat(tui): make select list layout configurable

* feat(tui): tune select list column sizing

* test(tui): fix select list alignment assertions
2026-03-14 15:50:00 +01:00
Mario Zechner
1feccfedcb fix(coding-agent): handle WSL clipboard image fallback\n\nCloses #1722 2026-03-14 06:07:38 +01:00
Mario Zechner
80ca61a1c4 fix(coding-agent): start UI before session_start closes #2035 2026-03-14 05:48:38 +01:00
Mario Zechner
c3fc724887 fix(coding-agent): add uninstall alias
closes #2051
2026-03-14 05:44:47 +01:00
badlogic
4f81c3c28d fix(coding-agent,tui): stabilize windows shell/path handling
fixes #1775

fixes #1769
2026-03-14 05:36:21 +01:00
Mario Zechner
03ad7ecee7 fix(ai): add qwen-chat-template compat mode closes #2020 2026-03-14 05:20:27 +01:00
Mario Zechner
a0396e1f9b fix(coding-agent): silence headless clipboard fallback errors closes #2056 2026-03-14 05:05:07 +01:00
Mario Zechner
bdf2419ac3 fix(coding-agent): honor provider compat in models.json closes #2062 2026-03-14 04:55:03 +01:00
badlogic
671798d67f fix(coding-agent): normalize prompt cwd for bash-safe windows paths closes #2080 2026-03-14 04:48:52 +01:00
Mario Zechner
7ddaf150d6 fix(coding-agent): support configurable npm wrapper command closes #2072 2026-03-14 04:38:01 +01:00
Mario Zechner
a8e3c829fa fix(coding-agent): stop skill recursion at root closes #2075 2026-03-14 04:18:28 +01:00
Mario Zechner
b6181bed92 fix(coding-agent): expand paste markers in ctx.ui.getEditorText(), closes #2084 2026-03-14 04:08:24 +01:00
Mario Zechner
5c9ce47c53 fix(coding-agent): fix startup crash when downloading fd/ripgrep on first run
Use pipeline() instead of finished(readable.pipe(writable)) so stream
errors from abort signals are caught as promise rejections. Increase
download timeout from 10s to 120s for multi-MB archives.

closes #2066
2026-03-14 03:57:59 +01:00
Mario Zechner
63ac2df24d fix(coding-agent): sync tool hooks with agent event processing closes #2113 2026-03-14 03:10:04 +01:00
Haoyu Zha
f04d9bc428 feat(session-manager): allow supplying custom session ID in newSession() (#2130)
* feat(session-manager): allow supplying custom session ID in newSession()

Add optional `id` field to `NewSessionOptions`. When provided, this ID
is used as the session ID instead of generating a random UUID. Existing
callers are unaffected since the field is optional and falls back to
`randomUUID()`.

Closes #2097

* test(session-manager): add tests for custom session ID in newSession()

Verify that newSession() uses the provided id when supplied, falls back
to randomUUID() when omitted, and includes the custom id in the session
header.
2026-03-14 01:34:48 +01:00
Mario Zechner
4b9e6006fa fix(coding-agent): keep only ISO date in system prompt closes #2131 2026-03-13 21:07:03 +01:00
KangYu
2501a053e0 fix(coding-agent): match server_error and internal_error in retry regex (#2117)
The _isRetryableError() regex used literal spaces ("server error",
"internal error") but Codex SSE error events use underscores
("server_error").  Change to .? so both space and underscore (and
direct concatenation) are matched, enabling automatic retry on
transient Codex SSE errors.

fixes #2091
2026-03-13 18:51:04 +01:00
Melih Mucuk
738319e465 fix(coding-agent): Fix EXIF orientation for JPEG and WebP images (#2105)
* fix(coding-agent): apply EXIF orientation correction during image convert and resize

* docs(coding-agent): add PR reference to changelog entry
2026-03-13 17:44:14 +01:00