Implement collapsible, color-coded sections in the Agent Manager sidebar.
Sections can be created, renamed, colored, deleted, and reordered via
Move Up/Down context menu. Worktrees are assigned via context menu or
drag-and-drop onto section headers.
- Section CRUD in WorktreeStateManager with JSON persistence
- worktreeOrder normalization on load (backfills missing section IDs)
- setWorktreeOrder filters to top-level only (sections + ungrouped worktrees)
- moveSection operates on visible top-level model, not raw array
- createDroppable sections as worktree drop targets
- sectionAwareDetector skips home section for within-section reorder
- Multi-version worktree groups move together
- Auto-rename on creation with double-rAF focus
- 76 tests (26 state manager + 15 helpers + 35 arch)
The /local-review command used git diff base...HEAD (triple-dot) which only
captured committed changes. The diff viewer uses merge-base + two-dot diff
against the working tree. This mismatch caused /local-review to show
'nothing to review' when changes were uncommitted.
Now computes merge-base explicitly and diffs the working tree against it,
matching WorktreeDiff behavior. Also includes untracked files.
Add AbortController to GitOps that kills in-flight child processes when
dispose() is called. Thread the abort signal through both simple-git and
child_process.spawn so spawned git processes are terminated immediately
on Windows (TerminateProcess) and Unix (SIGTERM).
Wire gitOps.dispose() into all three owners: DiffViewerProvider,
AgentManagerProvider, and KiloProvider.
Move word-boundary matching logic from ModelSelector.tsx into
webview-ui/src/utils/search-match.ts with 37 unit tests ported from
the legacy word-boundary-fzf.ts test suite.
Port the word-boundary matching algorithm from the legacy word-boundary-fzf.ts.
This splits text at camelCase transitions and delimiters, so 'clso' matches
'Claude Sonnet' (Cl+So) and multi-word queries like 'gpt 5' require each
fragment to match independently.
- Add subsequence fuzzy matching for model search
- Support searching by provider name
- Normalize spaces to dashes for better matching (e.g., 'gpt 5.4' matches 'gpt-5.4')
Fixes#8404
The PromptInput isBusy() check only matched 'busy' status, hiding the
stop button and disabling Escape-to-abort when the session was in 'retry'
state (e.g. rate limited). Changed to match any non-idle status so users
can always abort.
Recover PR #7981 (force-pushed by publish workflow on April 1, 2026).
When the suggested model name exceeds 30 characters (after stripping
sub-provider prefix), fall back to the generic "Try Model" label
to prevent an oversized notification button.
Adds tryModelGeneric i18n key for the fallback label across all 18
locales.
See #8558
Re-apply PR #7720 which was reverted by a force push during the publish
workflow. Also update uk, tr, and nl translations which were missed by
the original translation update in PR #8086.
Closes#8558 (partial)
Piggyback on the existing `git worktree list --porcelain` call in
probeWorktreePresence to detect branch changes (e.g. after checking
out a PR branch). Zero additional git calls — the branch info was
already returned but discarded.
Add a go-to-file icon button next to each instruction file entry in the
Agent Behaviour > Rules subtab, allowing users to open the file directly
in the editor. Uses the established go-to-file icon pattern consistent
with DiffPanel and PromptInput components.
Display the git branch name beneath the worktree label when it differs
from the display name. Aligns the local card branch style to match
(10px, --text-weaker).
* feat(agent-manager): add GitHub PR status badge to worktree sidebar
Recovered from PR #8515 which was lost when kilo-maintainer[bot] force-pushed release v7.1.23 on a stale base.
Co-authored-by: LLRHook <131478441+LLRHook@users.noreply.github.com>
* chore: update kilo-vscode visual regression baselines
---------
Co-authored-by: LLRHook <131478441+LLRHook@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>