968 Commits
Author SHA1 Message Date
marius-kilocode 6c066a5877 fix(vscode): disable voice input in remote windows
Microphone capture runs in the extension host, and for Remote-SSH, WSL,
dev containers, and tunnels that host is the remote machine. Such a machine
normally has no capture device, so starting a recording failed with
"Could not start microphone recording".

Detect the window kind from vscode.env.remoteName and report a speechToText
capability to the webview. When it is false, hide the microphone button,
skip prewarming, and disable the speech shortcut in the prompt input, the
Agent Manager new worktree dialog, and the diff viewer review annotations.
The Speech to Text settings row explains that a local window is needed.

Fixes #14197
2026-09-17 10:13:00 +02:00
Andrea Giammarchi 1e598e8bae Merge pull request #14180 from Kilo-Org/explicit-model-selection-lost
fix(vscode): default model not persistent after explicit user choice
2026-09-16 13:41:32 +02:00
webreflection 50f7d01ad7 fix(vscode): preserve effort intent and live session defaults 2026-09-16 11:06:53 +02:00
Marius 11780f5b2b Merge pull request #14049 from Kilo-Org/investigate-browser-automation-tool-exposure
fix(vscode): restore Playwright MCP browser tools
2026-09-16 10:02:36 +02:00
marius-kilocode 78a4d932a6 fix(vscode): restore undo and redo in the chat input
VS Code's webview preload intercepts Ctrl/Cmd+Z and Ctrl+Y and forwards
them to the workbench, so the prompt input stopped propagation but never
performed the edit. A webview keypress has no native undo default action
on macOS, so the undo stack stayed untouched and the shortcuts did
nothing.

Perform the edit with document.execCommand on the same native undo stack
real typing builds, and match keyCode like VS Code does so non-Latin
keyboard layouts no longer leak the key back to the workbench.

The Agent Manager New Worktree prompt had the same gap with no guard at
all; it now shares the same helper through prompt-input-utils.
2026-09-16 09:29:51 +02:00
Kirill Kalishev 742c32d9a5 Merge pull request #14137 from Kilo-Org/golden-sparrow
fix(agent-manager): report worktree problems accurately and recover from them
2026-09-15 16:12:46 -04:00
marius-kilocode 82b65bd4d0 fix(agent-manager): reload the snapshot only for expired review failures
Content rejections such as an empty body or a bad line range leave the snapshot valid, so gate the reload on the host's reload hints instead of every failed comment. Extend the regression test to cover the non-expiry cases.
2026-09-15 18:45:31 +02:00
marius-kilocode 3a98691ca1 fix(agent-manager): reload the PR diff when a review snapshot expires
The Agent Manager diff surfaces cache PR snapshots per target while the host keeps only the eight most recent, so a cached snapshot can be evicted and every comment post then fails with "Review snapshot expired". Drop the cached snapshot and reload it when the host rejects a comment, so the next attempt is bound to a snapshot the host still holds.
2026-09-15 18:38:34 +02:00
kirillk 6624db6e50 fix(vscode): stop routing a PR error that belongs to another project
The extraction dropped the early return the inline branch had: a
`agentManager.prError` for a background project used to stop there, and
after the move it fell through to `projectLive.apply(msg)`. Harmless only
because that router has no branch for the message today.

`reportFailure` now answers "stale" for it — the same contract
`routeReview` already uses in this handler — and the call site returns on
it, so the control flow is in the code rather than implied by a boolean
nobody read.
2026-09-15 12:20:36 -04:00
kirillk 9e6bdf20aa refactor(vscode): move host failure toasts out of AgentManagerApp
The merge left AgentManagerApp.tsx 11 lines over its 2800-line lint cap:
main had grown it to 2799 and this branch adds the health props and the
error toast. Rather than raise the cap, both failure-reporting branches
move to failure-toast.ts — the PR error code and the plain error message
are the same concern, and neither needs anything from the component but
the toast, the translator, and the project on screen.
2026-09-15 11:58:15 -04:00
kirillk 6594874840 Merge remote-tracking branch 'origin/main' into golden-sparrow
# Conflicts:
#	packages/kilo-vscode/webview-ui/agent-manager/ProjectSidebarBody.tsx
2026-09-15 11:38:28 -04:00
kirillk 8100652397 fix(agent-manager): close the gaps the cross-cutting review found
Twelve findings from a review of this PR against the recent gh, worktree,
staleness, and pooling work. The theme is that the hardening landed on the
paths this PR touched, while adjacent paths kept the old semantics.

