Commit Graph

27276 Commits

Author SHA1 Message Date
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
kilo-maintainer[bot] a08d57da55 chore: update kilo-vscode visual regression baselines 2026-07-30 18:39:46 +00:00
Johnny Amancio 3c20e6a6d6 fix: let the listener reuse the app services instead of rebuilding them
AppLayer was still missing EventV2, ProjectV2 and ProjectCopy, so
createListenerRoutes compensated by providing the whole application graph.
KiloListener wraps the routes in Layer.fresh, so that build ran against a
new memo map and stood up a second copy of every service, including the
database, plugins and the event bus.

Adding the three nodes to AppLayer lets the listener drop that provide, so
it resolves the same instances the rest of the process uses.

tool-input-delta and -end now just return. The guard only needs to not call
ensureToolCall; reading the part back cost a query per streamed chunk and
the result was discarded.
2026-07-30 20:33:53 +02:00
Johnny Amancio 5c9da0816f Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-opencode-v1.17.13
# Conflicts:
#	package.json
2026-07-30 20:24:34 +02:00
Johnny Amancio 9dc9b0e0ab fix: apply --yolo consistently and drop an empty catch
--yolo approved root permissions but subagent asks still keyed off
--dangerously-skip-permissions, so tracked task permissions were rejected
and the session was marked headless. Both now follow the same flag.

