From 6d331a726fb39b46ef7bd9d29218daec7c99dced Mon Sep 17 00:00:00 2001 From: Johnny Eric Amancio Date: Fri, 7 Aug 2026 15:28:07 +0200 Subject: [PATCH] fix(core): address round 3 review findings for upstream merge --- .changeset/opencode-v1-18-1-to-v1-18-13.md | 2 +- packages/kilo-vscode/src/agent-manager/GitOps.ts | 8 ++++++++ packages/opencode/src/kilocode/kilo-commands.tsx | 8 +++++--- packages/opencode/src/kilocode/plugins/sidebar-footer.tsx | 4 +++- packages/opencode/src/session/session.ts | 1 + packages/ui/src/context/marked-code-span.test.ts | 1 + packages/ui/src/context/marked-code-span.ts | 1 + packages/ui/src/i18n/az.ts | 2 +- packages/ui/src/i18n/fi.ts | 2 +- packages/ui/src/i18n/hi.ts | 2 +- packages/ui/src/i18n/id.ts | 2 +- packages/ui/src/i18n/pa.ts | 2 +- packages/ui/src/i18n/sv.ts | 2 +- packages/ui/src/i18n/ur.ts | 2 +- packages/ui/src/i18n/vi.ts | 2 +- 15 files changed, 28 insertions(+), 13 deletions(-) diff --git a/.changeset/opencode-v1-18-1-to-v1-18-13.md b/.changeset/opencode-v1-18-1-to-v1-18-13.md index c150afdcaa4..8c764a89da7 100644 --- a/.changeset/opencode-v1-18-1-to-v1-18-13.md +++ b/.changeset/opencode-v1-18-1-to-v1-18-13.md @@ -3,4 +3,4 @@ "kilo-code": patch --- -Adopt OpenCode v1.18.1 through v1.18.13 improvements, including model compatibility, MCP reliability, and TUI enhancements. +Adopt upstream improvements from v1.18.1 through v1.18.13, including model compatibility, MCP reliability, and TUI enhancements. diff --git a/packages/kilo-vscode/src/agent-manager/GitOps.ts b/packages/kilo-vscode/src/agent-manager/GitOps.ts index d33799e0c06..50a9e32a55d 100644 --- a/packages/kilo-vscode/src/agent-manager/GitOps.ts +++ b/packages/kilo-vscode/src/agent-manager/GitOps.ts @@ -82,6 +82,14 @@ export function nonInteractiveEnv(): NodeJS.ProcessEnv { if (!process.env.GIT_SSH_COMMAND) { env.GIT_SSH_COMMAND = KILO_NON_INTERACTIVE_SSH_COMMAND } + delete env.GIT_CONFIG_COUNT + delete env.SSH_ASKPASS + delete env.GIT_ASKPASS + for (const key of Object.keys(env)) { + if (key.startsWith("GIT_CONFIG_KEY_") || key.startsWith("GIT_CONFIG_VALUE_")) { + delete env[key] + } + } return env } diff --git a/packages/opencode/src/kilocode/kilo-commands.tsx b/packages/opencode/src/kilocode/kilo-commands.tsx index 5ad85cf9747..1fffb13699f 100644 --- a/packages/opencode/src/kilocode/kilo-commands.tsx +++ b/packages/opencode/src/kilocode/kilo-commands.tsx @@ -139,7 +139,7 @@ export function registerKiloCommands(useSDK: () => UseSDK) { hidden: !isKiloConnected(), run: async () => { try { - if (sync.data.globalConfig.privacy_mode === true) { + if (sync.data.config.privacy_mode === true || sync.data.globalConfig.privacy_mode === true) { const confirmed = await DialogConfirm.show( dialog, "Privacy Mode Enabled", @@ -191,13 +191,15 @@ export function registerKiloCommands(useSDK: () => UseSDK) { { name: "kilo.privacy", get title() { - return sync.data.globalConfig.privacy_mode === true ? "Disable privacy mode" : "Enable privacy mode" + const active = sync.data.config.privacy_mode === true || sync.data.globalConfig.privacy_mode === true + return active ? "Disable privacy mode" : "Enable privacy mode" }, desc: "Blur PII (balance, email, etc.) and confirm before showing profile", category: "Kilo", slashName: "privacy", run: async () => { - const next = sync.data.globalConfig.privacy_mode !== true + const active = sync.data.config.privacy_mode === true || sync.data.globalConfig.privacy_mode === true + const next = !active const response = await sdk.client.config.overlayUpdate({ scope: "global", set: { privacy_mode: next }, diff --git a/packages/opencode/src/kilocode/plugins/sidebar-footer.tsx b/packages/opencode/src/kilocode/plugins/sidebar-footer.tsx index 994a1b47a11..72d7604637e 100644 --- a/packages/opencode/src/kilocode/plugins/sidebar-footer.tsx +++ b/packages/opencode/src/kilocode/plugins/sidebar-footer.tsx @@ -100,7 +100,9 @@ function View(props: { api: TuiPluginApi }) { name: list.at(-1) ?? "", } }) - const privacyMode = createMemo(() => props.api.state.globalConfig.privacy_mode === true) + const privacyMode = createMemo( + () => props.api.state.config.privacy_mode === true || props.api.state.globalConfig.privacy_mode === true, + ) const balanceText = createMemo(() => (privacyMode() ? REDACTED_BALANCE : null)) const mutedColor = createMemo(() => (privacyMode() ? theme().textMuted : tone())) const refresh = () => { diff --git a/packages/opencode/src/session/session.ts b/packages/opencode/src/session/session.ts index 4ad5fb566af..d27e7abcc2c 100644 --- a/packages/opencode/src/session/session.ts +++ b/packages/opencode/src/session/session.ts @@ -870,6 +870,7 @@ export const layer: Layer.Layer< model, // kilocode_change - preserve the model + variant active at the fork point sourceID: input.sessionID, // kilocode_change - forks preserve initialized confinement sandboxFallback, // kilocode_change - seed confinement from the source session's original directory + platform: KiloSession.resolvePlatform(original.id), // kilocode_change - inherit platform telemetry attribution }) const idMap = new Map() diff --git a/packages/ui/src/context/marked-code-span.test.ts b/packages/ui/src/context/marked-code-span.test.ts index ba67b2f6788..c2dde680bb5 100644 --- a/packages/ui/src/context/marked-code-span.test.ts +++ b/packages/ui/src/context/marked-code-span.test.ts @@ -1,3 +1,4 @@ +// kilocode_change - new file import { expect, test } from "bun:test" import { Marked } from "marked" import { markedCodeSpanBoundary } from "./marked-code-span" diff --git a/packages/ui/src/context/marked-code-span.ts b/packages/ui/src/context/marked-code-span.ts index 895935c3116..9c30813f986 100644 --- a/packages/ui/src/context/marked-code-span.ts +++ b/packages/ui/src/context/marked-code-span.ts @@ -1,3 +1,4 @@ +// kilocode_change - new file import type { MarkedExtension } from "marked" // Keep adjacent tilde and backtick runs separate until markedjs/marked#4011 is released. diff --git a/packages/ui/src/i18n/az.ts b/packages/ui/src/i18n/az.ts index 709b1267a2a..65bf6016b0c 100644 --- a/packages/ui/src/i18n/az.ts +++ b/packages/ui/src/i18n/az.ts @@ -69,7 +69,7 @@ export const dict: Record = { "ui.sessionTurn.error.addCredits": "Kredit əlavə et", "dialog.usageExceeded.freeTier.title": "Pulsuz limitə çatdınız", "dialog.usageExceeded.freeTier.description": - "Ayda $5-dan başlayan Kilo Go abunəliyi ilə ən yaxşı açıq mənbəli modellərə etibarlı giriş əldə edin.", // kilocode_change + "Ayda $5-dan başlayan Kilo Go abunəliyi ilə ən yaxşı açıq mənbəli modellərə etibarlı giriş əldə edin.", "dialog.usageExceeded.freeTier.actionLabel": "Abunə ol", "dialog.usageExceeded.accountRateLimit.title": "Go limitinə çatdınız", "dialog.usageExceeded.accountRateLimit.description": diff --git a/packages/ui/src/i18n/fi.ts b/packages/ui/src/i18n/fi.ts index abd8fe6f144..35bf61fdefa 100644 --- a/packages/ui/src/i18n/fi.ts +++ b/packages/ui/src/i18n/fi.ts @@ -68,7 +68,7 @@ export const dict: Record = { "ui.sessionTurn.error.addCredits": "Lisää krediittejä", "dialog.usageExceeded.freeTier.title": "Ilmainen raja saavutettu", "dialog.usageExceeded.freeTier.description": - "Tilaa Kilo Go saadaksesi luotettavan pääsyn parhaisiin avoimen lähdekoodin malleihin alkaen 5 dollarista kuukaudessa.", // kilocode_change + "Tilaa Kilo Go saadaksesi luotettavan pääsyn parhaisiin avoimen lähdekoodin malleihin alkaen 5 dollarista kuukaudessa.", "dialog.usageExceeded.freeTier.actionLabel": "Tilaa", "dialog.usageExceeded.accountRateLimit.title": "Go-raja saavutettu", "dialog.usageExceeded.accountRateLimit.description": diff --git a/packages/ui/src/i18n/hi.ts b/packages/ui/src/i18n/hi.ts index f910fd9be98..94edecffbf3 100644 --- a/packages/ui/src/i18n/hi.ts +++ b/packages/ui/src/i18n/hi.ts @@ -70,7 +70,7 @@ export const dict: Record = { "ui.sessionTurn.error.addCredits": "क्रेडिट जोड़ें", "dialog.usageExceeded.freeTier.title": "मुफ़्त सीमा पूरी हो गई", "dialog.usageExceeded.freeTier.description": - "$5/month से शुरू होने वाली सदस्यता के साथ सर्वोत्तम ओपन-सोर्स मॉडलों तक विश्वसनीय पहुँच के लिए Kilo Go की सदस्यता लें।", // kilocode_change + "$5/month से शुरू होने वाली सदस्यता के साथ सर्वोत्तम ओपन-सोर्स मॉडलों तक विश्वसनीय पहुँच के लिए Kilo Go की सदस्यता लें।", "dialog.usageExceeded.freeTier.actionLabel": "सदस्यता लें", "dialog.usageExceeded.accountRateLimit.title": "Go सीमा पूरी हो गई", "dialog.usageExceeded.accountRateLimit.description": diff --git a/packages/ui/src/i18n/id.ts b/packages/ui/src/i18n/id.ts index c5a9a5a530c..7ea583106b6 100644 --- a/packages/ui/src/i18n/id.ts +++ b/packages/ui/src/i18n/id.ts @@ -74,7 +74,7 @@ export const dict: Record = { "dialog.usageExceeded.freeTier.title": "Batas gratis tercapai", "dialog.usageExceeded.freeTier.description": - "Berlangganan Kilo Go untuk akses andal ke model sumber terbuka terbaik, mulai dari $5/bulan.", // kilocode_change + "Berlangganan Kilo Go untuk akses andal ke model sumber terbuka terbaik, mulai dari $5/bulan.", "dialog.usageExceeded.freeTier.actionLabel": "Berlangganan", "dialog.usageExceeded.accountRateLimit.title": "Batas Go tercapai", "dialog.usageExceeded.accountRateLimit.description": diff --git a/packages/ui/src/i18n/pa.ts b/packages/ui/src/i18n/pa.ts index 1356533332b..874abacb04c 100644 --- a/packages/ui/src/i18n/pa.ts +++ b/packages/ui/src/i18n/pa.ts @@ -70,7 +70,7 @@ export const dict: Record = { "ui.sessionTurn.error.addCredits": "کریڈٹ شامل کرو", "dialog.usageExceeded.freeTier.title": "مفت حد پوری ہو گئی", "dialog.usageExceeded.freeTier.description": - "$5/مہینہ توں شروع ہون والے بہترین اوپن سورس ماڈلاں تک بھروسے جوگی رسائی لئی Kilo Go دی رکنیت لوو۔", // kilocode_change + "$5/مہینہ توں شروع ہون والے بہترین اوپن سورس ماڈلاں تک بھروسے جوگی رسائی لئی Kilo Go دی رکنیت لوو۔", "dialog.usageExceeded.freeTier.actionLabel": "سبسکرائب کرو", "dialog.usageExceeded.accountRateLimit.title": "Go دی حد پوری ہو گئی", "dialog.usageExceeded.accountRateLimit.description": diff --git a/packages/ui/src/i18n/sv.ts b/packages/ui/src/i18n/sv.ts index 9fc827d3ad5..bbff73961cc 100644 --- a/packages/ui/src/i18n/sv.ts +++ b/packages/ui/src/i18n/sv.ts @@ -69,7 +69,7 @@ export const dict: Record = { "ui.sessionTurn.error.addCredits": "Lägg till krediter", "dialog.usageExceeded.freeTier.title": "Gratisgränsen nådd", "dialog.usageExceeded.freeTier.description": - "Prenumerera på Kilo Go för pålitlig tillgång till de bästa modellerna med öppen källkod, från 5 USD/månad.", // kilocode_change + "Prenumerera på Kilo Go för pålitlig tillgång till de bästa modellerna med öppen källkod, från 5 USD/månad.", "dialog.usageExceeded.freeTier.actionLabel": "Prenumerera", "dialog.usageExceeded.accountRateLimit.title": "Gränsen för Go har nåtts", "dialog.usageExceeded.accountRateLimit.description": diff --git a/packages/ui/src/i18n/ur.ts b/packages/ui/src/i18n/ur.ts index f3acdbc78e4..0019290f896 100644 --- a/packages/ui/src/i18n/ur.ts +++ b/packages/ui/src/i18n/ur.ts @@ -70,7 +70,7 @@ export const dict: Record = { "ui.sessionTurn.error.addCredits": "کریڈٹ شامل کریں۔", "dialog.usageExceeded.freeTier.title": "مفت استعمال کی حد پوری ہو گئی", "dialog.usageExceeded.freeTier.description": - "$5/ماہ سے شروع ہونے والے بہترین اوپن سورس ماڈلز تک قابل اعتماد رسائی کے لیے Kilo Go کو سبسکرائب کریں۔", // kilocode_change + "$5/ماہ سے شروع ہونے والے بہترین اوپن سورس ماڈلز تک قابل اعتماد رسائی کے لیے Kilo Go کو سبسکرائب کریں۔", "dialog.usageExceeded.freeTier.actionLabel": "سبسکرائب کریں۔", "dialog.usageExceeded.accountRateLimit.title": "Go حد تک پہنچ گئی۔", "dialog.usageExceeded.accountRateLimit.description": diff --git a/packages/ui/src/i18n/vi.ts b/packages/ui/src/i18n/vi.ts index dff192e13ef..7019868f60a 100644 --- a/packages/ui/src/i18n/vi.ts +++ b/packages/ui/src/i18n/vi.ts @@ -69,7 +69,7 @@ export const dict: Record = { "ui.sessionTurn.error.addCredits": "Thêm số dư", "dialog.usageExceeded.freeTier.title": "Đã đạt đến giới hạn miễn phí", "dialog.usageExceeded.freeTier.description": - "Đăng ký Kilo Go để có quyền truy cập đáng tin cậy vào các mô hình nguồn mở tốt nhất, bắt đầu từ $5/tháng.", // kilocode_change + "Đăng ký Kilo Go để có quyền truy cập đáng tin cậy vào các mô hình nguồn mở tốt nhất, bắt đầu từ $5/tháng.", "dialog.usageExceeded.freeTier.actionLabel": "Đăng ký", "dialog.usageExceeded.accountRateLimit.title": "Đã đạt giới hạn Go", "dialog.usageExceeded.accountRateLimit.description":