Commit Graph

5822 Commits

Author SHA1 Message Date
roboomp bfbbbb02af fix(cli): rejected plugins declaring missing extension entries
Surfaced manifest entries that resolve to nothing on disk at install time instead of silently skipping them through resolvePluginExtensionPaths.
2026-06-11 16:42:27 +00:00
roboomp dd5936701e fix(cli): restored plugin tree after invalid reinstall
Backed up existing npm plugin package trees before reinstall validation so failed extension loads restore the previous working package contents.
2026-06-11 16:39:39 +00:00
roboomp 9842ad8494 fix(cli): rejected unloadable npm plugin installs
Validated npm plugin extension entry points before recording installs and rolled back fresh installs that cannot resolve their extension imports.

Fixes #2312
2026-06-11 16:32:27 +00:00
can1357 23dedc5086 chore: bump version to 15.11.2 2026-06-11 18:15:52 +02:00
can1357 f2f8081ecc chore: update changelogs 2026-06-11 18:15:24 +02:00
can1357 ce4ebad726 feat(agent): added per-call tool concurrency resolver and parallel bash execution
- Extended `AgentTool.concurrency` to accept per-call resolver functions and resolved concurrency mode from each tool call, falling back to exclusive on resolver errors.
- Updated BashTool to schedule non-PTY calls as shared and PTY calls as exclusive so non-interactive bash calls can run in parallel within one message.
- Tracked in-use persistent shell sessions in the bash executor and routed overlapping calls on the same session key to isolated one-shot shells while preserving owner session availability.
2026-06-11 18:13:07 +02:00
can1357 926dfdea39 fix(coding-agent): restored side-channel IRC auto-reply for busy recipients when async execution is disabled
A subagent's send await:true to Main during a blocking task spawn was a structural deadlock: deliverIrcMessage queues mid-turn messages as step-boundary asides, but Main's next boundary requires the sender's own batch to finish, so the sender always burned the full irc.timeoutMs. Awaited sends now pass expectsReply through IrcBus.send; a mid-turn recipient with async.enabled off generates an ephemeral no-tools reply via runEphemeralTurn, records an irc:autoreply aside in its own history, and delivers it back over the bus with replyTo threading so the sender's waiter resolves.
2026-06-11 18:12:22 +02:00
can1357 abc152e5ca fix(test): write loader fixtures before module resolution warms Bun dir cache
PR #2297's new test interleaved fixture writes with loader calls in one temp
dir; Bun's resolver caches directory entries process-wide, so tool.ts written
after loadExtensions() resolved extension.ts was invisible to the subsequent
dynamic import on macOS. Write all fixtures up front.
2026-06-11 18:08:51 +02:00
can1357 64f081397c Merge PR #2263: fix(tools): normalize Windows search paths 2026-06-11 18:00:44 +02:00
can1357 defdf0a0ab ux(coding-agent/tools): refined job status output messaging
- Removed the running count from the status meta list so only completed, failed, and cancelled counts are shown.
- Updated the waiting message to use singular/plural job labels and simplify wording when all jobs are running.
2026-06-11 18:00:42 +02:00
can1357 965c5d4000 Merge PR #2262: feat(rpc): expose slash command metadata 2026-06-11 17:59:40 +02:00
can1357 76e0b1b9a9 Merge PR #2308: Add external editor for Plan Review annotations 2026-06-11 17:59:08 +02:00
can1357 9dbc55bcb9 Merge PR #2283: feat(prompting): add magic keyword toggles 2026-06-11 17:58:45 +02:00
can1357 b2b213f394 Merge PR #2310: Avoid transient syntax highlight work 2026-06-11 17:54:23 +02:00
can1357 5b4a94e036 Merge PR #2297: fix(coding-agent): avoid mixed-runtime self imports in loaders 2026-06-11 17:52:42 +02:00
Bin Jin fe315528a8 fix(coding-agent): add local memory consolidation instructions 2026-06-11 17:52:18 +02:00
Can Bölük 608cd4103b Merge branch 'main' into fix/browser-cdp-discovered-pages 2026-06-11 17:51:41 +02:00
Can Bölük 640d192b72 Merge branch 'main' into feat/expert-elixir-lsp 2026-06-11 17:46:44 +02:00
can1357 8db03c56d4 chore: bump version to 15.11.1 2026-06-11 16:59:21 +02:00
can1357 43238ce49a ux(coding-agent/modes): updated status line job indicator to use a dedicated icon
- Added a new `icon.job` symbol entry to all symbol sets and exposed it on the theme icon map.
- Updated the status line to render running background jobs with the new job icon and count instead of the previous text label.
- Reordered the job status segment insertion so the job indicator is added to the leading position in the right-side parts.
2026-06-11 16:58:49 +02:00
ben 51fb10ba79 Fix CI test stability 2026-06-11 22:57:19 +08:00
can1357 80ffe37c7f fix(coding-agent): align call preview with result and schema order
Reorders sections in the streaming call preview to match `renderResult` and the
schema's field order. This prevents visual jumps when the preview transitions
to a result and ensures append-only growth of streamed content.

