Skip to content
This repository was archived by the owner on Feb 25, 2026. It is now read-only.

feat: merge upstream opencode v1.1.58#323

Merged
marius-kilocode merged 13 commits intodevfrom
marius-kilocode/kilo-opencode-v1.1.58
Feb 16, 2026
Merged

feat: merge upstream opencode v1.1.58#323
marius-kilocode merged 13 commits intodevfrom
marius-kilocode/kilo-opencode-v1.1.58

Conversation

@marius-kilocode
Copy link
Collaborator

@marius-kilocode marius-kilocode commented Feb 16, 2026

Summary

  • Merges upstream opencode v1.1.58 into Kilo
  • Upstream reverted WSL backend mode (#12914) — removed WSL code from desktop
  • Upstream switched getDisplayBackend/setDisplayBackend to use invoke() instead of commands.*
  • Various upstream fixes: terminal PTY buffer carryover, terminal resize, notifications on child sessions, dialog dismiss with ctrl+c, share link availability

Kilo-specific fixes during merge

  • Restored --provenance flag on npm publish commands
  • Fixed branding in homebrew formula (class name, homepage, binary URLs, bin.install, tap repo)
  • Fixed binary name in build.ts (opencodekilo) and user-agent string
  • Fixed __OPENCODE____KILO__ in desktop index.tsx
  • Fixed kilo-install.sh temp script name in cli.rs
  • Fixed server username to "kilo" in desktop sidecar spawn
  • Restored build.ts and publish.ts to dev versions (upstream had only branding reversions, no functional changes)
  • Restored bin entries in package.json (kilo, kilocode instead of opencode)
  • Fixed User-Agent test assertion (opencode/Kilo-Code/)
  • Reverted upstream's instance.dispose() + clearWorkspaceTerminals() in workspace reset flow — these frontend changes depended on backend changes that were silently dropped during merge (see note below)
  • Added kilocode_change markers on all Kilo-specific changes in shared files

Merge script improvements

  • Fixed empty pre-merge transforms crash (script/upstream/utils/git.ts): git commit now uses .nothrow() and returns a boolean instead of throwing when there's nothing to commit. The caller in merge.ts handles the empty case gracefully.
  • Extended __OPENCODE____KILO__ transform (script/upstream/transforms/transform-tauri.ts): Added .tsx to the fileTypes list so the window global replacement also applies to TypeScript React files (previously only .rs).

Known issue: silent backend change loss

The pre-merge transform script converts upstream branding (opencodekilo) before merging. When transformed upstream files become identical to our files, git auto-resolves as "no change" — keeping ours. This means real code changes made alongside branding changes in the same files get silently dropped. In this merge, ~9600 lines of upstream changes in packages/opencode/src/ were lost this way. The instance.dispose() revert above was needed because the frontend picked up changes that depend on those dropped backend changes.

@marius-kilocode marius-kilocode force-pushed the marius-kilocode/kilo-opencode-v1.1.58 branch 2 times, most recently from b307937 to 5e2c380 Compare February 16, 2026 09:19
@blacksmith-sh

This comment has been minimized.

@marius-kilocode marius-kilocode force-pushed the marius-kilocode/kilo-opencode-v1.1.58 branch 2 times, most recently from b7a88db to fa4e579 Compare February 16, 2026 09:44
@kilo-code-bot
Copy link
Contributor

kilo-code-bot bot commented Feb 16, 2026

Code Review Summary

Status: 1 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 1
SUGGESTION 0
Issue Details (click to expand)

WARNING

File Line Issue
packages/desktop/src/index.tsx 71 WSL integration removal (path conversions + settings UI) looks like a behavior change on Windows; confirm intended and covered in release notes
Other Observations (not in diff)

Issues found in unchanged code that cannot receive inline comments:

File Line Issue
packages/kilo-vscode/webview-ui/src/i18n/en.ts 134 VS Code webview i18n still uses https://opencode.ai/zen while app i18n now uses opencode.ai/zen; verify desired consistency
Files Reviewed (40 files)

@marius-kilocode marius-kilocode force-pushed the marius-kilocode/kilo-opencode-v1.1.58 branch from fa4e579 to ca61733 Compare February 16, 2026 10:01

const lookup = (directory: string, sessionID?: string) => {
if (!sessionID) return Promise.resolve(undefined)
const [syncStore] = globalSync.child(directory, { bootstrap: false })
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: lookup() can throw synchronously before returning a Promise

globalSync.child(...) and Binary.search(...) are executed before any .catch(...). If either can throw (e.g. store not bootstrapped / unexpected data), it can break the event listener and silently stop further notifications. Consider wrapping the body in Promise.resolve().then(() => { ... }) and keeping the existing .catch(() => undefined) to ensure failures stay contained.


useKeyboard((evt) => {
if (evt.name === "escape" && store.stack.length > 0) {
if ((evt.name === "escape" || (evt.ctrl && evt.name === "c")) && store.stack.length > 0) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: Ctrl+C now closes dialogs, which can conflict with copy/interrupt expectations

This handler closes the top dialog on (evt.ctrl && evt.name === "c") without checking whether the user is trying to copy selected text (or whether a focused control wants Ctrl+C). Consider gating this to cases where there is no active selection (e.g. via the renderer selection API) or limiting it to specific dialogs so Ctrl+C keeps its conventional behavior.

"With a single API key you'll get access to models such as Claude, GPT, Gemini, GLM and more.",
"provider.connect.opencodeZen.visit.prefix": "Visit ",
"provider.connect.opencodeZen.visit.link": "https://opencode.ai/zen",
"provider.connect.opencodeZen.visit.link": "opencode.ai/zen",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question(non-blocking): should we look to change these to point to kilo.ai/gateway at some point?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fully removing zen is not our interest. Only where it interfers with kilo gateway. So let's keep it to reduce conflicts for now. I think here we are good for now.

@marius-kilocode marius-kilocode enabled auto-merge (squash) February 16, 2026 13:45
@marius-kilocode marius-kilocode merged commit 50a6238 into dev Feb 16, 2026
7 checks passed
@marius-kilocode marius-kilocode deleted the marius-kilocode/kilo-opencode-v1.1.58 branch February 16, 2026 13:50
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants