375 Commits

Author SHA1 Message Date
Alex Alecu e2c2de2447 feat(plan): display plan message as non-synthetic in new sessions 2026-02-20 14:19:18 +02:00
Alex Alecu d5bceac21e feat: Handover task list and compacted context to next session after planning 2026-02-20 12:28:21 +02:00
Marian Alexandru Alecu 72ce6fbb72 Merge branch 'dev' into feat/suggestions-after-plan-end 2026-02-19 16:59:33 +02:00
Alex Alecu 9a9d675ada test: add withInstance helper, use answer constants 2026-02-19 13:20:04 +02:00
Alex Alecu 294846f706 fix: Reject pending plan followup question on abort signal 2026-02-19 11:59:57 +02:00
Alex Alecu a5e6ceb76e feat: When starting a new session after planning, include a compact summary of what was explored and which files were read so the AI doesn't have to re-search the codebase. 2026-02-19 11:42:35 +02:00
Alex Alecu 2d46b17f6c feat: Add predefined suggestions after finishing the planning session to improve context management 2026-02-19 10:23:19 +02:00
Evgeny Shurakov a2d18131a8 feat(kilo-sessions): send git remote URL and branch to ingest
Add gitUrl and gitBranch fields to kilo_meta so shared sessions
include repository context. Resolves the best remote (origin > single
available > upstream) and fetches the URL with a 10s in-flight cache.
2026-02-18 22:38:46 +01:00
Pedro Heyerdahl e02debf27b Merge pull request #407 from Kilo-Org/feat/usage-feature-attribution
feat(usage): add feature attribution header to API requests
2026-02-18 17:31:12 -03:00
Pedro Heyerdahl 0f139f3120 feat(usage): add feature attribution header to API requests
Introduce X-KILOCODE-FEATURE header for tracking request origin
across different entry points (CLI, VSCode extension, autocomplete).

- Add HEADER_FEATURE, DEFAULT_FEATURE, and ENV_FEATURE constants
- Add getFeatureHeader() helper reading from KILOCODE_FEATURE env var
- Include feature header in buildKiloHeaders() when env var is set
- Set feature to "autocomplete" for FIM/completion requests
- Set KILOCODE_FEATURE="vscode-extension" when spawning CLI from VSCode
- Default to "cli" feature in opencode entry point
- Add unit tests for feature header logic
2026-02-18 15:49:22 -03:00
Kevin van Dijk b15b554552 Resolve merge conflicts 2026-02-18 19:38:22 +01:00
Kevin van Dijk e88e6df76a refactor: kilo compat for v1.1.65 2026-02-18 19:30:20 +01:00
Kevin van Dijk f5e65046fa Resolve merge conflicts 2026-02-18 18:16:52 +01:00
Kevin van Dijk 5d9c6180d9 refactor: kilo compat for v1.1.64 2026-02-18 18:08:06 +01:00
Kevin van Dijk ec1b20336d Resolve merge conflicts 2026-02-18 16:39:04 +01:00
Kevin van Dijk 3ea7c918ed refactor: kilo compat for v1.1.62 2026-02-18 16:20:05 +01:00
Kevin van Dijk 6f9f7443ef Resolve merge conflicts 2026-02-18 13:26:43 +01:00
Kevin van Dijk 53dea6e1e0 refactor: kilo compat for v1.1.60 2026-02-18 12:53:03 +01:00
Marius 50a6238baf feat: merge upstream opencode v1.1.58 (#323)
* fix(tui): prevent home wordmark corruption in height-constrained terminals (#13069)

* feat(prompt): mode-specific input placeholders (#12388)

* fix(tui): keep /share available to copy existing link (#12532)

* fix(tui): dismiss dialogs with ctrl+c (#12884)

* fix(app): terminal resize

* fix(console): translations

* fix(app): terminal PTY buffer carryover

* fix(app): notifications on child sessions

* Revert "feat(desktop): add WSL backend mode (#12914)"

This reverts commit 213a87234d.

* release: v1.1.58

* refactor: kilo compat for v1.1.58

---------

Co-authored-by: Kit Langton <kit.langton@gmail.com>
Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com>
Co-authored-by: opencode <opencode@sst.dev>
2026-02-16 13:50:12 +00:00
Marius 7163fbcee9 chore: update config schema URL from opencode.ai to app.kilo.ai (#267) 2026-02-13 16:01:33 +01:00
Marius d97fb9a6da fix: revert Claude reasoning additions for Kilo Gateway (#305)
Disable reasoning for Claude models via Kilo Gateway until the
OpenRouter AI SDK is upgraded to v2.x (which includes the fix for
reasoning_details duplication - OpenRouterTeam/ai-sdk-provider#344).

Changes:
- Remove hardcoded reasoning effort for Claude in options()
- Return empty variants for Claude in variants()
- Remove Claude-specific reasoning.effort in smallOptions()
- Keep thinking/reasoning block stripping code (prevents corrupt
  reasoning_details from being sent back to the API)
- Caching continues to work via model.api.id matching

Fixes #303
2026-02-13 10:38:01 +01:00
Aiden Cline 1fb6c0b5b3 Revert "fix: token substitution in OPENCODE_CONFIG_CONTENT" (#13429) 2026-02-12 23:24:31 -06:00
Adam 8da5fd0a66 fix(app): worktree delete 2026-02-12 19:38:13 -06:00
projectArtur 991496a753 fix: resolve ACP hanging indefinitely in thinking state on Windows (#13222)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: LukeParkerDev <10430890+Hona@users.noreply.github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2026-02-12 18:20:00 -06:00
Ariane Emory 29671c1397 fix: token substitution in OPENCODE_CONFIG_CONTENT (#13384) 2026-02-12 16:59:44 -06:00
Adam 548608b7ad fix(app): terminal pty isolation 2026-02-12 15:15:34 -06:00
Aiden Cline d1ee4c8dca test: add more test cases for project.test.ts (#13355) 2026-02-12 18:46:44 +00:00
Dax Raad 789705ea96 ignore: document test fixtures for agents 2026-02-12 12:10:21 -05:00
Ryan Vogel ba54cee55e feat(tool): return image attachments from webfetch (#13331) 2026-02-12 12:09:29 -05:00
kiloconnect[bot] 3e3385fbb3 fix: support remote MCP server migration in mcp-migrator (#247)
* fix: support remote MCP server migration in mcp-migrator

The MCP migrator only handled stdio/local MCP servers. When a user
configured a remote streamable-http or sse MCP server in
.kilocode/mcp_settings.json, it failed with:
  The "file" argument must be of type string. Received undefined

This happened because convertServer() always assumed local servers,
building a command array from server.command (which is undefined for
remote servers).

Changes:
- Add remote transport type detection (streamable-http, sse)
- Convert remote servers to Config.McpRemote (type: "remote")
- Pass through url and headers fields
- Make command optional in KilocodeMcpServer interface
- Add comprehensive tests for remote server migration

* fix: validate url/command before use in mcp-migrator

Add guard clauses for missing url on remote servers and missing command
on local servers instead of using non-null assertions that could crash
on malformed config files.

---------

Co-authored-by: Kilo Agent <agent@kilo.ai>
Co-authored-by: marius-kilocode <marius@kilocode.ai>
2026-02-12 08:19:44 +00:00
Catriel Müller 1eedad9213 Refactor publish workflow and environment variables (#261)
* feat: changelog generation

* refactor: rename all ENV variables to KILO prefix

* refactor: publish rework

* refactor: publish rework

* refactor: unify git commiter action

* refactor: add all kilobots to the team
2026-02-12 09:00:51 +01:00
Marius 142f423b76 feat: add ask agent for read-only Q&A mode (#256)
* feat: add ask agent for read-only Q&A mode

Add a new primary 'ask' agent that answers questions and explains code
without making changes. Permissions are read-only: read, grep, glob,
list, question, webfetch, websearch, codesearch — edit, bash, and task
are denied. Migrators already had 'ask' in their known mode lists.

* fix: preserve .env read gating in ask agent, clarify read-only prompt

Address PR review feedback:
- Re-state *.env pattern map in ask agent permissions so the blanket
  deny+allow doesn't bypass the default env file gating
- Update prompt to say 'this agent is read-only' instead of implying
  edits are possible on request
- Add .env gating assertions to ask agent test
2026-02-12 08:47:14 +01:00
Kyle Mistele e269788a8f feat: support claude agent SDK-style structured outputs in the OpenCode SDK (#8161)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Dax Raad <d@ironbay.co>
2026-02-12 04:54:05 +00:00
Aiden Cline 006d673ed2 tweak: make read tool offset 1 indexed instead of 0 to avoid confusion that could be caused by line #s being 1 based (#13198) 2026-02-11 14:02:30 -06:00
Aiden Cline 6b4d617df0 feat: adjust read tool so that it can handle dirs too (#13090) 2026-02-11 13:23:00 -06:00
Catriel Müller 52588386a4 feat: merge opencode v1.1.57 2026-02-11 14:26:25 -03:00
Catriel Müller 029bbb9dc2 refactor: kilo compat for v1.1.57 2026-02-11 14:18:32 -03:00
Catriel Müller 3080736471 Merge pull request #224 from Kilo-Org/catrielmuller/kilo-opencode-v1.1.54
OpenCode v1.1.54
2026-02-11 11:29:51 -03:00
Igor Šćekić aa0e341d04 Merge pull request #155 from Kilo-Org/add-o11y-phase-1b 2026-02-11 12:46:17 +01:00
Marius 61df9982ee fix(mcp-migrator): use correct project-level filename mcp.json instead of mcp_settings.json (#230)
The Kilocode extension stores project-level MCP settings in
.kilocode/mcp.json, but the migrator was looking for
.kilocode/mcp_settings.json (which is only used for global settings).
This meant local MCP servers were never picked up by the CLI.
2026-02-11 10:25:03 +00:00
Aiden Cline 0fd6f365be fix(core): ensure compaction is more reliable, add reserve token buffer to ensure that input window has enough room to compact (#12924)
Co-authored-by: James Lal <james@littlebearlabs.io>
2026-02-10 19:55:22 -06:00
Catriel Müller f8131c2e00 feat: merge opencode v1.1.54 2026-02-10 22:10:03 -03:00
Igor Šćekić bc2b7d5ea5 Merge branch 'dev' into add-o11y-phase-1b 2026-02-10 21:03:52 +01:00
John Fawcett 1762590ff4 feat(opencode): add project ID resolution and tracking
refactor(opencode): improve project ID resolution and normalization
Implement logic to resolve a unique project identifier with priority given
to `.kilocode/config.json` and falling back to the git origin remote URL.
The resolved ID is normalized, cached per-instance, and sent as a header
to the Kilo Gateway provider to enable project-specific tracking.
2026-02-10 12:10:00 -06:00
Marius 337c05849b fix: use 'max' instead of 'xhigh' as highest reasoning effort for Anthropic models on Kilo Gateway (#213)
* fix: use 'max' instead of 'xhigh' as highest reasoning effort for Anthropic models on Kilo Gateway

Anthropic's native effort levels are low/medium/high/max, not xhigh.
The upstream merge replaced the Kilo-specific effort mapping with
OPENAI_EFFORTS which uses xhigh. This restores 'max' as the
user-facing variant name while mapping it to 'xhigh' on the wire
for OpenRouter API compatibility.

* fix: clarify comment about OpenRouter effort naming vs Anthropic naming
2026-02-10 11:47:14 -03:00
kiloconnect[bot] 025dbcb4df fix: use object-based reasoning format for Codex models with Kilo provider (#206)
Co-authored-by: kiloconnect[bot] <240665456+kiloconnect[bot]@users.noreply.github.com>
2026-02-10 10:41:12 +00:00
Aiden Cline f74c0339cc test: fix failing prompt test (#12847) 2026-02-09 11:25:22 -06:00
Marius d173377a2b fix: use OAuth accountId for enterprise model list filtering (#193)
Enterprise users logging in via OAuth had their organization ID stored
in auth.accountId but the model fetch code never read it, causing the
model list to be fetched from the personal endpoint instead of the
org-specific endpoint that applies the allow list.
2026-02-09 10:08:19 -05:00
Igor Šćekić cb84cb0439 fix(session): align close reason type and publish turn close reliably
Unify ingest queue and session close reasons via `Session.CloseReason` and
ensure `TurnOpen`/`TurnClose` publishing is awaited; mark close reason as
`error` on unexpected exceptions and handle abort-induced stops correctly.

Add ingest queue tests for stable-key coalescing of session open/close and for
including `?v=1` on flush requests.
2026-02-09 13:58:09 +01:00
Aiden Cline 99ea1351ce tweak: add new ContextOverflowError type (#12777) 2026-02-08 23:54:01 -06:00