Add experimental workspace adaptor list and status endpoints to the
OpenAPI spec. Add --sanitize flag to CLI export command for redacting
sensitive data. Update SDK types to reorder session status types before
suggestion types. Remove deprecated /global/sync-event endpoint.
Includes formatting fixes across i18n files, opencode source, and
tests, plus a warpgrep import path correction.
* docs(cli): note cloud schema mirror when adding kilocode_change config keys
Points devs to apps/web/src/app/config.json/extras.ts in the cloud repo
so new Kilo-only config keys get recognised by $schema references.
Closes#9115
* docs: add CLI config schema page and AGENTS.md mirror rule
Short page under Contributing → Architecture explaining how the cloud
overlays Kilo extras on top of the upstream opencode JSON Schema, with
the step-by-step for adding a new Kilo-only config key. AGENTS.md gains
a one-liner in the Fork Merge Process section pointing to it.
Gate the agent-change auto-apply effect on model.json load and skip it when a per-agent pick already exists, so user-selected models for agents with a configured default no longer revert on agent switches or restarts.
Webview now ignores the blocking field entirely, and the CLI TUI treats
undefined as blocking (s.blocking !== false), so setting
blocking: Flag.KILO_CLIENT !== 'vscode' is redundant. Drop the line and
the now-unused Flag import — CLI takeover behavior is preserved, webview
behavior is unchanged.
The prompt queue already serializes follow-up loops, so canceling the
in-flight loop on every new prompt breaks the queue contract (see
session-prompt-queue.test.ts). Keep only Suggestion.dismissAll so a
previous loop blocked on a suggestion can settle.
When a user queued a prompt while the previous turn was still streaming,
the message's time_created fell before later assistant steps of that
turn. Ordering by time_created alone left the queued prompt in the
middle of the prior turn's history, so the next request ended with an
assistant message and tripped Anthropic's prefill rejection.
Reorder inside KiloSessionPromptQueue.scope so the target user message
and any of its own turn's assistants are always placed at the end.
* fix(cli): continue queued follow-up prompts
* test(cli): stabilize local model persistence test
* fix(cli): preserve queued prompt order
* fix(cli): persist queued prompts before processing
* chore(cli): clarify prompt queue settling
* fix(cli): preserve queued prompt history order
* fix(cli): clear queue state on release and test abort
Prevent duplicate TsClient instances from accumulating in s.clients
on repeated getClients calls by checking for an existing client before
creating a new one.
Re-introduce the lightweight TypeScript diagnostic mode that was lost
during upstream OpenCode merges. Fixes the buggy server.ts spawn (leaked
process, wrong args) and re-adds TsClient integration in index.ts.
Introduce a "Take Heap Snapshot" command in the VS Code Command Palette
that triggers the bundled CLI process to write a V8 heap snapshot to the
log directory. This includes:
- New server route POST /kilocode/heap/snapshot in opencode
- HeapSnapshot module using node:v8 writeHeapSnapshot
- VS Code command registration and client-side fetch logic
- Generated SDK types and client methods for the new endpoint
The .gitignore generated in .kilo/ config directories was missing
pnpm-lock.yaml and yarn.lock patterns, causing these lockfiles to
appear as untracked files in users' projects.
The switch(model.prompt) block in SystemPrompt.provider() was
accidentally dropped during merge conflict resolution in fa2c979ac.
This meant the prompt property set by the Kilo gateway (e.g. codex,
anthropic, beast) was stored on the model but never read, causing all
Kilo-routed models to fall back to model.api.id string matching.
* fix(cli): remap child session references on fork to prevent subagent state leaks
When forking a session, task tool parts referencing child sessions were
copied verbatim, causing both original and forked sessions to share the
same subagent references. This led to SSE events and permission prompts
leaking across sessions in the Agent Manager.
* fix: remove redundant recursive remapChildren call
Session.fork() already calls remapChildren via the hook, so the explicit
recursive call inside remapChildren was double-forking nested descendants.
* feat(cli,vscode): add custom commit message prompt setting
Support user-configurable system prompt for AI commit message generation.
Adds a dedicated Commit Message tab in VS Code settings with a toggle
to override the built-in conventional commits prompt.
* fix: add missing kilocode_change annotation and fix i18n formatting
* refactor: move Config reading to route handler, add textarea max-height
Move kilo-specific Config.get() from shared generate.ts to the route
handler. The generator now accepts an optional prompt param instead.
Cap textarea height at 300px with scroll for long prompts.
* fix: resolve annotation gaps and prompt clear serialization bug
Add kilocode_change markers to JSDoc comment and extend block to
cover the generateCommitMessage call. Use empty string instead of
undefined when clearing the prompt so JSON serialization persists
the removal to disk.
* refactor(cli): move commit-message module to kilocode paths
Move src/commit-message/ to src/kilocode/commit-message/, route to
src/kilocode/server/routes/, and tests to test/kilocode/commit-message/.
Extract CommitMessageSchema to KilocodeConfig and reference it from
the main Config.Info. Removes all kilocode_change markers from moved
files since they are now in exempt paths.
* test(cli): fix moved commit-message tests