Commit Graph
289 Commits
Author SHA1 Message Date
kiloconnect[bot] 80fa50adf4 fix(cli): replace remaining "opencode" branding references with "kilo"
Replace user-facing and protocol-visible "opencode" strings with "kilo"
across MCP auth flow, CLI commands, server metadata, and other areas
that were missed or reverted during upstream merges.

Files changed:
- mcp/index.ts: MCP client name and auth toast message
- cli/cmd/mcp.ts: config file reference, placeholder, debug client name
- cli/cmd/pr.ts: binary invocations and user messages
- server/server.ts: OpenAPI spec title and description
- server/mdns.ts: mDNS service host and name
- session/retry.ts: credits URL
- provider/provider.ts: CLI command in error message
- acp/agent.ts: auth method name and description
- tool/webfetch.ts: User-Agent header
2026-03-17 12:36:37 +00:00
kiloconnect[bot] c202ee34bb fix(cli): comment out proxy code instead of deleting it
Keep the original proxy code as comments rather than removing it,
making upstream merges easier and producing clearer merge conflicts.
2026-03-17 08:30:09 +00:00
kiloconnect[bot] 3dc6010dcb fix(cli): disable external proxy to app.opencode.ai
Disable the catch-all proxy route that forwards unmatched requests to
app.opencode.ai. This proxy served static assets from an external domain,
which raises privacy/security concerns as users' requests are sent to a
third-party host.