VS Code:

- The batched GraphQL lookup became the primary PR path after 81b9c21c24,
  and it bypassed everything this PR added: a 20s budget instead of
  BUDGET.gh, no timeout classification, and no quarantine or health gate,
  so a parked worktree still cost a git process per full sync and could
  become the working directory of the whole `gh api graphql` call. It now
  runs on the shared budgets, skips parked worktrees, and reports a
  timeout as a timeout instead of retrying it as an unsupported field.
- Orphan reporting re-checks git registration before naming a directory,
  so a worktree the pool created mid-pass is no longer offered for
  deletion, and an unanswerable re-check reports nothing.
- Restoring a worktree clears its PR polling backoff, instead of leaving
  the worktree the user just repaired parked for up to half an hour.
- The orphan kind reaches the webview: a directory that still holds a
  checkout is marked and gets a confirmation that says it may hold
  uncommitted work, rather than "nothing here is tracked by git".
- Removing a stale entry no longer dead-ends when terminals cannot be
  stopped. Nothing on that path deletes files, so for an unregistered
  worktree the only action offered used to fail with an unrelated error.
- PR import runs gh on BUDGET.gh and reports a hang as a timeout.
- findWorktreeByPath and prepareWorktreePath compare with pathKey, so a
  symlinked parent or a case variant cannot hide a registration.
- Quarantine gained a non-mutating peek, so generating a diagnostics
  report no longer releases the quarantines it is reporting.
- The stats loop gained the same per-worktree backoff as the PR loop; an
  explicit refresh still measures a parked worktree.

JetBrains:

- A poll prunes stale worktree metadata only when no mutation holds the
  repository lock, and never waits for it. `git worktree add` registers a
  worktree before its checkout is written, so pruning underneath one
  could delete the metadata of a worktree being created.
- `git status` is off the 5s probe budget: it scans the working tree, so
  on a large or cold worktree the probe budget reported unavailable for a
  measurement that would have succeeded. The sync prune uses the write
  budget its docstring already claimed.
2026-09-15 11:07:14 -04:00
webreflection dd2f2f9a97 fix(vscode): default model not persistent after explicit user choice 2026-09-15 16:58:38 +02:00
marius-kilocode 2de1ac2819 Merge remote-tracking branch 'origin/main' into investigate-browser-automation-tool-exposure
# Conflicts:
#	packages/kilo-docs/pages/automate/tools/index.md
2026-09-15 16:22:21 +02:00
marius-kilocode d06e27636a fix(vscode): address browser review feedback
Await Playwright readiness before withRetry so prompt errors keep their
backoff, drop the draft browser entry on close instead of storing an
authoritative null, translate the Integrated Browser panel strings in all
Agent Manager locales, and tighten the lifecycle and Agent Manager tests.
2026-09-15 15:42:55 +02:00
marius-kilocode ed92a23168 fix(vscode): gate Playwright readiness for all prompts and open Integrated Browser before a session
Wait for the Playwright MCP server before Agent Manager prompts as well as
sidebar prompts, and stop respawning a failed server on every prompt.
Let the Integrated Browser panel open on a fresh Local tab before a
session exists, and rename the Agent Manager browser to Integrated
Browser in settings, tool output, and docs.
2026-09-15 15:22:26 +02:00
marius-kilocode 60628eed9f feat(agent-manager): move add project to a fixed footer 2026-09-15 10:47:14 +02:00
Marius 0861063ad5 Merge pull request #14144 from Kilo-Org/add-reasoning-mode-visual-setting
feat(vscode): add reasoning display modes and headline setting
2026-09-15 09:57:43 +02:00
Marius 716b506b41 Merge pull request #14146 from Kilo-Org/agent-manager/sticky-project-row
feat(agent-manager): pin project row with new worktree button
2026-09-15 09:51:37 +02:00
marius-kilocode c3d5b9088c fix(agent-manager): avoid guessing unloaded project base branch 2026-09-15 09:43:37 +02:00
Marius aa51594c06 Merge pull request #14127 from Kilo-Org/sugary-satellite
fix(agent-manager): keep only the target tab on Close Others
2026-09-15 09:33:49 +02:00
marius-kilocode a242a912d5 fix(agent-manager): enable row worktree control before project state loads 2026-09-15 09:33:23 +02:00
marius-kilocode 4eedf2a83d fix(vscode): make subagent reasoning follow the reasoning display setting
Background subagent transcripts forced the capped preview through a reasoningCapped prop. Remove that path so subagent reasoning uses the same Expanded, Preview, or Headline setting as the main chat, and drop the now-unused prop plumbing and capped input to reasoningOpenState.
2026-09-15 09:21:35 +02:00
marius-kilocode c338003fa3 fix(agent-manager): show project actions as buttons and drop worktrees label 2026-09-15 08:52:30 +02:00
marius-kilocode 9701f1242e feat(agent-manager): pin project row with new worktree button 2026-09-15 08:26:20 +02:00
kirillk 100914908f fix(agent-manager): address review findings on worktree health reporting
Follow-up to the worktree-health PR, fixing the cases where an
indeterminate answer was still treated as a definite one.

