Commit Graph

11093 Commits

Author SHA1 Message Date
can1357 e4e8f8a40a Merge PR #6785: fix(coding-agent): preserve extension providers for plan subagents (@roboomp) 2026-07-27 15:57:45 +02:00
can1357 d3e55817fb Merge PR #6802: fix(lsp): honor custom server language ids (@roboomp) 2026-07-27 15:57:45 +02:00
can1357 0bfcdd434b Merge PR #6768: fix(tui): defer large command panels during streaming to stop scrollback dupes (@roboomp) 2026-07-27 15:57:45 +02:00
can1357 b0063dd180 Merge PR #6787: fix(mcp): deduplicate aliased server connections (@roboomp) 2026-07-27 15:57:44 +02:00
can1357 f9c4118b0b Merge PR #6790: fix(mcp): resolve native resource URIs (@FernandeZ-hjm) 2026-07-27 15:57:44 +02:00
can1357 c60b6971db feat(coding-agent): used static colon separator for working terminal title on windows
- Keep terminal working titles static with a colon separator on Windows instead of scheduling animated spinner updates.
- Update terminal title builder and state machine to check the platform and bypass timer intervals on win32.
2026-07-27 15:04:04 +02:00
can1357 5e139d9515 feat(coding-agent): reduced terminal title update overhead with deduplication and FFI
- Deduplicate terminal title writes globally across all platforms.
- Adopt `SetConsoleTitleW` via `bun:ffi` for Windows terminal updates instead of OSC writes.
2026-07-27 14:35:06 +02:00
can1357 ae01a76136 fix(agent): hardened pre-model-call gate state cleanup and API surface
- Cleared the retained soft-requirement lifecycle alongside the deferred
  hard choice: clearDeferredToolDirectives() owns both, is called from
  clearAllQueues/reset and session-scoped tool-state cleanup, with a
  regression covering reminder re-injection after a queue clear.
- Allowed void-returning pre-model gates via the named AgentBeforeModelCall
  type and normalized gate results in the loop and Agent dispatcher.
- Documented that the first gate installed mid-run applies from the next
  run; corrected the onToolChoiceRejected contract docs; documented the
  cross-run lifetime of ToolChoiceQueue's in-flight claim.
- Removed the unused addBeforeModelContextBuild hook.
- Relocated both packages' changelog entries out of the released 17.1.4
  sections into Unreleased with PR attribution, folding the never-shipped
  Fixed bullet into Added and noting the input-event timing change.
2026-07-27 14:08:53 +02:00
can1357 6bbfc1110a Merge PR #6543: feat(agent): add a pre-model-call gate that can stop the turn (@paralin) 2026-07-27 14:01:11 +02:00
roboomp cb55edd60e fix(lsp): honored custom server language ids
Added an optional per-server languageId override and used it for both disk-backed and in-memory didOpen notifications.

Covered config loading and both document-open paths with a fake custom GDScript server.

Fixes #6800
2026-07-27 11:54:29 +00:00
Dongmen Laohu 2c77c8535a fix(mcp): resolve native resource URIs 2026-07-27 18:59:12 +08:00
roboomp da11d906ff fix(mcp): unified tool collision handling
Moved first-wins MCP tool-name deduplication and origin-aware warnings into one shared helper used by startup extension registration, SDK custom-tool assembly, and deferred refreshes.

Added an SDK startup regression proving colliding MCP proxy tools keep the first origin instead of silently overwriting it.

Fixes #6786
2026-07-27 10:49:59 +00:00
roboomp 6c96a5ee9f fix(mcp): filter disabled servers before dedup
Applied the denylist and per-server enabled:false exclusions before connection-equivalence deduplication, alongside project scope, so a disabled higher-priority server can no longer shadow a differently-named equivalent enabled server and leave no connection. Parameterized LoadOptions<T> so the pre-dedup filter sees the typed item.

Fixes #6786
2026-07-27 10:37:52 +00:00
roboomp 394eaaeae2 fix(mcp): filter project scope before dedup
Applied the project-scope filter before connection-equivalence deduplication so a project server can no longer shadow a differently-named but equivalent user server and then be dropped, leaving none.

Fixes #6786
2026-07-27 10:31:18 +00:00
roboomp ab8fb13eea fix(mcp): deduplicated aliased server connections
Deduplicated semantically identical MCP endpoints across provider-specific names while preserving provider priority and canonical direct names.

