Commit Graph

4429 Commits

Author SHA1 Message Date
Remon Oldenbeuving bec08a85d0 Merge branch 'main' into fix/cli-opencode-branding-regression 2026-03-18 08:44:09 +01:00
Remon Oldenbeuving 4dc11e76b7 Update packages/opencode/src/cli/cmd/pr.ts
Co-authored-by: Joshua Lambert <25085430+lambertjosh@users.noreply.github.com>
2026-03-18 08:43:56 +01:00
Kirill Kalishev b9ddda1d34 Merge pull request #7137 from Kilo-Org/kirillk/model-picker
feat(vscode): improve model selector — Recommended group, standard styles, free badge, auto-scroll
2026-03-17 17:23:56 -04:00
Marian Alexandru Alecu c8698f6bfb Merge pull request #7083 from Kilo-Org/feat/process-diagnostics-status-dialog
feat: Reduce memory 6x by moving to tsgo for typechecks
2026-03-17 22:29:16 +02:00
Kirill Kalishev d49e5d394b Merge branch 'main' into kirillk/model-picker 2026-03-17 15:07:42 -04:00
Imanol Maiztegui 0adb514da4 Remove allow always button (#7159)
* feat: save permissions to config

* fix: preserve wildcard default in jsonc scalar promotion and skip dispose for permission saves

* fix: update CLI permission hint to reflect permanent persistence

* fix: avoid mutating input in mergeConfig permission normalization

* chore: update kilo-vscode visual regression baselines

* fix(vscode): remove Allow Always button from PermissionDock

* fix(kilo-vscode): removed unreachable onDecide option

* chore: update kilo-vscode visual regression baselines

* fix: scope patchJsonc scalar promotion to permission keys only

* fix: toConfig always uses object format to preserve existing granular rules

* fix: preserve metadata.rules order in saveAlwaysRules for correct precedence

* feat:show non-bash tool permissions on dropdown

* fix: include always patterns in saveAlwaysRules validation loop

* test(kilo-vscode): remove write mixed-decisions screenshot test for single-rule dropdown

* test: updated visual tests

* fix: formatting

* chore: update kilo-vscode visual regression baselines

* fix: use scalar format in toConfig for PermissionAction-only permissions

* fix: serialize scalar-only permissions as scalars for all patterns

* fix: skip non-wildcard patterns for scalar-only permissions in toConfig

* fix: promote doom_loop to PermissionRule for per-tool persistence

* fix: keep doom_loop as PermissionAction and skip non-wildcard scalar-only patterns in toConfig

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-17 18:44:04 +01:00
Kirill Kalishev 37323e30cd Merge branch 'main' into kirillk/model-picker 2026-03-17 13:34:55 -04:00
kirillk 4e628a8cc0 feat(vscode): propagate isFree from cloud API through CLI to extension
Add isFree field to the full model data pipeline: gateway schema,
ModelsDev.Model, Provider.Model, OpenAPI spec, and SDK types.
Remove cost-based isFree fallback in the extension model selector —
rely solely on the backend-provided value.
2026-03-17 13:33:58 -04:00
Mark IJbema ac0a3ae997 Merge pull request #7133 from Kilo-Org/mark/marketplace-full-implementation
feat(marketplace): add MCP servers and modes tabs
2026-03-17 17:37:23 +01:00
Remon Oldenbeuving 854f31c872 Apply suggestions from code review
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
2026-03-17 17:23:24 +01:00
kiloconnect[bot] a6e342c737 fix(cli): update mDNS runtime defaults from opencode.local to kilo.local
Address review feedback from @lambertjosh: the mdns.ts fallback was
updated but the actual CLI defaults in network.ts and config.ts still
advertised opencode.local. Update both so kilo serve --mdns uses the
correct hostname.
2026-03-17 16:20:22 +00:00
kiloconnect[bot] 22175843e2 fix(cli): use variable for binary name in pr.ts to minimize upstream diff
Address review feedback from @lambertjosh: keep the original
opencodeArgs/opencodeProcess variable names from upstream since they
are not user-facing. Introduce a 'bin' variable to change only the
spawned command, minimizing the diff and reducing merge conflicts.
2026-03-17 16:20:15 +00:00
Remon Oldenbeuving 6f5b28d39b Update packages/opencode/src/session/retry.ts 2026-03-17 17:15:38 +01:00
Remon Oldenbeuving 9fe6e7c6ae Apply suggestions from code review
Co-authored-by: kilo-code-bot[bot] <240665456+kilo-code-bot[bot]@users.noreply.github.com>
2026-03-17 17:15:23 +01:00
Alex Alecu 59667f9a57 fix(cli): use .cmd shim for local tsc on Windows 2026-03-17 18:07:19 +02:00
Marius d01a51dc7c feat(vscode): expose undo/redo in the UI with per-message revert button (#7186) 2026-03-17 15:42:21 +00:00
Mark IJbema 6d6e285bba fix(cli): reset global config lazy cache on /global/dispose so marketplace writes take effect 2026-03-17 16:41:17 +01:00
Alex Alecu 2e34e5b3eb fix(cli): race pipe drains against timeout so tsc hangs are killed 2026-03-17 17:40:46 +02:00
Imanol Maiztegui 28330ea765 Save permission rules to config (#7143)
* feat: save permissions to config

* fix: preserve wildcard default in jsonc scalar promotion and skip dispose for permission saves

* fix: update CLI permission hint to reflect permanent persistence

* fix: avoid mutating input in mergeConfig permission normalization

* chore: update kilo-vscode visual regression baselines

* chore: update kilo-vscode visual regression baselines

* fix: scope patchJsonc scalar promotion to permission keys only

* fix: toConfig always uses object format to preserve existing granular rules

* fix: preserve metadata.rules order in saveAlwaysRules for correct precedence

* fix: remove unnecessary dispose con config global update

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-17 15:59:52 +01:00
kilo-maintainer[bot] bea9eb6bf4 release: v7.0.49 2026-03-17 14:54:34 +00:00
kiloconnect[bot] 26fee8cbfc fix(cli): rename shadowed args variable in pr command to fix typecheck
The local `args` variable on line 99 shadowed the `handler(args)` parameter,
causing tsgo to report "used before declaration" errors at line 25. Renamed
to `flags` to avoid the conflict.
2026-03-17 12:44:13 +00:00
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
Mark IJbema f1d10f892f Merge pull request #7172 from Kilo-Org/mark/fix-global-config-dispose-all
fix(vscode): stop config update loop from flooding SSE and killing server
2026-03-17 13:32:56 +01:00
Catriel Müller a97515a986 Merge branch 'main' into catrielmuller/kilo-opencode-v1.2.20 2026-03-17 08:37:25 -03:00
Mark IJbema 13ff40c583 fix: don't dispose all instances on global config update
Config.updateGlobal() was calling Instance.disposeAll() on every config
change, which destroyed all session state, MCP connections, and in-flight
operations across every project. This meant that any config change (e.g.
removing a mode in VS Code) would effectively kill all running CLI
instances.

The global.reset() call already clears the config cache so consumers
will pick up the new config on their next read. The disposeAll() was
unnecessary overkill.
2026-03-17 12:21:50 +01:00
Catriel Müller f2d9599c3a fix: fix build and publish scripts 2026-03-17 08:00:58 -03:00
Catriel Müller a01e8e5bfb feat: merge opencode v1.2.19 2026-03-17 07:46:46 -03:00
Catriel Müller a0aef61031 feat: merge opencode v1.2.18 2026-03-17 07:45:49 -03:00
Catriel Müller c0a3b2f325 fix: fix sdk generation // vscode test 2026-03-17 07:27:25 -03:00
Catriel Müller c48a80bf22 refactor: add kilo markers 2026-03-17 07:27:25 -03:00
Catriel Müller 96de074e4e fix: fix publish 2026-03-17 07:27:25 -03:00
Catriel Müller 7dbe255376 fix: fix build and publish scripts 2026-03-17 07:27:25 -03:00
Catriel Müller b13b701310 feat: merge opencode v1.2.18 2026-03-17 07:27:22 -03:00
kilo-maintainer[bot] 18c282d34c release: v7.0.48 2026-03-17 10:02:59 +00:00
Alex Alecu 573680446e publish bus event after TsClient diagnostics 2026-03-17 11:26:04 +02:00
Alex Alecu bf5b827f2f add timeout to TsClient diagnostic wait 2026-03-17 11:26:04 +02:00
Alex Alecu be5709066f kill stuck tsgo process after timeout 2026-03-17 11:26:04 +02:00
Mark IJbema c766f23fe2 Merge pull request #7161 from Kilo-Org/fix/disable-external-proxy
fix(cli): disable external proxy to app.opencode.ai
2026-03-17 10:20:51 +01:00
DhruvBhatia0 cd26320f62 feat: add WarpGrep AI-powered codebase search tool (#6685)
* feat: add WarpGrep AI-powered codebase search tool

Add WarpGrep integration as a new tool for intelligent multi-step
codebase search. WarpGrep delegates search to Morph's RL-trained
search agent, which runs parallel tool calls across multiple turns
and returns only relevant code spans.

- Add WarpGrep core client with multi-turn API loop, local tool
  executors (ripgrep, file read, directory list), and XML parsing
- Add tool definition gated behind KILO_ENABLE_WARPGREP flag
- Register tool in registry with feature flag gating
- Add warpgrep permission to orchestrator, ask, and explore agents
- Conditionally enhance explore agent prompt when WarpGrep available
- Add unit tests for parsing, file ops, and tool registration

* fix: align warpgrep with Morph XML protocol

* chore: drop warpgrep test changes from branch

* chore: remove warpgrep test files from branch

* refactor: replace custom WarpGrep implementation with @morphllm/morphsdk

- Delete 396-line custom warpgrep.ts, replace with SDK's WarpGrepClient
- Only check MORPH_API_KEY (drop WARPGREP_API_KEY)
- Route through Kilo proxy during free period when no API key is set
- Add actionable error message for when free period ends
- Grep for FREE_PERIOD_TODO to find what to change post-free-period

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: rename warpgrep to codebase_search, add error toast for 429/402

- Rename tool from warpgrep to codebase_search throughout
- Switch proxy URL to /api/gateway
- Detect auth/rate-limit errors (401/402/429) and show actionable
  fallback message telling users to set MORPH_API_KEY
- Fire a TUI toast notification on auth/rate-limit errors so users
  see a visible popup, not just hidden tool output
- Wire up GlobalBus "global.event" in TUI thread so Bus events from
  tools can reach the TUI event system

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* build: bump @morphllm/morphsdk to 0.2.141

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: use Bus.publish for toast, revert global.event subscription

Address PR review: emit toast via Bus.publish(TuiEvent.ToastShow)
instead of GlobalBus.emit() so it works in both direct-RPC and
server-backed TUI modes. Revert the global.event subscription in
createEventSource since it's no longer needed and caused double
event delivery.

Also update codebase_search tool description to clarify natural
language input.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat: add codebase search toggle to experimental settings

Replace KILO_ENABLE_WARPGREP env var with a UI toggle in the
Experimental settings tab. The tool is now gated by the
experimental.codebase_search config field, accessible from both
VSCode settings and TUI config file.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Update packages/opencode/src/tool/warpgrep.ts

Co-authored-by: Marius <marius@kilocode.ai>

* feat: limit codebase_search output to prevent context bloat

When search results exceed 45k chars (~15k tokens), degrade to showing
file paths and line ranges instead of full content. Also bumps
@morphllm/morphsdk from 0.2.129 to 0.2.147.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* build: bump @morphllm/morphsdk to 0.2.148

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: format codebaseSearch i18n strings to respect prettier line width

* fix: only advertise codebase_search in explore prompt when feature flag is enabled

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Christiaan Arnoldus <christiaan.arnoldus@outlook.com>
Co-authored-by: Marius <marius@kilocode.ai>
2026-03-17 09:06:15 +00:00
Marian Alexandru Alecu 12ef3336ef Merge branch 'main' into feat/process-diagnostics-status-dialog 2026-03-17 10:58:28 +02: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
Catriel Müller 36210fa6d1 resolve merge conflicts 2026-03-16 20:33:36 -03:00
Catriel Müller e6b29e3ead feat: merge opencode v1.2.19 2026-03-16 19:37:22 -03:00
Catriel Müller 223ee3d6f8 fix: fix sdk generation // vscode test 2026-03-16 18:04:28 -03:00
Catriel Müller fb9d9775df refactor: add kilo markers 2026-03-16 15:30:13 -03:00
Catriel Müller b9504c68ca fix: fix publish 2026-03-16 15:29:21 -03:00
Catriel Müller 56a93fbc62 fix: fix build and publish scripts 2026-03-16 15:21:16 -03:00
Catriel Müller 656db495d5 feat: merge opencode v1.2.18 2026-03-16 15:03:07 -03: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