- `removeOrphanDirectory` failed open: an unanswerable `git worktree
  list` skipped the live-worktree guard and recursively deleted the
  path. It now refuses.
- `applyPresence` used `some` to sync branches, so only the first
  drifted worktree was synced per presence tick.
- The reconcile drop loop re-reads the session count: `prune` is awaited
  after classification, and a session attached in that window would have
  been deleted with the row.
- `unavailable` is no longer treated as broken. It paused stats/PR
  polling for the rest of the session, rendered as a warning badge, and
  offered the entry-dropping removal actions for a worktree that is
  probably fine. A presence probe now also re-schedules a reconcile
  while the last report is degraded.
- Git and gh timeouts are classified from the killed/signal shape rather
  than from message text, so a watchdog kill no longer surfaces as a raw
  "Command failed" string.
- A PR strategy ladder that only timed out now reports the failure
  instead of falling through to "no PR", which cleared the quarantine
  and rendered a wedged `gh` as a clean worktree.
- The PR loop counts rejections that are not attributable to already
  quarantined worktrees, instead of comparing two unrelated totals.
- JetBrains: `stop()` cancels the stats/dirty jobs, an empty list from a
  failed `git worktree list` no longer clears every badge, a TIMEOUT no
  longer consumes the one-shot gh notification, the diagnostics
  clipboard write moved to the EDT, `git fetch`/`worktree add` got their
  own wider budget, and a timed-out review-thread query no longer reads
  as "every conversation settled".
- Added the three missing `agentManager.setup.error.*` keys in all 21
  dictionaries; they were rendering as literal keys.
2026-09-14 14:58:50 -04:00
kirillk 91040bcff4 fix(agent-manager): report worktree problems accurately and recover from them
Agent Manager could tell a user "Git is not installed or not found in PATH"
while git was installed and working, show a worktree as having no changes when
the status check had actually failed, and keep polling worktrees whose folder
was long gone. One unresponsive worktree was enough to slow down status updates
for every other row.

Three causes, all of them the same mistake in different places: a failure was
reported as a fact about something else.

- A failed process launch reports ENOENT whether the program or the working
  directory is missing, and the code read that as "git is missing".
- A failed or timed-out status check returned zero counts, which is
  indistinguishable from a clean worktree.
- A timed-out GitHub CLI call was recorded as a success, which reset the
  backoff that was supposed to stop retrying it.

Nothing reconciled the three views of a worktree either (the row, git's own
registration, the folder on disk), so stale rows accumulated and were polled
forever, and a timed-out `gh pr view` was retried on every cycle.

Approach: name each state and never guess between them. A worktree is healthy,
restorable, gone, not-a-worktree, or unmeasurable, and each state gets the
message and the recovery action that actually applies. Startup reconciles the
three views and repairs metadata only; deleting files is always a user's
click. Repeated failures park one worktree instead of the whole panel, and
git/gh calls get budgets sized to the work they do.