Kept the first registration on sanitized tool-name collisions and logged both origins.

Fixes #6786
2026-07-27 10:22:39 +00:00
roboomp 879707bd32 fix(coding-agent): preserved plan subagent providers
- Skipped extension-source reconciliation when restricted sessions intentionally load no extensions.
- Added a shared-registry regression covering the provider model, credential, and custom API.

Fixes #6783
2026-07-27 10:01:42 +00:00
roboomp 4bc71bdafc fix(tui): defer large command panels during streaming to stop scrollback dupes
/usage, /session, /advisor status, /jobs, /changelog, /context, and
/memory view mounted their finalized panel immediately via ctx.present()
instead of ctx.presentCommandOutput(), the streaming-deferral path added in
#5427 for /tools and /mcp. When invoked mid-turn, the panel landed above a
still-growing live block and the append-only scrollback contract recommitted
it lower down, so it appeared twice in native scrollback.

Route all six large command panels through presentCommandOutput() so they
defer until agent_end, matching /tools and /mcp.

Fixes #6767
2026-07-27 05:49:42 +00:00
can1357 4eb94125b2 fix(coding-agent/eval): filtered internal runner frames from python cell error tracebacks
- Filter out runner-internal frames from runtime exception tracebacks to start at user code.
- Omit full tracebacks for cell syntax errors to render only the caret display with `<cell>` filename.
2026-07-27 07:28:22 +02:00
can1357 0388946e85 feat(coding-agent/task): added task.enableEffort setting to gate effort parameter
- Introduce task.enableEffort setting defaulting to false to hide per-spawn effort parameters.
- Conditionally include effort in single and batch task schemas and descriptions based on the new setting.
2026-07-27 07:01:09 +02:00
can1357 972ddb4e5e fix(edit): reduced hashline failures for weak models
- Added actionable reversed-range and block-anchor diagnostics.
- Accepted unambiguous single-dot ranges and routed affected models to replace mode.
- Preserved edit safety checks and added regression coverage.

Fixes #6671
2026-07-27 05:57:12 +02:00
can1357 7d3f9d382c chore: bump version to 17.1.5 2026-07-27 05:30:59 +02:00
can1357 905fb283df Merge PR #6724: feat(live): add selectable voice setting (@roboomp) 2026-07-27 05:26:35 +02:00
can1357 733f20d963 style: formatted scheduleAgentContinue signature per biome 2026-07-27 05:00:25 +02:00
can1357 b3612324a6 chore: normalized changelog sections after merging community fixes 2026-07-27 05:00:04 +02:00
can1357 12a2b13e93 fix(session): unwedged auto-retry after assistant-tail removal miss
A context rebuild that recreated the failed turn's message object made the
identity-keyed active-context removal miss, so the scheduled retry
continuation rejected the terminal assistant error message locally
("Cannot continue from message role: assistant") before any provider
request. auto_retry_end never fired, retryPromise stayed pending, and the
in-flight prompt() plus the TUI retry indicator hung until a manual
follow-up.

The retry path now strips a still-failed assistant tail positionally after
the backoff (generation-guarded, never in preserveFailedTurn mode), and a
continuation that still fails locally closes the retry saga with a failed
auto_retry_end via the new scheduleAgentContinue onError hook.