ACP resource parsing used an empty catch, which AGENTS.md forbids. Only a
non-URL uri is expected there, so parse without throwing and keep the
fallback for that case alone.
2026-07-30 20:21:33 +02:00
Christiaan Arnoldus 2ef92e2e32 Merge pull request #12700 from Kilo-Org/equable-stinger
fix: surface provider error details from Responses API stream failures
2026-07-30 20:15:55 +02:00
Johnny Amancio 7d0089bb26 Merge remote-tracking branch 'origin/main' into johnnyeric/kilo-opencode-v1.17.13
# Conflicts:
#	packages/opencode/src/kilocode/server/httpapi/server.ts
#	packages/opencode/src/server/routes/instance/httpapi/server.ts
2026-07-30 20:11:31 +02:00
Christiaan Arnoldus 52e17568e7 Merge branch 'main' into equable-stinger 2026-07-30 20:01:32 +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
Christiaan Arnoldus e07d7d4618 docs: refresh stale schema comments 2026-07-30 19:03:27 +02:00
Christiaan Arnoldus 9245279de5 fix: match hyphenated rate-limit prose in retry heuristics 2026-07-30 18:55:05 +02:00
Marius a7d72e2573 Merge pull request #12703 from Kilo-Org/feat/agent-manager-setup-terminal
feat(agent-manager): run setup scripts in panel terminal
2026-07-30 18:51:30 +02:00
Marius 7623676527 Merge branch 'main' into feat/agent-manager-setup-terminal 2026-07-30 18:37:46 +02:00
Marius 5c140b12cf feat(agent-manager): key diff review by selection with per-session scope (#12709) 2026-07-30 12:32:54 -04:00
marius-kilocode 59bfcfd385 test(agent-manager): cover multi-project setup terminals 2026-07-30 18:21:48 +02:00
marius-kilocode 1856f20ba4 refactor(agent-manager): extract setup panel predicates 2026-07-30 18:17:04 +02:00
marius-kilocode e4a739a0bd chore(agent-manager): keep provider within size cap 2026-07-30 18:16:17 +02:00
marius-kilocode 5076b62974 feat(agent-manager): run setup scripts in panel terminal 2026-07-30 18:16:17 +02:00
Christiaan Arnoldus 411f28f118 fix: accept null error fields and narrow message retry heuristics 2026-07-30 18:16:09 +02:00
Marius 166d04e846 Merge pull request #12566 from Kilo-Org/abalone-bactrosaurus
feat(vscode): multi-project Agent Manager
2026-07-30 18:07:46 +02:00
Christiaan Arnoldus 31d844a708 fix: keep stream error retryability on par with previous heuristics 2026-07-30 18:06:17 +02:00
Christiaan Arnoldus 677b315cbb refactor: parse stream error frames with zod 2026-07-30 18:01:11 +02:00
Christiaan Arnoldus 97792169ee fix: cover envelope-less stream error shapes and unlisted codes 2026-07-30 17:50:58 +02:00
marius-kilocode 6a0482d1f7 Merge remote-tracking branch 'origin/abalone-bactrosaurus' into abalone-bactrosaurus 2026-07-30 17:50:04 +02:00
marius-kilocode 52447ed2af fix(agent-manager): scope run-script state to the owning project
The RunScriptManager keys entries by worktreeId and the webview sends
"local" for whichever project's local context is selected, so in
multi-project mode two projects' local runs collided in one entry: a
second project's Run button stopped the first project's script, and the
state payload spread every project's run statuses into the active
project's push, rendering foreign local rows as running.

The provider now namespaces the local key as <projectId>:local at the
message boundary (ambient project scope, no webview protocol change),
RunController treats the qualified suffix as a local run (repo root cwd,
"local" branch label), each project's state payload is filtered to its
own worktrees plus its un-namespaced local key, and runStatus emissions
are routed with a projectId stamp so background-project statuses land in
their own webview store. ScriptTerminalManager keys inherit the same
qualification, and its view mapping already namespaces run terminals to
the matching project bucket.
2026-07-30 17:50:04 +02:00
Christiaan Arnoldus 861e2e5bdd fix: render responses stream failure frames as clean provider errors 2026-07-30 17:34:25 +02:00
Hardik Sharma 0d923d0ef5 fix(memory): accept extra digest fields (#12675) 2026-07-30 17:29:37 +02:00
Marius 1d1630b346 fix(cli): settle signal-terminated shell commands as 128 + signum (#12698) 2026-07-30 17:26:57 +02:00
Christiaan Arnoldus 0e3ce11862 fix: align ai core with provider packages in lockstep, drop bedrock bump 2026-07-30 17:09:31 +02:00
Joshua Lambert 1836c1d578 Merge pull request #12576 from Kilo-Org/docs/nvidia-byok-provider
docs: add NVIDIA to BYOK providers
2026-07-30 10:42:26 -04:00
Joshua Lambert 0bcb019ce3 Apply suggestion from @lambertjosh 2026-07-30 10:40:40 -04:00
Joshua Lambert 9fbe502432 Apply suggestion from @lambertjosh 2026-07-30 10:40:00 -04:00
Christiaan Arnoldus f695425328 fix: surface provider error details from Responses API stream failures 2026-07-30 16:35:49 +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
Johnny Amancio 61b2f1d0cb fix: repair generated artifacts and branding after the v1.17.13 merge
Generation was failing. Upstream added a guard in this range that rejects
duplicate session event variants, and Kilo's tool-content codec on the shared
event schema was tripping it, so openapi.json and the SDK were stale and a temp
packages/sdk/js/openapi.json got committed by accident.

Move the codec off the event schema into core/src/kilocode/event-storage.ts,
keyed by event type and applied only at the SQL boundary. Session events are on
the wire now (SessionEvent.Durable backs /api/session/{id}/history), so a
transform there forked the generated API. Shipped readers still parse old rows
and the wire contract goes back to upstream's. Drops the consumer-side
normalizers in the TUI and sync-v2 that existed only to undo the widening.

Also: restore the Kilo HttpApi title and a few branding strings, balance five
kilocode_change markers, drop a duplicate TUI palette entry, and teach
check-model-tool-network about the LayerNode wiring that replaced
Layer.provide(ToolNetwork.httpLayer).
2026-07-30 16:20:25 +02:00
Marius 7fcdd110c1 Merge branch 'main' into abalone-bactrosaurus 2026-07-30 16:05:40 +02:00
Marius af6bb00eed fix(agent-manager): align Cmd+/ fallback with platform binding and one-shot echo (#12694)
* fix(agent-manager): align Cmd+/ fallback with platform binding and one-shot echo

* fix(agent-manager): expire dropped terminal-shortcut echoes at press time
2026-07-30 15:53:14 +02:00
Johnny Amancio 6017c3ea83 fix(server): provide the v2 service graph to the Kilo listener
The backend exited before binding with 'Service not found:
ControlPlaneMoveSession'. Upstream's v2 ServerApi groups declare location
and session middleware that must be satisfied when the layer is built,
but Kilo's listener path composes the routes itself and only createRoutes
carried that chain. MoveSession and PtyTicket were also dropped from the
app runtime graph during the layer-node migration.
2026-07-30 15:51:46 +02:00
Marius fcbb0ccfc1 Merge pull request #12696 from Kilo-Org/tabby-modem
fix(agent-manager): propagate base branch override to active diff source
2026-07-30 15:50:00 +02:00
marius-kilocode ff7fdf65b2 fix(agent-manager): preserve diff watch mode across base changes 2026-07-30 15:42:46 +02:00
Marius 5e283d6255 Merge pull request #12693 from Kilo-Org/grape-airedale
fix(agent-manager): align panel terminal tabs with session tabs
2026-07-30 15:38:37 +02:00
bagatao@anaconda.com 1511eb6419 Merge pull request #12604 from Kilo-Org/feat/execute-cmds-in-skill-context
feat(tui): execute cmds in skill context
2026-07-30 15:21:53 +02:00
marius-kilocode a2b22d07c2 fix(agent-manager): propagate base branch override to active diff source 2026-07-30 15:04:42 +02:00
Marius 1cd81a9e1f fix(agent-manager): open terminal when switching worktrees (#12689) 2026-07-30 15:03:50 +02:00
marius-kilocode e0d42fc5ea fix(core): re-check models.dev cache under the flock before refetching
The corrupted-cache recovery in ModelsDev.populate acquired the flock and
fetched unconditionally, while the background refresh fiber runs the same
recovery on layer build. When refresh won the lock race it rewrote a valid
cache file, but populate still fetched again because it never re-read the
cache after acquiring the lock. The result was a duplicated network call,
which the corrupted-cache test catches as calls.length == 2 on slow CI
runners (fast local machines almost always take the single-fetch path).

Re-run loadFromDisk under the flock, mirroring the re-check refresh
already performs, so whichever fiber recovers second reuses the valid
cache instead of refetching.
2026-07-30 14:35:22 +02:00
marius-kilocode 1e2a7f17d7 fix(agent-manager): align panel terminal tabs with session tabs
Panel terminal tabs reuse the tab bar's chrome: right-click Close/Close
Others, arrow-key navigation, overflow scrolling with edge fades, and
frozen widths while closing. The new-terminal button sits next to the
last tab instead of the panel edge, and the strip loses its top padding,
stray dividers, and off-center plus button.
2026-07-30 14:32:57 +02:00
Johnny Amancio 518501a994 resolve merge conflicts 2026-07-30 14:24:24 +02:00
marius-kilocode d16b6daece Merge remote-tracking branch 'origin/main' into abalone-bactrosaurus
# Conflicts:
#	packages/kilo-vscode/src/agent-manager/AgentManagerProvider.ts
#	packages/kilo-vscode/src/agent-manager/host.ts
#	packages/kilo-vscode/src/agent-manager/vscode-host.ts
#	packages/kilo-vscode/webview-ui/agent-manager/AgentManagerApp.tsx
2026-07-30 14:13:31 +02:00
Christiaan Arnoldus 70eeaff383 Merge pull request #12684 from Kilo-Org/gilded-impulse
fix(core): include underlying reason in ripgrep execution failures
2026-07-30 14:05:47 +02:00
Marius 22ca041684 Merge pull request #12692 from Kilo-Org/fix/vscode-past-chats-worktree-family
fix(vscode): list past chats across the worktree family
2026-07-30 14:01:19 +02:00