The catch-all route now returns a 404 instead of proxying. The proxy
import is commented out. Changes are marked with kilocode_change markers
to keep upstream merge diffs minimal.
2026-03-17 08:00:29 +00:00
Imanol Maiztegui 0484318191 Granular bash permission rules (#7091)
* fix: renamed pattern arrays used for permission rules

* fix: rename savePatternRules to saveAlwaysRules

* feat: generate hierarchical always patterns in bash tool

* feat: validate saveAlwaysRules against always array only

* feat: pass always field through extension bridge to webview

* feat: show hierarchical always patterns in PermissionDock dropdown

* fix: rename pattern to rule in PermissionDock translations, styles, and data-slots

* fix(vscode): correct auto-run comment in PermissionDock

* feat(kilo-vscode): strip trailing wildcard from permission rule labels

* fix: deduplicate permission rules and strip wildcards from display labels

* refactor: move hierarchy to metadata.rules, restore always to arity prefix

* feat: pass always field to permission dock for non-bash tool rules

* fix: correct bash test assertion to check metadata.rules and fix indentation

* fix: hide permission rules dropdown for non-bash tools

* fix: align always-rules route descriptions, whitespace, and restore multi-command tests
2026-03-16 17:43:16 +01:00
Mark IJbema 0b702ea1d7 feat: add backend route to delete custom mode files from disk
Replace the config disable:true approach with a proper Agent.remove()
function that scans config directories for the agent's markdown file
and deletes it, then refreshes state via Instance.dispose().

- Add Agent.remove() in agent.ts with RemoveError
- Add POST /kilocode/agent/remove route
- Mount KilocodeRoutes in server.ts
- Update KiloProvider to call the new backend route
- Regenerate SDK
2026-03-16 15:54:45 +01:00
Mark IJbema cfe4e8c46c fix: switch skill removal to POST with JSON body instead of DELETE with query params
File paths as query parameters can fail due to URL encoding issues.
Switch to POST /kilocode/skill/remove with the location in the JSON
request body, which avoids encoding problems entirely.

Also log the SDK error response to aid debugging.
2026-03-16 13:04:07 +01:00
Mark IJbema 9507b01c4c fix: rely on optimistic removal instead of stale backend response
The DELETE endpoint was returning data that somehow rendered as empty
rows in the webview. Simplify the approach:

- Webview optimistically removes the skill from its signal immediately
- Extension fires DELETE to the backend (deletes from disk + cache)
- Extension invalidates cachedSkillsMessage so next tab visit fetches
  fresh data
- No second skillsLoaded message is sent after removal, avoiding the
  stale data overwrite that caused the UI corruption
2026-03-16 13:04:07 +01:00
Mark IJbema f998ee32dc fix: return updated skills list from DELETE endpoint to fix stale UI
The DELETE /kilocode/skill endpoint now returns the updated skills
list (Skill.Info[]) instead of a boolean. The extension uses this
response directly to update the webview, eliminating the need for a
separate GET /skill round-trip that could return stale cached data.

Also normalize paths in Skill.remove() with path.resolve() to ensure
location strings match regardless of path format differences.
2026-03-16 13:04:07 +01:00
Mark IJbema 2d9e447399 refactor: rename to KilocodeRoutes at /kilocode prefix
Rename routes/skill.ts to routes/kilocode.ts with KilocodeRoutes
export, mounted at /kilocode. This is the single home for all future
kilo-specific CLI endpoints, avoiding conflicts with the existing
/kilo gateway routes and keeping all kilo changes out of server.ts.

SDK: client.kilocode.removeSkill()
2026-03-16 13:04:07 +01:00
Mark IJbema 07d16dff23 refactor: move DELETE /skill to dedicated route file
Extract the inline DELETE /skill endpoint from server.ts into a
dedicated packages/opencode/src/server/routes/skill.ts file, reducing
kilo-specific changes in the shared server.ts and minimizing future
merge conflicts with upstream.

The route is mounted at /skill and uses the same lazy() pattern as
other kilo-specific route files (telemetry, enhance-prompt, etc.).
2026-03-16 13:04:07 +01:00
Mark IJbema ec544e8288 feat: add DELETE /skill endpoint and use CLI backend for skill removal
Add Skill.remove() that deletes the skill directory from disk and
mutates the cached Instance.state in-place so subsequent GET /skill
calls return the updated list.

Add DELETE /skill?location=... server endpoint, regenerate the SDK,
and update KiloProvider to call the SDK method instead of deleting
files directly from the extension.
2026-03-16 13:04:07 +01:00
Imanol Maizteguiandgithub-actions[bot] 9e84e952ac Permissions: styling and tooltips (#7025)
* feat(kilo-vscode): Improved permission styling

* chore(kilo-vscode): Added translations for permission tooltips

* fix(kilo-vscode): Formatting

* chore: update kilo-vscode visual regression baselines

* feat(kilo-vscode): Improved border styles for permissions

* chore: update kilo-vscode visual regression baselines

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-13 16:19:24 +01:00
Kevin van Dijk 83cef06f0d Merge pull request #6989 from Kilo-Org/kevinvandijk/kilo-opencode-v1.2.17
OpenCode v1.2.17
2026-03-13 14:06:54 +01:00
Imanol Maizteguiandgithub-actions[bot] a913731700 Permission toggles per-pattern in permission dock (#6977)
* feat(kilo-vscode): Granular permission layout

* formatting

* chore: update kilo-vscode visual regression baselines

* fix: Make sure pattern permissions are correctly saved

* fix: Only save patterns originally sent

* chore: Moved pattern permission logic to its own endpoint

* tests: Unit tests for pattern permissions handling

* fix: Avoid race conditions on permission reply messages

* fix: Handle missing requestId on pattern permission request

* fix: Return NotFoundError when input.requestID missing

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-13 13:56:57 +01:00
Kevin van Dijk b83c848909 Resolve merge conflicts 2026-03-12 12:42:48 +01:00
Marius 2bca0ac9f1 feat(agent-manager): lazy-load worktree diff details (#6945)
* feat(agent-manager): lazy-load worktree diff details

* fix(agent-manager): remove unused diff helper

* fix(agent-manager): preserve summary diff accuracy

* fix(agent-manager): avoid stale diff summary targets

* perf(agent-manager): avoid rescanning diff details
2026-03-12 11:43:38 +01:00
Kevin van Dijk 312733ebd6 Resolve merge conflicts 2026-03-09 13:02:22 +01:00
Imanol Maiztegui d4f7a68925 fix: Removed dependencies 2026-03-05 16:32:32 +01:00
Imanol Maiztegui ea3cffb4aa fix: Remove disposeAll() on auth 2026-03-05 16:31:11 +01:00
Imanol Maiztegui c3ed9466a2 fix: invalidate model cache on auth/org changes and reload state after dispose 2026-03-05 12:23:25 +01:00
James Long 7f37acdaaa feat(core): rework workspace integration and adaptor interface (#15895) 2026-03-03 21:35:38 -05:00
Catriel Müller 4db891dcc2 fix(migration): shared disposeAll debounce, MCP timeout, bash rule merge 2026-03-03 14:57:56 -03:00
Catriel Müller 6045a47cd7 Merge branch 'main' into catrielmuller/kilo-vscode-migration 2026-03-03 13:39:40 -03:00
Catriel Müller b3d25d19da fix(migration): address bot review — partial failure handling, disposeAll debounce, error handling, YAML quotes 2026-03-03 13:36:46 -03:00
Mark IJbema 6f9a0f0c5a feat(vscode): Enhance Prompt — ✨ sparkle button to improve prompts before sending
Add the Enhance Prompt feature to the VS Code extension, matching the
legacy extension's behaviour. A ✨ sparkle button in the chat input
toolbar rewrites the user's draft prompt using an LLM.

CLI:
- POST /enhance-prompt endpoint using LLM.stream with small model
- System prompt as agent.prompt for caching; user text as user message
- clean() strips code fences and surrounding quotes from LLM output

Extension:
- KiloProvider handler using SDK client.enhancePrompt.enhance()
- Shows VS Code error notification on failure
- WandSparkles icon from lucide-solid via @kilocode/kilo-ui
- Spin animation while enhancement is in flight
- Empty-input click shows feature description (all 16 i18n locales)
- Ctrl+Z / ⌘Z undo restores original draft
- Guard checks isBusy/isDisabled/enhancing matching canEnhance()

Tests:
- 11 unit tests for clean() in enhance-prompt.test.ts

Migration plan:
- Removed feature row (parity achieved)
- Deleted prompt-improvement.md spec doc
2026-03-03 13:21:45 +01:00
Marius 581a241605 fix agent manager worktree diff base branch (#6545) 2026-03-03 10:36:37 +01:00
Catriel Müller 325fa346ef refactor: update migration ui 2026-03-02 22:41:35 -03:00
James Long cec16dfe95 feat(core): add WorkspaceContext (#15409) 2026-02-28 20:44:54 -05:00
James Long c12ce2ffff feat(core): basic implementation of remote workspace support (#15120) 2026-02-27 15:36:39 -05:00
Kevin van Dijk a04589b028 Resolve merge conflicts 2026-02-26 12:56:14 +01:00
Kevin van Dijk d92b94e7ca Merge pull request #6354 from Kilo-Org/kevinvandijk/kilo-opencode-v1.2.11
OpenCode v1.2.11
2026-02-26 02:40:08 +01:00
Marius 41995929cd fix: resolve diff viewer race condition and add diagnostics for Agent Manager (#6352)
* fix: resolve diff viewer race condition and add diagnostics for Agent Manager

onRequestWorktreeDiff now awaits stateReady before resolving the diff
target, preventing a race where startDiffWatch fires before state loads
from disk. Added diagnostic logging to resolveDiffTarget, diff polling,
and the server-side /experimental/worktree/diff endpoint so silent
failures become visible in the output channel.

* fix: guard stateReady await so rejection doesn't break diff polling

* docs: clarify why .catch() is required on stateReady await
2026-02-25 18:07:42 +00:00
Kevin van Dijk 2b05e4f40b Resolve merge conflicts 2026-02-25 18:34:18 +01:00
Shantur Rathore 79b5ce58e9 feat(core): add message delete endpoint (#14417) 2026-02-25 09:25:26 -05:00
Marius 138f1bd95f feat(vscode): add diff viewer panel to Agent Manager (#6335)
* feat(vscode): add diff viewer panel to Agent Manager

* Update translations

* Fix comments
2026-02-25 10:16:14 +00:00
Catriel Müller 8acb463b2e Merge pull request #6206 from Kilo-Org/kevinvandijk/kilo-opencode-v1.2.7
OpenCode v1.2.7
2026-02-24 11:28:02 -03:00
Igor Šćekić 8d83b3c356 fix: address review feedback on cloud sessions feature
- Use kilo-ui Checkbox instead of raw <input> in CloudSessionList
- Replace `any` types in KiloRoutesDeps with structural types
- Inject Identifier dep instead of duplicating ID generation logic
- Delete unused fetchCloudSessions() in api/sessions.ts
- Add Array.isArray guard on data.messages in import endpoint
- Avoid mutating data.info in-place during cloud session import
- Translate session.cloud.import.* i18n keys across all 15 locales
- Remove obsolete checkbox CSS (now handled by kilo-ui)
2026-02-23 20:30:53 +01:00
Kevin van Dijk ae62fff98d Resolve merge conflicts 2026-02-23 20:12:28 +01:00
Igor Šćekić f34a8c2cd3 fix(kilo-gateway): fire Session.Event.Created after cloud session import
The imported session was never registered with the cloud sync system
because Session.Event.Created was not fired. KiloSessions.init()
subscribes to this event to call KiloSessions.create(), which registers
the session with the ingest API and creates the session_share record
needed for incremental sync. Now uses Database.effect() to publish the
event after the DB transaction completes.
2026-02-23 18:32:06 +01:00
Igor Šćekić 478421fd58 fix(kilo-gateway): write imported sessions to SQLite instead of filesystem
The import endpoint was using Storage.write() which writes JSON files,
but the CLI reads sessions from SQLite via Database. Rewrote to use
Database.use() with Drizzle inserts into SessionTable, MessageTable,
and PartTable — matching the pattern from the CLI's import command.
2026-02-23 18:05:26 +01:00
Igor Šćekić baefc0d536 feat(kilo-gateway): add POST /kilo/cloud/session/import endpoint
Imports a cloud session into local storage with fresh IDs (ses_, msg_,
prt_) to avoid collisions with the cloud session during sync. Passes
Storage and Instance deps from server.ts to the gateway routes.
2026-02-23 17:26:53 +01:00
Kevin van Dijk 58995d9591 Resolve merge conflicts 2026-02-23 16:11:57 +01:00
Kevin van Dijk 7ac4e68dc8 Resolve merge conflicts 2026-02-23 13:54:54 +01:00
adamelmore 9f4fc5b72a Revert "fix(app): terminal issues"
This reverts commit e70d2b27de.
2026-02-22 21:27:25 -06:00
Adam e70d2b27de fix(app): terminal issues 2026-02-22 06:17:59 -06:00
Ryan Vogel 7419ebc872 feat: add list sessions for all sessions (experimental) (#14038) 2026-02-20 08:45:12 -05:00
Mark IJbema 158f87f548 feat: add regenerate-different-message support 2026-02-19 16:26:10 +01:00
Mark IJbema a7cc035b0b feat: add commit message generation feature 2026-02-19 16:26:03 +01:00
Adam d07f09925f fix(app): terminal rework (#14217) 2026-02-19 06:35:14 -06:00
Adam de25703e9d fix(app): terminal cross-talk (#14184) 2026-02-18 13:56:05 -06:00