Fixes #5382
2026-07-27 04:59:31 +02:00
can1357 a5807b6ecb Merge PR #3773: fix(agent): exclude MiMo from hashline edits (@roboomp) 2026-07-27 04:59:26 +02:00
can1357 4e8a91e95e Merge PR #6725: fix(shell): implement native Windows stat builtin (@roboomp) 2026-07-27 04:59:25 +02:00
can1357 e2ed58d4d5 Merge PR #4168: fix(inspect-image): bounded per-request timeout on the vision-model call (@roboomp)
# Conflicts:
#	packages/coding-agent/src/config/settings-schema.ts
2026-07-27 04:59:19 +02:00
can1357 c4a1fabb8f fix(launch): kept log append queue alive after a failed read snapshot 2026-07-27 04:58:29 +02:00
can1357 dccf0d3c8a Merge PR #6748: perf(launch): isolate PTY replay in broker (@usr-bin-roygbiv) 2026-07-27 04:58:28 +02:00
can1357 94069484ce Merge PR #6749: perf(coding-agent): load changelog asset on demand (@usr-bin-roygbiv) 2026-07-27 04:58:28 +02:00
can1357 60a045d9a5 fix(coding-agent): canonicalized legacy AST rewrite temp root
The rewrite pipeline realpaths resolved dependency paths, so the expected
specifiers must be built from the canonical temp root (macOS /var vs
/private/var symlink).
2026-07-27 04:58:28 +02:00
can1357 dc038b838e Merge PR #6747: perf(coding-agent): replace legacy Babel traversal (@usr-bin-roygbiv) 2026-07-27 04:58:28 +02:00
can1357 73a3fe6983 Merge PR #6745: perf: lazily construct models config schema (@usr-bin-roygbiv) 2026-07-27 04:58:28 +02:00
can1357 48a4f1b1e6 Merge PR #6742: perf(coding-agent): lazily construct computer schema (@usr-bin-roygbiv) 2026-07-27 04:58:27 +02:00
can1357 1dbf51bf25 Merge PR #6743: perf(coding-agent): avoid unused compact tool metadata (@usr-bin-roygbiv) 2026-07-27 04:58:27 +02:00
can1357 e07db86f2d Merge PR #6670: fix(mcp): map mounted tools to xd routes (@jeffscottward) 2026-07-27 04:58:27 +02:00
can1357 c2e07a2028 fix(tui): remounted guarded draft editor when ask surface is restored
A failed async submission can restore the draft while a nested ask prompt
(note/custom answer) is open, re-blocking the input guard; restoreAskDialog
mounted only the ask component, routing guarded input to an unmounted
editor. Restore now mirrors the initial presentation and remounts the
draft editor whenever the guard exists.
2026-07-27 04:58:27 +02:00
can1357 2760158420 Merge PR #6738: fix(tui): preserve prompt input while ask opens (@roboomp) 2026-07-27 04:58:27 +02:00
can1357 67931badca Merge PR #6719: fix(coding-agent): handle asynchronous LSP pipe failures (@shoucandanghehe) 2026-07-27 04:58:27 +02:00
can1357 02e3567c3b Merge PR #6728: fix(coding-agent): prefer auth in deferred model resolution (@roboomp) 2026-07-27 04:58:26 +02:00
can1357 58cdd98dec fix(test): compared canonical paths in cross-project resume cwd assertion
process.cwd() reports the physical path (/private/var/... on macOS) while
mkdtemp fixtures keep the /var symlink form; normalized both sides so the
runRootCommand cross-project resume regression passes on darwin.
2026-07-27 04:58:26 +02:00
can1357 fdadadefff Merge PR #6753: fix(cli): resume cross-directory sessions in place (@roboomp) 2026-07-27 04:58:26 +02:00
can1357 b849a4503f fix(coding-agent): kept encoded glob metacharacters literal in memory glob suffixes 2026-07-27 04:58:26 +02:00
can1357 bf8e07ae1b Merge PR #6733: fix(coding-agent): safely glob memory directories (@usr-bin-roygbiv) 2026-07-27 04:58:26 +02:00
can1357 03d9b7f048 fix(coding-agent): canonicalized config paths in failure-safety test injections
The lock-race and EPERM regression tests compared injection predicates
against the uncanonicalized temp config path, but the atomic writer
resolves it via realpath; on macOS /var -> /private/var made the mocks
never fire and both tests failed. Compared against the realpath instead.
2026-07-27 04:58:26 +02:00
can1357 4aa5d0b6b2 Merge PR #6726: fix(coding-agent): prevented invalid configs from being overwritten (@Ant39140) 2026-07-27 04:58:25 +02:00
can1357 d64eba7187 Merge PR #6746: perf(catalog): lazily materialize provider models (@usr-bin-roygbiv) 2026-07-27 04:58:25 +02:00
can1357 4be05b373a Merge PR #6722: fix(auth-broker): revalidate fresh snapshot caches (@Git-on-my-level) 2026-07-27 04:58:25 +02:00
can1357 9d76e168ba Merge PR #6706: fix(ai): preserve custom Anthropic web-search history (@roboomp) 2026-07-27 04:58:24 +02:00