Commit Graph
2849 Commits
Author SHA1 Message Date
Marius b7fd9886d3 Merge pull request #12929 from Kilo-Org/loving-lodge
fix(cli): prevent TUI config logs from corrupting terminal
2026-08-06 10:22:20 +02:00
Marius 6bb2a243f6 Merge pull request #12926 from Kilo-Org/encouraging-pantydraco
fix(cli): keep built-in skill examples inert
2026-08-06 10:01:36 +02:00
Marius 81ddf2d9f8 Merge pull request #12882 from Kilo-Org/reintroduce-optimization-with-agent-safety-tests
fix(cli): safely restore grep signal controls
2026-08-06 10:01:00 +02:00
marius-kilocode 16deb199d7 fix(cli): prevent TUI config logs from corrupting terminal 2026-08-06 09:53:43 +02:00
marius-kilocode 90ac91d501 fix(cli): preserve built-in skill markdown 2026-08-06 08:53:49 +02:00
kirillk 2e9312ed4b Merge remote-tracking branch 'origin/main' into jetbrains-pixel-icons
# Conflicts:
#	packages/kilo-jetbrains/build-tasks/src/main/kotlin/GenerateOpenApiSpecTask.kt
2026-08-05 12:53:38 -04:00
Kirill Kalishev 4ae48e579e Merge branch 'main' into fix-jetbrains-eager-watchers 2026-08-05 10:39:50 -04:00
kirillk e83b25e8d9 fix(cli): stop eager file watchers on JetBrains
The JetBrains backend eagerly warmed the v2 location stack for every
instance, which starts a native @parcel/watcher subscription that lives
for the whole session. On macOS FSEvents watches the entire subtree
recursively (the ignore list is only a userspace filter), so this
always-on watcher burns CPU and leaks native memory while the IDE is
idle — the cause of the 150%+ CPU and multi-GB RSS growth reported in
`kilo serve` on macOS.

The watcher's only consumer is the CLI/TUI sidebar branch label via the
vcs.branch.updated event. JetBrains, like VS Code, has its own git
integration and does not consume that event, so eager watchers are pure
overhead for it. Extend the existing VS Code gate to also exclude
jetbrains; the standalone CLI/TUI stays eager, and editor clients still
build the stack lazily if a real file/pty route needs it.

Fixes #12721
2026-08-05 09:52:59 -04:00
kirillk a3160d7842 fix(jetbrains): harden diff fallback handling 2026-08-05 09:52:21 -04:00
Aarav 0b96332bb3 Merge branch 'main' into feat/privacy-mode-tui 2026-08-05 07:40:31 -06:00
Aarav Sharma 76f8967dc1 fix(cli): read privacy_mode only from global config and use balance-independent color
The /privacy command wrote only to global config but read the effective
config, so a project-level privacy_mode could shadow the global toggle
and the UI would not change even though the command reported success.
Since privacy mode is a personal preference, persist and read it only
from the global config.

The sidebar footer used tone() for both the bullet and masked balance,
so the bullet color still revealed whether the balance was low. Use
theme().textMuted for both while masked, retaining tone() only when
privacy mode is off.
2026-08-05 07:34:24 -06:00
marius-kilocode c9199cb529 fix(cli): handle sqlite lock errors 2026-08-05 10:25:56 +02:00
marius-kilocode 348db37475 test(cli): update grep harness for layer nodes 2026-08-05 09:48:01 +02:00
marius-kilocode 9bfbc35c5c fix(cli): safely restore grep signal controls 2026-08-05 09:39:16 +02:00
kirillk 324291c3bf Merge remote-tracking branch 'origin/main' into jetbrains-pixel-icons
# Conflicts:
#	packages/opencode/src/snapshot/index.ts
2026-08-04 18:51:43 -04:00
kirillk ebebad02e7 feat(jetbrains): authoritative full-file editor diffs with local fallback
The diff editor tab now shows whole-file diffs (with collapsible unchanged
regions) for modified files, while inline session cards stay hunk-bounded.

diffSides resolves full before/after with a safe precedence:
1. Authoritative: query the CLI's snapshot diff (full=true&file=...), which
   reads the exact turn's before/after from snapshot commits via git show and
   is correct even for historical/reverted turns.