Both clients implement the same states, wording, and recovery actions.
2026-09-14 13:42:40 -04:00
marius-kilocode ff8b3e9159 fix(agent-manager): harden Close Others tab suppression 2026-09-14 17:07:46 +02:00
marius-kilocode 7bbba885b9 fix(agent-manager): keep only the target tab on Close Others 2026-09-14 16:47:51 +02:00
marius-kilocode 4fb9f38310 feat(vscode): add copy link action to PR comments
Add a chain-link action to Agent Manager PR comment cards that copies the comment GitHub permalink. The action renders only when the comment has a valid URL and reuses the existing copy feedback. It covers review-thread and conversation cards, including the diff viewer comment card, and adds the copy comment link label to all locales.
2026-09-14 16:02:58 +02:00
Marius 313afdf09f Merge pull request #14050 from Kilo-Org/optimize-worktree-creation-latency
feat(agent-manager): pre-warm worktrees to speed up session creation
2026-09-14 11:32:21 +02:00
Marius 82c53b71d8 Merge pull request #14109 from Kilo-Org/quality/dead-code-prs-0914
refactor(vscode): remove unused GitHub comment context members
2026-09-14 11:29:09 +02:00
marius-kilocode 531d2c1aaa refactor(vscode): remove unused GitHub comment context members
Drop the never-read `available` and `label` members from the GitHub
comment context introduced with inline PR comments, and cover the
retained resolve/send gating with a focused test.
2026-09-14 10:51:05 +02:00
marius-kilocode 0e0b709966 refactor(vscode): share worktree reference and background child helpers 2026-09-14 10:44:42 +02:00
Marius 52b6c0f941 Merge pull request #14025 from Kilo-Org/plan-remote-diff-comments
feat(vscode): post inline comments to GitHub pull requests
2026-09-14 10:16:43 +02:00
Marius d4e6edbadb Merge pull request #14102 from Kilo-Org/allow-drag-drop-session-worktree-cards-to-prompt
feat(agent-manager): drag sessions, worktrees, terminals, and documents into the prompt
2026-09-14 10:10:21 +02:00
marius-kilocode 9133a745ce fix(vscode): translate PR comment actions across all locales 2026-09-14 09:38:37 +02:00
marius-kilocode ff5aeba07b fix(agent-manager): address drag-to-prompt review feedback
- Track dropped mentions so typing after a drop keeps the dropdown closed
- Detect leaving the side panel via strip bounds so leftward reordering works
- Tear down the drop listener and drag state when the prompt unmounts
- Restore sidebar worktree order on prompt and outside drops
- Derive the disabled flag for drag-dropped worktree references
2026-09-14 09:38:07 +02:00
marius-kilocode 3c040da646 fix(vscode): keep background subagent cards collapsed and cap reasoning 2026-09-14 09:35:52 +02:00
marius-kilocode 81ecad2b13 feat(agent-manager): drag sessions, worktrees, terminals, and documents into the prompt 2026-09-14 09:10:03 +02:00
marius-kilocode f90f52a4c3 fix(agent-manager): translate worktree pre-warm setting strings 2026-09-11 11:06:58 +02:00
marius-kilocode 7a6ab9abf4 feat(agent-manager): pre-warm worktrees to speed up session creation
Register a detached worktree in the background and claim it for a new
session instead of running a full worktree checkout at creation time.
Add per-phase creation timing and the "Pre-warm worktrees" Agent Manager
setting, enabled by default.

Also fix a claim path that could reset an existing branch whose name
matched a pooled worktree directory, and raise the worktree add worker
count for the fallback path.
2026-09-11 11:04:58 +02:00
marius-kilocode cdffd39940 fix(vscode): address PR review feedback on comment flows 2026-09-10 19:42:19 +02:00
marius-kilocode cb4db0ae9d refactor(vscode): share diff review notice and setup 2026-09-10 19:32:43 +02:00
marius-kilocode 1ef46bd360 feat(vscode): post inline comments to GitHub pull requests 2026-09-10 19:07:07 +02:00
Marius 8a544966c6 Merge pull request #13932 from sylwester-liljegren/feat/agent-manager-notification-navigation
feat(agent-manager): open notification Show in Agent Manager for its sessions
2026-09-10 14:22:12 +02:00
Andrea Giammarchi 5fc6445231 Merge branch 'main' into prompt-agent-manager 2026-09-10 10:07:35 +02:00
marius-kilocode 8cb88e1466 fix(agent-manager): align section header chevrons
Render one chevron glyph and rotate it for the expanded state. The separate
chevron-down icon draws at a different weight, so expanded and collapsed
section headers looked inconsistent.
2026-09-10 09:56:30 +02:00
Andrea Giammarchi e09250ae2b Merge branch 'main' into prompt-agent-manager 2026-09-09 17:24:57 +02:00
webreflection d12a1392bb fix(vscode): prevent permission prompt races 2026-09-09 17:17:10 +02:00