601 Commits

Author SHA1 Message Date
kilo-maintainer[bot] 99c621ee78 release: v7.5.5 2026-08-26 18:58:18 +00:00
kilo-maintainer[bot] 2a16b871a0 release: v7.5.4 2026-08-26 17:39:00 +00:00
kilo-maintainer[bot] 89b7561c13 release: v7.5.3 2026-08-26 17:11:02 +00:00
kilo-maintainer[bot] ed3380ea49 release: v7.5.0 2026-08-26 11:03:25 +00:00
marius-kilocode fd0b639613 fix(model-selector): match colon-prefixed names 2026-08-21 13:18:24 +02:00
marius-kilocode 575bf9b028 Merge remote-tracking branch 'origin/main' into puzzling-crowberry 2026-08-20 14:34:31 +02:00
kilo-maintainer[bot] 67cd629f3c release: v7.4.23 2026-08-20 12:26:16 +00:00
Johnny Eric Amancio 0d5d334480 fix(tui): order live transcript by message created time so wrapped ids stay visible (#13247)
* fix(tui): order live transcript by message created time so wrapped ids stay visible

* test(tui): cover window eviction and versioned sync channel for wrapped ids
2026-08-20 14:05:01 +02:00
marius-kilocode 9701b518b6 Merge main into puzzling-crowberry 2026-08-19 14:53:12 +02:00
marius-kilocode ba658fc8d7 chore: checkpoint before merging main 2026-08-19 14:50:11 +02:00
marius-kilocode da10638654 fix: remove agent requirements feature 2026-08-19 11:35:11 +02:00
Johnny Eric Amancio 3acb1ec386 fix(tui): keep Kilo Gateway models visible in the model picker (#13170)
* fix(tui): keep Kilo Gateway models visible in the model picker

Selecting a model removed it from its provider section, so a recently
used Kilo sonnet vanished from "Recommended"/"Kilo Gateway" and only
survived under "Recent". Search also keyed off title and section header
only, so filtering by `kilo` never matched titles like "Anthropic Claude
Sonnet 4.5" grouped under "Recommended".

Recents now stay in their provider section (favorites are still deduped
into their own section) and search additionally keys off the provider
name, provider id, and model id, matching the VS Code selector.

Option building moves to kilocode/model-picker.ts so the grouping and
search rules are unit testable.

* chore: add changeset for TUI gateway picker

* fix(tui): identify the selected picker row by reference

Keeping recents in their provider section means a model can legitimately
appear twice in the list (once under "Recent", once under its provider or
"Recommended" section). DialogSelect resolved the selected row by value
equality, so both copies lit up as active whenever either was selected —
visible on every picker open, since the current model is usually a recent
— and hovering the provider-section copy warped selection and scroll to
the "Recent" copy instead.

Match the selected row by object reference instead. Rows are always
distinct objects, so this is a strict refinement for every other dialog;
`current` still uses value equality, which is correct — both rows really
are the current model.
2026-08-18 13:25:46 +02:00
marius-kilocode a066d0f983 fix(permission): cover tui sandbox escalation prompt 2026-08-17 15:42:47 +02:00
kilo-maintainer[bot] 67cda85c94 release: v7.4.22 2026-08-13 22:26:16 +00:00
Johnny Eric Amancio b5f5d9f22a fix(tui): stop leftover toast titles during update install (#13114)
SolidJS store merge kept the previous toast title when the next toast omitted it, so the update prompt reused "MCP Authentication Required".
2026-08-13 21:34:30 +02:00
bagatao@anaconda.com 0af6c2d8f5 Merge branch 'main' into feat/worktree-for-cli 2026-08-12 17:29:19 +02:00
Johnny Eric Amancio 47d0d6d7e8 Merge remote-tracking branch 'origin/johnnyeric/kilo-opencode-v1.18.0' into johnnyeric/kilo-opencode-v1.18.13 2026-08-11 13:11:57 +02:00
Johnny Eric Amancio 249d206479 test(tui): fix diff-viewer-file-tree test regex for Windows cross-platform compatibility 2026-08-11 12:03:01 +02:00
Johnny Eric Amancio 5119e565e2 Merge remote-tracking branch 'origin/johnnyeric/kilo-opencode-v1.18.0' into johnnyeric/kilo-opencode-v1.18.13
# Conflicts:
#	bun.lock
2026-08-11 11:59:05 +02:00
Johnny Eric Amancio fbb52c89d3 Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-opencode-v1.18.0 2026-08-11 11:47:51 +02:00
kilo-maintainer[bot] a5aaef74a8 release: v7.4.21 2026-08-11 03:07:28 +00:00
Josh Lambert e48c534978 fix(tui): separate autocomplete descriptions from labels 2026-08-10 10:32:19 -04:00
Johnny Eric Amancio b484657713 fix(core): address review findings and CI stabilization for upstream merge 2026-08-10 12:44:58 +02:00
Johnny Eric Amancio 8d4caec308 Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-opencode-v1.18.0
# Conflicts:
#	packages/kilo-vscode/webview-ui/agent-manager/AgentManagerApp.tsx
#	packages/kilo-vscode/webview-ui/src/context/session.tsx
2026-08-07 12:44:16 +02:00
Johnny Eric Amancio 7318f37617 Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-opencode-v1.18.0 2026-08-06 17:44:26 +02:00
Bruno Agatao aac78b2ad5 Merge branch 'feat/worktree-for-cli' of github.com:Kilo-Org/kilocode into feat/worktree-for-cli 2026-08-06 16:23:51 +02:00
Bruno Agatao b57cfdce43 feat(cli): add kilo worktree create/list/remove commands and TUI alias 2026-08-06 16:23:43 +02:00
Josh Lambert 14f3b73eaf chore(tui): narrow disposal change markers 2026-08-06 09:11:40 -04:00
Josh Lambert 82c68086b9 fix(tui): preserve mounted refresh failures 2026-08-06 09:07:55 -04:00
Josh Lambert e2ec77813a fix(tui): suppress expected disposal aborts 2026-08-06 08:47:07 -04:00
Johnny Eric Amancio 4174457a0d Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-opencode-v1.18.0
# Conflicts:
#	package.json
2026-08-06 14:02:04 +02:00
Marius 157afe4622 Merge pull request #12935 from Kilo-Org/fix-cli-interactive-terminal
fix(cli): restore interactive terminal input for workspaces
2026-08-06 13:36:42 +02:00
Johnny Eric Amancio 3003a302bc fix: address pull request review comments 2026-08-06 12:37:02 +02:00
marius-kilocode 3917ed1f9b fix(cli): route interactive terminal through workspace 2026-08-06 10:53:23 +02:00
Johnny Eric Amancio 25f4b58d93 fix: address post-merge validation findings 2026-08-05 21:08:55 +02:00
Johnny Eric Amancio 88083fb5c5 resolve merge conflicts 2026-08-05 16:01:49 +02: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
Johnny Eric Amancio 76783409bf refactor: kilo compat for v1.18.0 2026-08-05 11:59:08 +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
kilo-maintainer[bot] 62baedd258 release: v7.4.20 2026-08-04 10:23:57 +00:00
kilo-maintainer[bot] 20aead0d87 release: v7.4.19 2026-08-04 07:56:10 +00:00
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
bagatao@anaconda.com 68f11a8dea Merge branch 'main' into feat/explain-tool-auto-approval-tui 2026-08-03 11:46:50 +02:00
kilo-maintainer[bot] f00da9a75b release: v7.4.18 2026-07-31 19:59:08 +00:00
Bruno Agatao abe17f1f9d fix(tui): move the tool approval/denial note back onto the header line
The note was appended after the tool's own output (or, in an interim
revert, on its own line above it), which either looked like part of
the output or was visually noisier than desired. Render it inline on
the header/title line instead, matching the existing RoutedModelMeta
badge convention (' · note'), so it reads unambiguously as metadata
about the call rather than output.
2026-07-31 16:31:49 +02:00
Johnny Amancio 76d06fd8ba fix: name the auto-approve commands by scope and repair CI failures
Restore packages/ui/src/components/markdown.css. Upstream moved markdown
styling into the new session-ui package and deleted this file, but Kilo still
ships packages/ui's markdown component to the VS Code webview, so the rules
went missing while their consumer stayed. The copy button lost
position: absolute and opacity: 0, so it rendered below every code block
instead of in its corner, and showed the copy and check icons at once because
nothing hid the check state.

The palette showed "Enable auto-approve permissions" next to "Enable
auto-approve mode", which reads as the same command twice. They are not: one
lasts for the TUI run and is what --auto and --yolo seed, the other saves a
rule to global config. Both now say which they are and carry a desc, which
the palette already renders. The saved one is enforced server side, so its
desc says it covers every client. No behaviour change, and the command names
are untouched so the slash aliases still work.

Tests no longer depend on the developer's credential store. Credential
imports Global.data/auth.json on startup, and the catalog, plugin and
models-dev layers built Credential.node without overriding Global, so results
changed depending on whether the machine was logged in. They now use a temp
data directory, as the integration suite already did. That suite in turn set
KILO_AUTH_CONTENT at module scope; bun shares one process across test files,
so it leaked into credential.test.ts, whose auth.json cases then read "{}"
and found no credentials. Scoped with beforeAll/afterAll.

macOS-only failures, all merge gaps in Kilo tests:

- sandbox/state.test.ts runs a script in a subprocess; the LayerNode
  migration put AppNodeBuilder.build in it without adding the import
- sandbox/session-tools.test.ts mocked MCP without clients(), which
  upstream's resource tools now call
- sandbox/session.test.ts built SessionV2 without binding SessionExecution

Generated files: schema.gen.ts was formatted by an older prettier than the
one main's dependency bump resolves, so the generator no longer reproduced it
and the migration check called the schema stale. packages/client was missing
Pty.sessionID and the compaction include field. Both regenerated.

Also corrected the listener comment: it claimed application services still
come from AppRuntime, but the SessionV2 and MoveSession builds sit inside
KiloListener's Layer.fresh boundary and self-provide their subtrees, which is
deliberate since both bind this listener's own LocationServiceMap.
2026-07-30 22:01:05 +02:00
Johnny Amancio a606a91e69 fix: restore Kilo deltas the merge dropped
- tool-input delta/end no longer recreate a settled call as a pending part
- outputTokenMax is back in overflow accounting, with RuntimeFlags rewired
- MCP server instructions reach the system prompt again (sys.mcp call site)
- session revert decodes stored messages through the Kilo normalize boundary
- shell tool titles runs with the model description and keeps it in metadata
- subdirectory snapshots drop newly ignored files: the ignore check and the
  index removal ran from the instance dir, but candidates are worktree
  relative
- customize-opencode builtin stays unregistered after the boot.ts rename
- --auto is interpreted in one place; the flag beside it now covers only
  --yolo and --dangerously-skip-permissions
- --cloud-fork works again, validateSession had landed before the import
- TUI block tool skips the empty title row, opencode catalog gate reads
  credentials per reload, TUI worker logs crashes, Snowflake OAuth uses the
  Kilo page, annotations guard covers the shared packages
- tests: startRun spawned without the solid preload so every run under it
  died on the JSX runtime; two upstream tests get a permission fixture since
  headless auto-rejects bash; one expected a single error record where Kilo
  emits two, as it did before this merge
- changeset for the range, help snapshot, llmgateway indentation
2026-07-30 19:52:20 +02:00
Bruno Agatao 8e515dd6f1 feat(tui): show why a tool call was auto-approved or denied
Ports the auto-approval provenance explanation already shown in
kilo-ui/vscode to the TUI. Adds a Kilo-owned tool-approval.tsx with a
plain-text description helper (describeApproval) and a shared
ApprovalNote row component, then wires a single call into InlineTool/
InlineToolRow (Shell, Read, Grep, Glob, WebFetch, etc.) and BlockTool
(Write, Edit, ApplyPatch, Task), showing a muted line under completed/
failed tool calls.

Todo writes are excluded via a hideApproval prop, mirroring the
kilo-ui behavior that treats them as orchestration rather than an
auditable action.
2026-07-30 18:04:55 +02:00
Johnny Amancio db000fef1c Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-opencode-v1.17.13
# Conflicts:
#	bun.lock
#	packages/core/src/v1/permission.ts
#	packages/opencode/src/acp/permission.ts
#	packages/opencode/src/cli/cmd/tui.ts
#	packages/opencode/src/skill/discovery.ts
#	packages/opencode/src/skill/index.ts
#	packages/opencode/test/cli/run/run-process.test.ts
#	packages/opencode/test/skill/discovery.test.ts
#	packages/opencode/test/tool/registry.test.ts
#	packages/sdk/openapi.json
#	packages/server/src/handlers/pty.ts
2026-07-30 16:32:39 +02:00