Commit Graph

26934 Commits

Author SHA1 Message Date
Marius 3d4294e3bb feat(agent-manager): allow sessions to move their worktree between sections or ungroup (#12815)
* feat(agent-manager): allow sessions to move their worktree between sections or ungroup

Add a new  to the  tool so a session can
reassign its own worktree to another section or ungroup it by passing
. The move operation validates the target section and
the session's worktree, then pushes refreshed state to the panel.

Also tighten the model-facing contract so the list-to-move workflow is
unambiguous:  is required first, its result is the
source of truth for section and session IDs, and direct edits to
 are rejected by , , and
 with an explicit pointer to the  tool.

- New / in the Agent Manager protocol
- New  domain function with section/session validation
- New  OpenAPI hook so  stays
  nullable in the generated SDK
- Tool schema descriptions now spell out the list-first workflow and
  the no-direct-edit rule
- List output now includes an instruction block and is pretty-printed
- Optional nullable Task fields tolerate  from models
- Focused CLI tests, bridge unit test, and protection test

* chore: remove local PR screenshot

* style(vscode): format agent manager orchestration

* fix(agent-manager): protect state paths on Windows
2026-08-03 10:32:01 -04:00
Marius 6ae16f9d62 fix(vscode): recover Agent Manager terminals after exit (#12812)
* fix(vscode): recover Agent Manager terminal with one input after exit

When an embedded Agent Manager terminal ends, the next typed input now
starts a fresh shell in the same tab and delivers that input exactly once
instead of requiring a second keystroke. The original scrollback remains
visible above a neutral divider so the ended shell is clearly separated
from the replacement.

- TerminalManager owns a logical terminal ID with a mutable PTY ID and
  exposes a deduplicated restart method that returns the fresh wsUrl.
- TerminalRouter posts one restarted message back to the webview.
- TerminalTab buffers input while the replacement attaches and flushes
  it only after replacement shell output settles, with a one-second
  fallback for silent shells.
- Restartable terminals show a distinct ended marker that advertises
  both typing and closing; Run/Setup terminals keep the original
  close-only text.
- Localized the new marker in all Agent Manager locales.
- Replaces the previous dispose-on-webview-reload behavior with a
  reconciliation pass so a fresh webview does not orphan running PTYs.

Verified end-to-end in an isolated VS Code instance: two consecutive
exit-then-one-input cycles both execute the original input without
requiring a second keystroke, and pwd confirms the replacement shell
starts in the original worktree cwd.

* fix(vscode): avoid duplicate prompt after terminal recovery
2026-08-03 13:14:11 +00:00
rakshith1928 63220e019c fix(vscode): keep skill remove buttons visible at narrow widths (#12733)
* fix(vscode): keep skill paths and urls contained at narrow panel widths

Folder path and URL rows in the Skills settings subtab used min-content width
on their value cells and a fixed-width input wrapper, so long paths and URLs
expanded the row past the panel at narrow widths, clipping the value and pushing
the remove (×) button off-screen.

Give the value cell flex:1 + min-width:0 with text-overflow ellipsis (mirroring
the working discovered-skills rows above) so it shrinks instead of overflowing,
and add min-width:0 to the input+Add wrapper so the TextField can shrink below
its intrinsic input width. Add a Playwright regression test that asserts no
horizontal overflow and a fully-visible × button at a 320px viewport.

* fix(vscode): expose full skill paths and urls via accessible tooltip

The previous responsive fix truncated long path and URL values to ellipsis
with a native title attribute. The native title is not consistently
reachable across keyboard and screen reader interactions, and stacking
it on top of an accessible tooltip would produce duplicate prompts.

Wrap each value cell in the kilo-ui Tooltip (Kobalte-backed, ARIA-compliant)
so the full value is exposed on hover and keyboard focus, and drop the
native title. Add a settings.css class so the Tooltip trigger grows in
the row flex layout and the inner span keeps its single-line ellipsis.

Extend the regression test to assert the trigger wraps each value and
that focusing the trigger surfaces the full value through the kilo-ui
tooltip content, keeping the overflow and × button assertions intact.

* Update packages/kilo-vscode/webview-ui/src/stories/settings.stories.tsx

Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>

* Update packages/kilo-vscode/tests/skills-settings-responsive.spec.ts

Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>

* test(vscode): use hover to assert skills tooltip and cover both cards

* chore: update kilo-vscode visual regression baselines

* test(vscode): assert trigger focusability and label card in Add assertions

* fix(vscode): make skill tooltip triggers keyboard-focusable via tabindex prop

* fix(vscode): drop keyboard-focus assertion; full path is already in DOM

* Update .changeset/vscode-skills-settings-narrow-overflow.md

Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>

---------

Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
2026-08-03 14:56:51 +02:00
Christiaan Arnoldus 52211a9a6f Merge pull request #12790 from Kilo-Org/button-barberry
fix(cli): omit persona from generated names
2026-08-03 13:55:30 +02:00
Marius 84901241c0 fix(vscode): prevent prompt toolbar height growth when training indicator is visible (#12805)
* fix(vscode): prevent prompt toolbar height growth when training indicator is visible

The prompt training icon (book-open-check) rendered at 16px inside compact
toolbar buttons caused the model selector button to grow taller than sibling
buttons. Constrain the icon to 14px so the toolbar row stays at a consistent
height regardless of whether the active model has mayTrainOnYourPrompts set.

Add 420px and 200px screenshot stories covering the training indicator so
visual regression catches future regressions.

* chore: update kilo-vscode visual regression baselines

---------

Co-authored-by: kilo-maintainer[bot] <kilo-maintainer[bot]@users.noreply.github.com>
2026-08-03 11:38:43 +00:00
bagatao@anaconda.com afdb194274 Merge pull request #12802 from Kilo-Org/fix/skill-shell-inline-code-spans
fix(cli): stop inline skill-shell doc examples from triggering permission prompts
2026-08-03 13:29:50 +02:00
Marius 9955efd861 feat(cli): adopt upstream reasoningVariants from v1.18.11 (#12800) 2026-08-03 13:24:25 +02:00
Bruno Agatao 9fa992fd9b Merge branch 'fix/skill-shell-inline-code-spans' of github.com:Kilo-Org/kilocode into fix/skill-shell-inline-code-spans 2026-08-03 13:19:36 +02:00
Bruno Agatao 87eaf2ca7d docs(cli): trim skill-shell injection comment 2026-08-03 13:19:03 +02:00
bagatao@anaconda.com fa0e8b1bb7 Merge branch 'main' into fix/skill-shell-inline-code-spans 2026-08-03 13:15:34 +02:00
Bruno Agatao dbf50aa821 fix(cli): fix nested code-span ranges and flaky quadratic-scan test 2026-08-03 13:14:48 +02:00
Igor Šćekić 1f3a3b2d83 feat(attachments): add remote CLI file delivery (#12747)
* fix(cli): clarify remote binary attachment notice

* feat(cli): add remote send_file tool

* docs(mobile): explain remote session attachments

* fix(cli): keep delivered files out of model context

* fix(cli): mark delivery filter as kilocode change

* fix(cli): preserve delivered image files

* test(cli): narrow delivery attachment state

* fix(send-file): preserve filesystem failures

* test(send-file): assert propagated file read error
2026-08-03 13:12:11 +02:00
bagatao@anaconda.com cc27d9e449 Merge pull request #12728 from Kilo-Org/feat/explain-tool-auto-approval-tui
feat(tui): explain tool auto approval
2026-08-03 12:41:53 +02:00
Bruno Agatao 5bd420aae1 fix(cli): stop inline skill-shell doc examples from triggering permission prompts 2026-08-03 12:39:49 +02:00
Marius 6693f2d176 Merge pull request #12799 from Kilo-Org/fix-worktree-tooltip-delay
fix(agent-manager): make worktree hover cards instant
2026-08-03 12:29:30 +02:00
Marius 7b07eb803d Merge pull request #12796 from Kilo-Org/plan-cmd-dot-agent-manager-mode-switching
fix(agent-manager): route mode shortcuts through modal
2026-08-03 12:25:28 +02:00
Marius f239f36f65 feat(ui): show line summaries for multi-file patches (#12725)
* feat(ui): show line summaries for multi-file patches

* fix(ui): animate multi-file patch summaries
2026-08-03 12:22:56 +02:00
Marius 2fbd380dfc fix(cli): speed up local recall searches (#12726)
* fix(cli): speed up local recall searches

* fix(cli): bound local recall scans

* fix(cli): make recall index initialization lazy
2026-08-03 12:22:42 +02:00
Marius 7d3f50c2e8 fix(cli): defer threshold compaction during tool loops (#12792)
* fix(cli): preserve Kilo prompt cache keys

* fix(cli): defer threshold compaction during tool loops
2026-08-03 12:22:39 +02:00
Marius 46715c3053 fix(vscode): restore Markdown comment gutter anchors after renderer wrapper change (#12794)
The Markdown renderer began wrapping rendered blocks in div[data-markdown-block]
containers with display: contents, which collapsed the annotation layer's
bounding-box lookups and broke list/table special-case comment handling.

Flatten renderer-owned block wrappers to their actual rendered children while
preserving legacy top-level Markdown DOM and filtering inserted annotation
elements.

Regression introduced in PR #12460 (a776bd4d29, refactor: kilo compat for v1.17.9).
2026-08-03 12:21:55 +02:00
marius-kilocode 6b5a605a8c fix(agent-manager): remove hover card animation 2026-08-03 12:07:44 +02:00
marius-kilocode 7cfaeb2c8d fix(agent-manager): make worktree hover cards instant 2026-08-03 12:01:29 +02:00
marius-kilocode 76e34bdcf0 fix(agent-manager): align modal model resolution 2026-08-03 11:57:15 +02:00
bagatao@anaconda.com 68f11a8dea Merge branch 'main' into feat/explain-tool-auto-approval-tui 2026-08-03 11:46:50 +02:00
marius-kilocode 20d1648e7a fix(agent-manager): route mode shortcuts through modal 2026-08-03 11:41:52 +02:00
Christiaan Arnoldus 323f096e11 refactor(cli): revert shared metadata identifiers 2026-08-03 10:53:57 +02:00
Christiaan Arnoldus 0cfd301745 refactor(cli): clarify generated-name persona policy 2026-08-03 10:31:22 +02:00
Christiaan Arnoldus 8be33032b9 fix(cli): omit persona from generated names 2026-08-03 10:18:00 +02:00
Hardik Sharma c554409080 fix(cli): preserve configured subagent routing (#12652)
* fix(cli): preserve configured subagent routing

* fix(cli): preserve markdown agent precedence

* ci: rerun checks
2026-08-01 21:19:19 +00:00
Kirill Kalishev f08b78c7a2 Merge pull request #12766 from Kilo-Org/jetbrains/release/v7.0.12
release(jetbrains): v7.0.12
2026-08-01 13:24:46 -04:00
Kirill Kalishev 12a29f5f37 docs(jetbrains): edit changelog for v7.0.12 2026-08-01 13:19:34 -04:00
kilo-maintainer[bot] 3b6562466d release(jetbrains): v7.0.12 2026-08-01 17:12:11 +00:00
Kirill Kalishev 190d9325c9 Merge pull request #12765 from Kilo-Org/jetbrains/release/v7.0.12-rc.4
release(jetbrains): v7.0.12-rc.4
jetbrains/v7.0.12
2026-08-01 11:53:35 -04:00
Kirill Kalishev 14efc82925 docs(jetbrains): edit changelog for v7.0.12-rc.4 2026-08-01 11:51:37 -04:00
kilo-maintainer[bot] 87fcc06a63 release(jetbrains): v7.0.12-rc.4 2026-08-01 15:11:31 +00:00
Kirill Kalishev 0aabd47b58 Merge pull request #12746 from Kilo-Org/spectacled-week
fix(jetbrains): improve diff performance and session layout
jetbrains/v7.0.12-rc.4
2026-07-31 19:55:43 -04:00
kirillk b2f17a20c2 test(jetbrains): pin reflow gate to Busy with a non-streaming state
Add a Retry-state reflow test (isBusy() == true but not SessionState.Busy):
it must keep restarting the settle window toward the idle budget rather than
collapsing to REFLOW_PASSES. This is the only case that distinguishes
`is SessionState.Busy` from the old `isBusy()` predicate — verified it fails
(7 passes) if the gate is reverted to isBusy().
2026-07-31 18:26:08 -04:00
kirillk f1947697ea fix(jetbrains): gate reflow settle window on Busy, not isBusy()
isBusy() is true for awaiting-permission/question, retry, and offline —
states recoverPending() can seed right after history load, where no deltas
arrive and a moving height genuinely means the panes are still settling.
Gating the settle-window shortcut on those states cut the reflow chain to
REFLOW_PASSES and reintroduced the crop-until-resize bug on exactly that
path. Gate only on SessionState.Busy (the streaming state) so the runaway
fix stays while blocked/retry/offline sessions keep their full settle window.
Add a Busy-state test that fails if the term is dropped or inverted.
2026-07-31 18:19:22 -04:00
kirillk 6820530e97 fix(jetbrains): avoid per-row cache invalidation on bulk diff tree toggle
invalidateCacheAndRepaint is UI-scoped, so firing it from the expansion
listener on every row made expand/collapse-all O(rows^2) to re-measure on
large branch diffs. Suppress the listener during bulk toggles and invalidate
once at the end, and register it after the initial expandAll. Per-row user
toggles still invalidate immediately.
2026-07-31 17:05:07 -04:00
kirillk 45ed8f20ee fix(jetbrains): settle transcript reflow by session state, test budget
Only treat a moving preferred height as an unsettled layout while the session
is idle. During streaming the height just tracks incoming content, so the
chain now counts its passes down instead of restarting the settle window,
settling in REFLOW_PASSES and handing off to the per-turn forgetTurn path
rather than risking a narrow crop-until-resize when the hard budget trips
mid-stream. Keep the budget as the idle backstop and cover it with a test
that drives an ever-growing child so the chain would spin without the cap.
2026-07-31 17:00:23 -04:00
kirillk 87b00a9b19 fix(jetbrains): invalidate diff tree layout cache on folder toggle
A folder row hides its rolled-up badge while expanded, so its preferred
width now depends on expansion state. JTree only invalidates cached path
bounds on model changes, not on expand/collapse, so a collapsed folder could
keep its narrower expanded-state bounds and let the re-shown badge squeeze
the file name until an unrelated re-measure. Add a TreeExpansionListener that
invalidates the layout cache on toggle so the row re-measures immediately.
2026-07-31 16:50:18 -04:00
kirillk 820d5d5f01 fix(jetbrains): bound transcript reflow passes during streaming
The reflow chain restarted its pass budget on every height change, so a
session that keeps streaming after open reset the budget each EDT cycle and
held the panel in a perpetual forgetAll()/re-measure loop, defeating the
width-keyed height cache. Add a hard total-pass budget that never resets so
the layout can still settle across a few height changes while capping the
work a streaming session can trigger. Covers the doLayout re-arm path with a
test that latches pendingReflow via a real turn at zero width.
2026-07-31 16:43:34 -04:00
kirillk e0fa585e33 fix(jetbrains): hide expanded diff folder badges
Expanded folders already reveal child file badges, so showing the rolled-up folder total duplicates the visible counts. Keep aggregate badges only on collapsed folders while preserving file badges.
2026-07-31 16:33:30 -04:00
kirillk 632e4ca8c0 fix(jetbrains): reflow transcript at real width on session open
Opening a session could pin the transcript to a bottom computed from a zero-width measurement, cropping the last content until a toolwindow resize forced a re-measure. Reflow now no-ops until the panel has a real width and re-arms from doLayout once it does, so the transcript is always measured on-screen. The streaming path is untouched: pendingReflow is only set by a rebuild/clear that ran before layout, so the added doLayout check short-circuits during live updates.
2026-07-31 16:26:33 -04:00
kilo-maintainer[bot] f00da9a75b release: v7.4.18 v7.4.18 2026-07-31 19:59:08 +00:00
kirillk 7e0468fab0 Merge remote-tracking branch 'origin/main' into spectacled-week 2026-07-31 15:41:36 -04:00
kirillk 1a506a712c fix(jetbrains): sync prompt button after attachments change 2026-07-31 15:34:12 -04:00
kirillk c1f6a75377 fix(jetbrains): reflow transcripts after session load 2026-07-31 15:21:51 -04:00
Joshua Lambert c70fc73e57 Merge pull request #12173 from seven7763/docs/daoxe-provider-guide
docs: add DaoXE provider guide
2026-07-31 15:12:12 -04:00
hei 18657ca3a1 fix: rewrite opening paragraph to lead with DaoXE differentiators
- Replace generic 'multi-model API gateway' opening with punchier
  differentiators: native Claude protocol, verifiable routing, one-key access
- Reviewer feedback: opening sentence didn't differentiate from other gateways

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-01 03:08:52 +08:00