Additionally, omits the agent-list divider when no agent rows are present.
2026-06-11 16:50:48 +02:00
ben dd71790924 Merge remote-tracking branch 'origin/main' into fix/render-highlight-streaming 2026-06-11 22:48:01 +08:00
ben 8a55ce7b85 Use supplied theme for LSP hover highlighting 2026-06-11 22:41:06 +08:00
can1357 97862e660a feat(coding-agent): added streamed tool-arg reveal with UTF-16-safe incremental rendering
- Added smooth streaming reveal of streamed tool-call args and `{ input }` partial previews.
- Integrated ToolArgsRevealController in EventController to route partial and final args.
- Implemented UTF-16-safe slicing to prevent surrogate-pair splits during reveal boundaries.
- Implemented reveal lifecycle controls to flush or stop streamed arg frames at message boundaries.
- Added tests for monotonic reveal progression, non-smooth immediate output, and flush/stop behavior.
2026-06-11 16:29:33 +02:00
can1357 0e3e211639 docs(tui): clarify component-scoped rendering and document performance fix
- Updated `tui-runtime-internals.md` and `tui/README.md` to describe the `requestComponentRender` API and its partial compose reuse behavior.
- Added an entry to `packages/coding-agent/CHANGELOG.md` explaining how the component-scoped render path resolves input lag caused by frequent full TUI re-compositions from animated loaders.
2026-06-11 16:26:50 +02:00
can1357 37e00b10c4 test(tui): stabilized ACP command tests and added TUI committed-rows coverage
- Replaced the ACP agent test's fixed bootstrap wait with a deterministic `/reload-plugins` flow and asserted against the latest available-commands advertisement.
- Added a TUI probe test that verifies native committed scrollback rows are passed to children before render.
2026-06-11 16:23:41 +02:00
can1357 b25b7cc7c2 fix(coding-agent): fixed committed transcript rerendering after block finalization
- Added transcript and assistant block version tracking for finalized segments.
- Changed committed block reuse logic to require prior finalization and same version.
- Fixed rerendering of committed finalized blocks when version values changed.
2026-06-11 16:21:44 +02:00
can1357 62bdb98e49 docs(coding-agent): updated changelogs and adjusted controller test UI mocks
- Updated the catalog changelog by removing a duplicate `Fixed` heading and leaving the NVIDIA Qwen fix in the current release notes.
- Restructured the coding-agent changelog by moving unresolved fixes into Unreleased and removing duplicated historical entries.
- Added `requestComponentRender` to mocked `ui` objects in coding-agent controller tests to match the updated interface.
2026-06-11 16:14:08 +02:00
can1357 b1338b8f57 feat(tui): added component-scoped rendering with partial compose reuse
- Added `TUI.requestComponentRender`, enabling component-scoped render requests.
- Implemented partial compose reuse by resolving and memoizing affected root segments.
- Fixed component-scoped updates to keep frame-seam rows continuous across partial renders.
- Added component-render and loader tests for reuse, downgrade, and call-count coverage.
2026-06-11 16:13:18 +02:00
can1357 844c8dbdfe fix(coding-agent): restored task sync mode when async.enabled was false
- Updated TaskTool to skip `session.asyncJobManager` and run `task` spawns inline whenever `async.enabled` is false.
- Set `async.enabled` default to `true` and updated task prompts/settings text to reflect async-versus-sync behavior.
- Adjusted task batching tests to cover both async background execution and synchronous batched execution when async is disabled.
2026-06-11 16:07:38 +02:00
Can Bölük aabf5118f7 Merge branch 'main' into fix/render-cpu-core 2026-06-11 16:06:53 +02:00
Can Bölük d35efd67e4 Merge branch 'main' into fix-mcp-oauth-resource 2026-06-11 15:53:15 +02:00
can1357 c9715460d0 Merge remote-tracking branch 'origin/farm/a8779c95/windows-cmd-mcp-spawn' 2026-06-11 15:51:09 +02:00
can1357 be834e017a Merge remote-tracking branch 'origin/farm/bf519648/hashline-block-anchor-guidance' 2026-06-11 15:51:01 +02:00
can1357 0fa27b2afc Merge remote-tracking branch 'origin/farm/25da87c8/fallback-on-refusal' 2026-06-11 15:50:45 +02:00
can1357 5d3f22470d Merge remote-tracking branch 'origin/farm/752cbbfe/anthropic-search-metadata-user-id' 2026-06-11 15:50:17 +02:00
can1357 b0a5b8859d Merge remote-tracking branch 'origin/farm/ace32da7/tree-view-user-message-connectors' 2026-06-11 15:49:26 +02:00
ben 495758b517 Avoid transient syntax highlight work 2026-06-11 20:30:22 +08:00
ben 745c9a9df4 Fix render CPU thrash in long transcripts 2026-06-11 20:27:52 +08:00
Vu Anh Nguyen 026ff8d51a Add external editor for plan annotations 2026-06-11 18:31:59 +07:00
roboomp dcf93a2ee9 feat(tui): added statusLine.transparent setting for terminal-native background
Status line painted theme.statusLineBg across the bar, which renders as
visible dark/black blocks on terminals (Ghostty, transparent themes,
custom palettes) whose background does not match the theme's hardcoded
status-line color. Powerline end caps inherited the same fill so they
also stood out against the surrounding terminal.