2. Fallback: reverse-apply the hunk patch onto the working-tree file locally,
   so it works against the current pinned CLI until the new one is released.
3. Hunk view: if neither yields full content (drift/binary/added/deleted),
   render the existing patch.

The CLI change is minimal and additive: full-content logic lives in the
kilo-owned diff-full.ts (DiffFull.detail); shared files only gain thin
kilocode_change hooks (FileDiff before/after, Snapshot.diffFile, the summary
full/file branch, and the diff query fields).
2026-08-04 18:13:55 -04:00
Johnny Eric Amancio ea3cc176af Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-opencode-v1.17.13
# Conflicts:
#	packages/core/src/filesystem/search.ts
#	packages/opencode/src/command/index.ts
2026-08-04 18:36:43 +02:00
Johnny Eric Amancio 10a3eec7bd fix: address upstream merge regressions 2026-08-04 18:14:39 +02:00
Igor Šćekić e87dc77b73 feat(cli): resume Claude and Codex sessions (#12824)
* feat(cli): parse external session transcripts

* feat(cli): add session resume commands

* test(cli): cover session resume imports

* fix(cli): accept complete Claude transcripts

* fix(cli): preserve transcript tool failures

* fix(cli): distinguish unreadable transcripts

* fix(cli): complete imported tool states

* fix(cli): filter resume picker sessions

* fix(cli): reject malformed resume transcripts

* fix(cli): preserve Codex assistant step order

* test(cli): exercise resume session picker

* fix(cli): preserve Claude tool result order

* fix(cli): stabilize resume picker imports

* fix(cli): type resume command failures

* test(cli): isolate unreadable resume fixture

* fix(cli): scan root Codex rollouts

* test(cli): cover root Codex discovery

* fix(cli): scan Codex root on Windows

* test(cli): escape Windows Codex fixture paths
2026-08-04 15:41:21 +02:00
Marius 41c19ee444 Merge pull request #12818 from Kilo-Org/fix-cli-ci-tests
test(cli): isolate PTY route tests from indexing
2026-08-04 14:53:10 +02:00
Johnny Eric Amancio ebd1af35d4 test(cli): isolate PTY route tests from indexing 2026-08-04 13:11:45 +02:00
Johnny Eric Amancio 6c138449d5 Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-opencode-v1.17.13
# Conflicts:
#	package.json
#	packages/core/schema.json
#	packages/core/src/command.ts
#	packages/core/src/config/plugin/command.ts
#	packages/core/src/database/schema.gen.ts
#	packages/core/src/session/sql.ts
#	packages/core/src/v1/session.ts
#	packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/agentmanager/full-screen-diff-with-changes-chromium-linux.png
#	packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/labs-tool-call-lab/search-previews-chromium-linux.png
#	packages/opencode/src/command/index.ts
#	packages/opencode/test/server/httpapi-ui.test.ts
#	packages/sdk/js/src/v2/gen/types.gen.ts
#	packages/sdk/openapi.json
#	packages/tui/src/routes/session/index.tsx
2026-08-04 12:57:20 +02:00
Marius c7d4a12367 Merge pull request #12846 from Kilo-Org/rough-makemake
fix(cli): allow explicit external markdown sources
2026-08-04 11:56:23 +02:00
marius-kilocode 9ed716a5b8 revert(cli): restore stable grep behavior 2026-08-04 11:39:59 +02:00
marius-kilocode 8c84f8ae5e fix(cli): allow explicit external markdown sources 2026-08-04 11:31:10 +02:00
fd60036e4a fix: make tool invalid-arguments errors clearly actionable to the model (#11961)
* fix: make tool invalid-arguments errors clearly actionable to the model

* fix: address kilo-code-bot review on schema error formatting

Return a jargon-free actionable message when the schema formatter yields no issues (instead of the raw SchemaError), and match Effect's missing-key message case-insensitively so it survives library wording changes.

Signed-off-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>

* Address review: cap rendered issues, isolate Kilo logic, harden the fallbacks

- Move formatter/format/path/reason out of the shared upstream tool.ts into
  packages/opencode/src/kilocode/tool/tool.ts.
- Cap output at 20 issues / 4 KiB with an '...and N more' suffix, since
  validation fails before the normal output truncation.
- Return a readable message when the formatter yields zero issues instead of
  falling back to SchemaError jargon.
- Match missing-key messages with a regex instead of an exact string compare.
- Rewrite the changeset around the user-visible outcome.

* chore: annotate the reformatted decode call with kilocode_change markers

The multi-line reformat left lines 122-125 unannotated in a shared upstream
file. Wrap the whole statement in a start/end block instead of per-line inline
markers, and drop the two now-redundant inline ones. Comments only.

---------

Signed-off-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Matt Van Horn <455140+mvanhorn@users.noreply.github.com>
Co-authored-by: Christiaan Arnoldus <christiaan.arnoldus@outlook.com>
2026-08-04 11:13:02 +02:00
marius-kilocode 08ee34706d Merge origin/main into feat-stt-model-discovery 2026-08-04 10:12:33 +02:00
marius-kilocode 744c5c4a6b feat(vscode): discover speech-to-text models 2026-08-04 10:06:40 +02:00
Marius 6575aebfd2 fix(cli): skip startup work for informational commands (#12659)
* fix(cli): skip startup work for informational commands

* fix(cli): use parsed informational flags
2026-08-04 09:49:45 +02:00
Marius dbaa32fb8e Merge pull request #12827 from Kilo-Org/investigate-npm-oidc-authentication-failure
revert(cli): stop promoting stable releases to rc
2026-08-04 09:40:20 +02:00
Mohammad Javad Naderi d6e7d8fc98 Merge branch 'main' into fix/cli-startup-performance 2026-08-04 10:50:24 +03:30
Igor Šćekić 63a38f5c7a feat(tui): expand a collapsed paste on a second identical paste (#12816)
* feat(tui): expand a collapsed paste on a second identical paste

* chore: retrigger review

* chore(tui): add paste expansion changeset

* fix(cli): target paste changeset

* fix(tui): refresh autocomplete after expanding a paste

Call auto()?.onInput on the expand-placeholder path so open autocomplete
matches onContentChange when a second identical paste expands text.
2026-08-03 19:46:57 +00:00
Josh Lambert 1864a79e03 revert(cli): stop promoting stable releases to rc 2026-08-03 14:55:22 -04:00
marius-kilocode 3eeb6b9d1c test(cli): isolate PTY routes from indexing 2026-08-03 17:25:10 +02:00
cmanu 36073c7c62 fix(charts): Update tests after resolving main merge conflict 2026-08-03 08:11:17 -07:00
marius-kilocode 48400d8755 test(cli): allow PTY plugin test more startup time 2026-08-03 17:07:53 +02:00
cmanu 0db3ca52c9 Merge branch 'main' into 'feature/charts' 2026-08-03 07:58:54 -07:00
Marius ce7984fc42 feat(agent-manager): assign models to workflows (#12729)
* feat(agent-manager): assign models to workflows

* fix(agent-manager): address workflow model review findings

* fix(cli): handle command source aliases safely

* test(pty): allow slower macOS startup

* test(cli): tolerate transient Windows response reads

* test(cli): bound transient stall response retries

* test(pty): include replayed output in wait helper

* test(pty): stabilize buffered output waits

* test(pty): avoid locale-dependent UTF-8 fixture
2026-08-03 16:46:07 +02:00
Marius 989f7f06a0 feat: add signal-to-noise controls to grep tool (#12811)
* feat: add signal-to-noise controls to grep tool

Add configurable options to reduce noise in grep results:
- context: show N lines before/after each match
- limit: bound maximum matches (default 100) with early termination
- literal: treat pattern as plain text instead of regex
- ignoreCase: case-insensitive matching

These controls help models avoid overwhelming context windows with too
many matches and provide clear guidance when results are truncated.

Implementation preserves upstream ripgrep structure with minimal Kilo
hooks for additive behavior only. Shared-file changes reduced from 183
to 60 lines compared to initial implementation.

* test(core): tolerate PTY event publication race

* fix(cli): count grep matches independently of context
2026-08-03 10:32:40 -04:00
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
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
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
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 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