The new statusLine.transparent appearance setting (default off) routes
the bar to the terminal's default background via the existing empty-bg
sentinel (\x1b[49m) and drops the powerline end caps, which need a
contrasting fill to bridge into the terminal.

Theme authors can opt in per-theme by setting statusLineBg to '' — the
existing empty-string sentinel already resolves to the same ANSI escape
the new toggle uses.

Fixes #2306
2026-06-11 10:49:32 +00:00
roboomp 5e6f5bf66d fix(tui): scoped chain gutter extension to nearest branch
Only chain rows should force their nearest connector gutter back to vertical.
Inherited gutters from older last-sibling ancestors must stay suppressed so
linear continuations under nested branched grandchildren do not draw floating
vertical lines below unrelated branch connectors.

Updated the TUI renderer, mirrored the HTML export renderer, regenerated the
HTML template, and extended the #2298 regression to cover nested branched
grandchildren with linear continuations.

Fixes #2298
2026-06-11 10:26:20 +00:00
roboomp d40a136105 style: bun run fix 2026-06-11 10:21:02 +00:00
roboomp dca4da87f1 fix(tui): extended chain gutter past last-sibling branches in tree view
The /tree selector and HTML session export rendered chain rows (flattened
user/assistant turns) with bare spaces when their nearest branched ancestor
was the last sibling, breaking the visual connection back to the branch
parent.

Cause: tree-selector.ts and export/html/template.js propagated
`show: !isLast` to descendant gutters, so any chain row under a `└─`
ancestor rendered the gutter as space instead of `│`. Branched
grandchildren correctly need that space to keep standard tree drawing, but
chain-flattened conversation rows lost their anchor.

Fix: at render time, when the row has no connector of its own (chain row),
force the gutter to `│` regardless of the ancestor's `show` flag. Rows
with their own connector still respect the `show` flag so a `│` never
floats below an unrelated `└─` for branched descendants.

Applied identically in tree-selector.ts (TUI) and export/html/template.js
(HTML export, regenerated into template.generated.ts).

Fixes #2298
2026-06-11 10:20:56 +00:00
jiwangyihao 788910b7cd fix(coding-agent): bind extension APIs to host runtime 2026-06-11 17:56:16 +08:00
roboomp dfc04ab482 docs(changelog): move #2295 fix to Unreleased
The web-search metadata.user_id fix was mistakenly added under the released 15.11.0 section; relocate it under [Unreleased] per AGENTS.md.

Refs #2295
2026-06-11 08:26:18 +00:00
roboomp 4f39003a0f fix(providers): claude-code-shaped metadata for oauth search
Anthropic OAuth web search now uses resolveAnthropicMetadataUserId so metadata.user_id matches the main streaming path's {session_id, account_uuid?, device_id} JSON envelope. API-key paths keep forwarding the raw session id.

Exported resolveAnthropicMetadataUserId from pi-ai. Extended the regression test to cover the OAuth shape.

Refs #2295
2026-06-11 08:24:53 +00:00
roboomp 22f05cb1a3 fix(providers): sent anthropic search metadata
Forwarded the active web search session id as Anthropic Messages metadata.user_id so enterprise gateways can attribute and rate-limit search calls consistently with the main streaming path.

Added a focused Anthropic web search request-shape regression test.

Fixes #2295
2026-06-11 08:14:46 +00:00
roboomp dba543f226 fix(retry): capped classifier fallback attempts
Kept classifier refusals eligible for model fallback, but restored the retry.maxRetries guard so fallback chains cannot consume extra provider calls after the turn budget is exhausted.

Fixes #2290
2026-06-11 05:44:20 +00:00