From 9f45df567e1b77090d1f28925e42eecb16ae566c Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 17 Sep 2026 10:49:48 +0200 Subject: [PATCH 01/11] fix: explain sandbox escalation prompts accurately --- .changeset/sandbox-escalation-prompt-copy.md | 6 ++++++ .../getting-started/settings/sandboxing.md | 20 +++++++++++++++++++ packages/kilo-vscode/package.json | 2 +- .../src/commands/toggle-auto-approve.ts | 2 +- .../tests/unit/auto-approve.test.ts | 2 +- .../src/components/chat/PermissionDock.tsx | 5 +++++ .../kilo-vscode/webview-ui/src/i18n/ar.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/br.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/bs.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/da.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/de.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/en.ts | 13 ++++++++---- .../kilo-vscode/webview-ui/src/i18n/es.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/fa.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/fr.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/it.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/ja.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/ko.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/nl.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/no.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/pl.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/ru.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/th.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/tr.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/uk.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/zh.ts | 2 ++ .../kilo-vscode/webview-ui/src/i18n/zht.ts | 2 ++ packages/opencode/src/acp/permission.ts | 2 +- .../src/cli/cmd/run/permission.shared.ts | 13 ++++++++---- .../test/cli/run/permission.shared.test.ts | 9 +++++++-- 30 files changed, 100 insertions(+), 14 deletions(-) create mode 100644 .changeset/sandbox-escalation-prompt-copy.md diff --git a/.changeset/sandbox-escalation-prompt-copy.md b/.changeset/sandbox-escalation-prompt-copy.md new file mode 100644 index 000000000000..40e168729cd5 --- /dev/null +++ b/.changeset/sandbox-escalation-prompt-copy.md @@ -0,0 +1,6 @@ +--- +"@kilocode/cli": patch +"kilo-code": patch +--- + +Explain sandbox escalation prompts accurately: approval runs the whole command outside the sandbox for that command only, and Bash allow rules and auto-approve never cover it. diff --git a/packages/kilo-docs/pages/getting-started/settings/sandboxing.md b/packages/kilo-docs/pages/getting-started/settings/sandboxing.md index 2aba4c0bab6a..4285a4c30544 100644 --- a/packages/kilo-docs/pages/getting-started/settings/sandboxing.md +++ b/packages/kilo-docs/pages/getting-started/settings/sandboxing.md @@ -157,6 +157,26 @@ For HTTP, the proxy checks the requested DNS host and port. For HTTPS `CONNECT`, A configured destination is an egress route, not tenant, organization, repository, HTTP-origin, path, action, content, or data-loss-prevention isolation. The allowed service can receive, route, or store readable data and inherited credentials under its own policies. After an HTTPS tunnel passes the SNI check, Kilo cannot inspect encrypted requests, and the service may honor an alternate HTTP `Host` value within that connection. Allowing GitHub therefore grants the operations permitted by the active token, not access to only one organization or repository. HTTP and HTTPS are supported, including HTTPS Git remotes. SSH, arbitrary TCP, UDP, QUIC, SOCKS, CIDR ranges, and wildcard hosts remain blocked. {% /callout %} +## Leaving the sandbox + +Some commands must write outside the sandbox boundary. Kilo then shows an escalation prompt and waits for an explicit approval before it runs the command. + +### Git and linked worktrees + +`.git` is always read-only inside the sandbox. A mutating git command, such as `git commit`, `git checkout`, or `git worktree add`, must write to `.git` metadata. In a linked worktree, the `.git` file points into the parent repository's `.git` directory. That directory is outside the worktree, so the write is outside the sandbox write boundary. Read-only git commands, such as `git status` or `git log`, do not trigger the prompt. + +| Detail | Behavior | +|---|---| +| Trigger | A mutating git command while the sandbox is on | +| Scope | The whole command and its child processes run without filesystem or network restrictions | +| Duration | One approval covers one command only | +| Bash allow rules | Do not approve the escalation prompt | +| Auto-approve | Does not approve the escalation prompt | + +Approving the prompt runs the entire shell command outside the sandbox. Filesystem writes and network access are unrestricted for that command and its child processes. The approval is one-shot and applies to that command only. Bash allow rules and auto-approve never cover the escalation prompt, so Kilo always asks for an explicit reply. + +GitHub access is a network question, not an escalation question. The GitHub CLI (`gh`) and HTTPS Git need `github.com:443` and `api.github.com:443` in `sandbox.allowed_hosts`. The escalation prompt does not grant network access by itself. See [Network restrictions](#network-restrictions). + ## Session behavior The config setting supplies the initial default for new sessions that do not have a saved preference. Use the lock button in the VS Code prompt or `/sandbox` in the CLI to change the current session. Your latest choice is saved as the default for future sessions in that project, takes precedence over the config default, and persists across restarts. diff --git a/packages/kilo-vscode/package.json b/packages/kilo-vscode/package.json index c44864af7ab7..dba9f67b9544 100644 --- a/packages/kilo-vscode/package.json +++ b/packages/kilo-vscode/package.json @@ -1112,7 +1112,7 @@ "kilo-code.new.autoApprove.enabled": { "type": "boolean", "default": false, - "description": "Start Kilo Code with the main auto-approve toggle enabled. When enabled, permission prompts are approved automatically." + "description": "Start Kilo Code with the main auto-approve toggle enabled. When enabled, permission prompts are approved automatically. Sandbox escalation prompts are always excluded." }, "kilo-code.new.maxCost": { "type": "number", diff --git a/packages/kilo-vscode/src/commands/toggle-auto-approve.ts b/packages/kilo-vscode/src/commands/toggle-auto-approve.ts index 32e12bd610be..a45fae5e47ef 100644 --- a/packages/kilo-vscode/src/commands/toggle-auto-approve.ts +++ b/packages/kilo-vscode/src/commands/toggle-auto-approve.ts @@ -63,7 +63,7 @@ export function registerToggleAutoApprove( return active } - vscode.window.showInformationMessage("Auto-approve enabled") + vscode.window.showInformationMessage("Auto-approve enabled. Sandbox escalation prompts are excluded.") // Drain any already-pending permission requests across all tracked directories const client = tryGetClient(connectionService) if (!client) return active diff --git a/packages/kilo-vscode/tests/unit/auto-approve.test.ts b/packages/kilo-vscode/tests/unit/auto-approve.test.ts index 2f66b71c719c..62717eb84aac 100644 --- a/packages/kilo-vscode/tests/unit/auto-approve.test.ts +++ b/packages/kilo-vscode/tests/unit/auto-approve.test.ts @@ -143,7 +143,7 @@ describe("registerToggleAutoApprove", () => { expect(ctrl.active()).toBe(true) expect(changes).toEqual([false, true]) expect(env.updates).toEqual([{ key: "enabled", value: true, target: vscode.ConfigurationTarget.Workspace }]) - expect(env.messages).toContain("Auto-approve enabled") + expect(env.messages).toContain("Auto-approve enabled. Sandbox escalation prompts are excluded.") }) it("uses the SSE directory for worktree permissions before session mappings are available", async () => { diff --git a/packages/kilo-vscode/webview-ui/src/components/chat/PermissionDock.tsx b/packages/kilo-vscode/webview-ui/src/components/chat/PermissionDock.tsx index 3b5a91c6c351..7b3458cdc95d 100644 --- a/packages/kilo-vscode/webview-ui/src/components/chat/PermissionDock.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/chat/PermissionDock.tsx @@ -352,6 +352,11 @@ export const PermissionDock: Component<{ )} + +
+ {language.t("notification.permission.descriptionSandboxEscalation")} +
+
{(cmd) => } diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts index 09a2d494233a..08b0e3bd776c 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts @@ -263,6 +263,8 @@ export const dict = { "notification.permission.titleSubagent": "مطلوب إذن (وكيل فرعي)", "notification.permission.titleSkillShell": "هل تريد تشغيل أوامر الصدفة من المهارة «{{skill}}»؟", "notification.permission.titleSandboxEscalation": "السماح بعملية Git خارج البيئة المعزولة؟", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "إدارة قواعد الموافقة التلقائية", "ui.permission.reject": "رفض", "ui.permission.feedbackPlaceholder": "أخبر Kilo بما يجب فعله بشكل مختلف", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/br.ts b/packages/kilo-vscode/webview-ui/src/i18n/br.ts index a4a9dc3deb82..b46db0ee81ad 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/br.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/br.ts @@ -273,6 +273,8 @@ export const dict = { "notification.permission.titleSubagent": "Permissão necessária (subagente)", "notification.permission.titleSkillShell": "Executar comandos de shell da skill “{{skill}}”?", "notification.permission.titleSandboxEscalation": "Permitir operação do Git fora da sandbox?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "Gerenciar regras de aprovação automática", "ui.permission.reject": "Rejeitar", "ui.permission.feedbackPlaceholder": "Diga ao Kilo o que fazer de forma diferente", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts index 2c460871ebdf..b4003b4d790b 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts @@ -271,6 +271,8 @@ export const dict = { "notification.permission.titleSubagent": "Potrebna dozvola (podagent)", "notification.permission.titleSkillShell": "Pokrenuti shell komande iz vještine „{{skill}}”?", "notification.permission.titleSandboxEscalation": "Dozvoliti Git operaciju izvan sandboxa?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "Upravljanje pravilima automatskog odobravanja", "ui.permission.reject": "Odbij", "ui.permission.feedbackPlaceholder": "Recite Kilu šta da uradi drugačije", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/da.ts b/packages/kilo-vscode/webview-ui/src/i18n/da.ts index 907b2be6efb9..38ab3b452fac 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/da.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/da.ts @@ -270,6 +270,8 @@ export const dict = { "notification.permission.titleSubagent": "Tilladelse påkrævet (underagent)", "notification.permission.titleSkillShell": "Kør shell-kommandoer fra færdigheden „{{skill}}“?", "notification.permission.titleSandboxEscalation": "Tillad Git-handling uden for sandkassen?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "Administrer regler for automatisk godkendelse", "ui.permission.reject": "Afvis", "ui.permission.feedbackPlaceholder": "Fortæl Kilo, hvad den skal gøre anderledes", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/de.ts b/packages/kilo-vscode/webview-ui/src/i18n/de.ts index 517d5f0e36e2..509d9f947e52 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/de.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/de.ts @@ -278,6 +278,8 @@ export const dict = { "notification.permission.titleSubagent": "Berechtigung erforderlich (Subagent)", "notification.permission.titleSkillShell": "Shell-Befehle aus dem Skill „{{skill}}“ ausführen?", "notification.permission.titleSandboxEscalation": "Git-Vorgang außerhalb der Sandbox zulassen?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "Regeln für automatische Genehmigung verwalten", "ui.permission.reject": "Ablehnen", "ui.permission.feedbackPlaceholder": "Teile Kilo mit, was es anders machen soll", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/en.ts b/packages/kilo-vscode/webview-ui/src/i18n/en.ts index 2fe22c118df9..3f824153a1e7 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/en.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/en.ts @@ -202,8 +202,10 @@ export const dict = { "prompt.action.indexing": "Indexing settings", "prompt.action.autoApprove.enable": "Enable auto-approve", "prompt.action.autoApprove.disable": "Disable auto-approve", - "prompt.action.autoApprove.enabled": "Auto-approve is enabled. Permission prompts will be approved automatically.", - "prompt.action.autoApprove.disabled": "Auto-approve is disabled. Click to approve permission prompts automatically.", + "prompt.action.autoApprove.enabled": + "Auto-approve is enabled. Permission prompts will be approved automatically. Sandbox escalation prompts are always excluded.", + "prompt.action.autoApprove.disabled": + "Auto-approve is disabled. Click to approve permission prompts automatically. Sandbox escalation prompts are always excluded.", "prompt.action.sandbox.enable": "Enable sandbox", "prompt.action.sandbox.disable": "Disable sandbox", "prompt.action.sandbox.enabled": @@ -218,7 +220,8 @@ export const dict = { "prompt.action.sandbox.network.blocked": "Blocked", "prompt.action.sandbox.network.allowed": "Allowed", "prompt.action.sandbox.unrestricted": "Unrestricted", - "prompt.action.sandbox.description.enabled": "Writes are limited to the project and Kilo directories.", + "prompt.action.sandbox.description.enabled": + "Writes are limited to the project and Kilo directories. Permission rules and auto-approve apply inside the sandbox. Commands that must leave it always ask.", "prompt.action.sandbox.description.disabled": "Click to restrict filesystem writes and network access.", "prompt.action.sandbox.description.disabledNetworkAllowed": "Click to restrict filesystem writes. Network access remains allowed by your sandbox settings.", @@ -264,7 +267,9 @@ export const dict = { "notification.permission.title": "Permission required", "notification.permission.titleSubagent": "Permission required (subagent)", "notification.permission.titleSkillShell": 'Run shell commands from skill "{{skill}}"?', - "notification.permission.titleSandboxEscalation": "Allow Git operation outside the sandbox?", + "notification.permission.titleSandboxEscalation": "Run outside the sandbox?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "Manage Auto-Approve Rules", "ui.permission.reject": "Reject", "ui.permission.feedbackPlaceholder": "Tell Kilo what to do differently", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/es.ts b/packages/kilo-vscode/webview-ui/src/i18n/es.ts index 7e6c4c612c6b..eac1c29f95af 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/es.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/es.ts @@ -273,6 +273,8 @@ export const dict = { "notification.permission.titleSubagent": "Permiso requerido (subagente)", "notification.permission.titleSkillShell": "¿Ejecutar comandos de shell de la habilidad «{{skill}}»?", "notification.permission.titleSandboxEscalation": "¿Permitir la operación de Git fuera del entorno aislado?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "Gestionar reglas de aprobación automática", "ui.permission.reject": "Rechazar", "ui.permission.feedbackPlaceholder": "Dile a Kilo qué debe hacer de otra forma", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/fa.ts b/packages/kilo-vscode/webview-ui/src/i18n/fa.ts index d5ea3d13af77..a2d467c312b6 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/fa.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/fa.ts @@ -268,6 +268,8 @@ export const dict = { "notification.permission.titleSubagent": "مجوز مورد نیاز است (زیرعامل)", "notification.permission.titleSkillShell": "دستورهای شل از مهارت «{{skill}}» اجرا شود؟", "notification.permission.titleSandboxEscalation": "اجازه انجام عملیات Git خارج از sandbox داده شود؟", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "مدیریت قوانین تأیید خودکار", "ui.permission.reject": "رد", "ui.permission.feedbackPlaceholder": "به Kilo بگویید چه کاری را متفاوت انجام دهد", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts index ee819a24d7f1..58297d7b6ca9 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts @@ -273,6 +273,8 @@ export const dict = { "notification.permission.titleSubagent": "Permission requise (sous-agent)", "notification.permission.titleSkillShell": "Exécuter les commandes shell de la compétence «\u00a0{{skill}}\u00a0» ?", "notification.permission.titleSandboxEscalation": "Autoriser l’opération Git en dehors du bac à sable ?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "Gérer les règles d'approbation automatique", "ui.permission.reject": "Rejeter", "ui.permission.feedbackPlaceholder": "Dites à Kilo quoi faire différemment", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/it.ts b/packages/kilo-vscode/webview-ui/src/i18n/it.ts index dc4f2cde0512..01e80c341bd9 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/it.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/it.ts @@ -208,6 +208,8 @@ export const dict = { "notification.permission.titleSubagent": "Autorizzazione richiesta (sub-agent)", "notification.permission.titleSkillShell": "Eseguire i comandi shell della skill “{{skill}}”?", "notification.permission.titleSandboxEscalation": "Consentire l'operazione Git al di fuori della sandbox?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "Gestisci regole approvazione automatica", "ui.permission.reject": "Rifiuta", "ui.permission.feedbackPlaceholder": "Di' a Kilo cosa fare diversamente", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts index 2a6116d04a1e..a24727dfd5a1 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts @@ -270,6 +270,8 @@ export const dict = { "notification.permission.titleSubagent": "権限が必要です(サブエージェント)", "notification.permission.titleSkillShell": "スキル「{{skill}}」のシェルコマンドを実行しますか?", "notification.permission.titleSandboxEscalation": "サンドボックス外での Git 操作を許可しますか?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "自動承認ルールを管理", "ui.permission.reject": "拒否", "ui.permission.feedbackPlaceholder": "Kilo にどう変更してほしいか伝える", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts index f543d1621077..65c70c7a7cfe 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts @@ -271,6 +271,8 @@ export const dict = { "notification.permission.titleSubagent": "권한 필요 (서브에이전트)", "notification.permission.titleSkillShell": '스킬 "{{skill}}"의 셸 명령을 실행할까요?', "notification.permission.titleSandboxEscalation": "샌드박스 외부에서 Git 작업을 허용할까요?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "자동 승인 규칙 관리", "ui.permission.reject": "거부", "ui.permission.feedbackPlaceholder": "Kilo가 다르게 하길 원하는 내용을 알려주세요", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts index 10fdd3af9f1f..d4d465573976 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts @@ -273,6 +273,8 @@ export const dict = { "notification.permission.titleSubagent": "Toestemming vereist (subagent)", "notification.permission.titleSkillShell": "Shell-opdrachten uit vaardigheid “{{skill}}” uitvoeren?", "notification.permission.titleSandboxEscalation": "Git-bewerking buiten de sandbox toestaan?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "Beheer automatisch goedkeuren regels", "ui.permission.reject": "Weigeren", "ui.permission.feedbackPlaceholder": "Vertel Kilo wat het anders moet doen", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/no.ts b/packages/kilo-vscode/webview-ui/src/i18n/no.ts index 1b776ff2b86b..9b1a2a215924 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/no.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/no.ts @@ -277,6 +277,8 @@ export const dict = { "notification.permission.titleSubagent": "Tillatelse påkrevd (underagent)", "notification.permission.titleSkillShell": "Kjøre skallkommandoer fra ferdigheten «{{skill}}»?", "notification.permission.titleSandboxEscalation": "Tillate Git-operasjon utenfor sandkassen?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "Administrer regler for automatisk godkjenning", "ui.permission.reject": "Avvis", "ui.permission.feedbackPlaceholder": "Fortell Kilo hva den skal gjøre annerledes", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts index a3368e02259a..2c90b01be1b9 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts @@ -271,6 +271,8 @@ export const dict = { "notification.permission.titleSubagent": "Wymagane uprawnienie (podagent)", "notification.permission.titleSkillShell": "Uruchomić polecenia powłoki z umiejętności „{{skill}}”?", "notification.permission.titleSandboxEscalation": "Zezwolić na operację Git poza piaskownicą?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "Zarządzaj regułami automatycznego zatwierdzania", "ui.permission.reject": "Odrzuć", "ui.permission.feedbackPlaceholder": "Powiedz Kilo, co zrobić inaczej", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts index 8b048efc800d..77ff8fab51c7 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts @@ -268,6 +268,8 @@ export const dict = { "notification.permission.titleSubagent": "Требуется разрешение (субагент)", "notification.permission.titleSkillShell": "Выполнить команды оболочки из навыка «{{skill}}»?", "notification.permission.titleSandboxEscalation": "Разрешить операцию Git за пределами песочницы?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "Управление правилами автоодобрения", "ui.permission.reject": "Отклонить", "ui.permission.feedbackPlaceholder": "Скажите Kilo, что сделать иначе", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/th.ts b/packages/kilo-vscode/webview-ui/src/i18n/th.ts index f9cf257de7b1..5af765677463 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/th.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/th.ts @@ -268,6 +268,8 @@ export const dict = { "notification.permission.titleSubagent": "ต้องการสิทธิ์ (ตัวแทนย่อย)", "notification.permission.titleSkillShell": 'เรียกใช้คำสั่งเชลล์จากสกิล "{{skill}}" หรือไม่?', "notification.permission.titleSandboxEscalation": "อนุญาตการดำเนินการ Git นอกแซนด์บ็อกซ์หรือไม่?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "จัดการกฎการอนุมัติอัตโนมัติ", "ui.permission.reject": "ปฏิเสธ", "ui.permission.feedbackPlaceholder": "บอก Kilo ว่าควรทำต่างออกไปอย่างไร", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts index 144cc777b1a8..ae2be329f140 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts @@ -270,6 +270,8 @@ export const dict = { "notification.permission.titleSkillShell": "“{{skill}}” becerisindeki kabuk komutları çalıştırılsın mı?", "notification.permission.titleSandboxEscalation": "Git işleminin korumalı alan dışında gerçekleştirilmesine izin verilsin mi?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "Otomatik Onay Kurallarını Yönet", "ui.permission.reject": "Reddet", "ui.permission.feedbackPlaceholder": "Kilo'ya farklı ne yapması gerektiğini söyleyin", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts index f992d30fba19..23d3293ddbdf 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts @@ -272,6 +272,8 @@ export const dict = { "notification.permission.titleSubagent": "Потрібен дозвіл (підагент)", "notification.permission.titleSkillShell": "Виконати команди оболонки з навички «{{skill}}»?", "notification.permission.titleSandboxEscalation": "Дозволити операцію Git за межами пісочниці?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "Керувати правилами автоматичного схвалення", "ui.permission.reject": "Відхилити", "ui.permission.feedbackPlaceholder": "Скажіть Kilo, що зробити інакше", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts index 54bd0cd4fac9..8e27a11bca8f 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts @@ -257,6 +257,8 @@ export const dict = { "notification.permission.titleSubagent": "需要权限(子代理)", "notification.permission.titleSkillShell": "要执行技能「{{skill}}」的 shell 命令吗?", "notification.permission.titleSandboxEscalation": "要允许在沙盒外执行 Git 操作吗?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "管理自动审批规则", "ui.permission.reject": "拒绝", "ui.permission.feedbackPlaceholder": "告诉 Kilo 应该如何修改", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts index 520ead4458a7..ca52ce9edc1f 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts @@ -255,6 +255,8 @@ export const dict = { "notification.permission.titleSubagent": "需要權限(子代理)", "notification.permission.titleSkillShell": "要執行技能「{{skill}}」的 shell 指令嗎?", "notification.permission.titleSandboxEscalation": "要允許在沙盒外執行 Git 操作嗎?", + "notification.permission.descriptionSandboxEscalation": + "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", "ui.permission.manageAutoApprove": "管理自動核准規則", "ui.permission.reject": "拒絕", "ui.permission.feedbackPlaceholder": "告訴 Kilo 應該如何修改", diff --git a/packages/opencode/src/acp/permission.ts b/packages/opencode/src/acp/permission.ts index 12568db164d1..e5b52ff68256 100644 --- a/packages/opencode/src/acp/permission.ts +++ b/packages/opencode/src/acp/permission.ts @@ -64,7 +64,7 @@ export class Handler { const title = skillShell ? SkillShellPrompt.title : temporary - ? "Allow Git operation outside the sandbox" + ? "Run outside the sandbox" // kilocode_change : undefined // kilocode_change const result = await this.input.connection .requestPermission({ diff --git a/packages/opencode/src/cli/cmd/run/permission.shared.ts b/packages/opencode/src/cli/cmd/run/permission.shared.ts index cde3960b008d..5c7add92949a 100644 --- a/packages/opencode/src/cli/cmd/run/permission.shared.ts +++ b/packages/opencode/src/cli/cmd/run/permission.shared.ts @@ -100,13 +100,18 @@ export function permissionInfo(request: PermissionRequest): PermissionInfo { if (request.permission === "sandbox_escalation") { const command = text(input.command) + // kilocode_change start - explain the escalation scope, the git reason, and the excluded approvals + const detail = [ + "This runs the whole command with filesystem and network restrictions removed, for this command only.", + "Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree.", + "Bash allow rules and auto-approve never approve this prompt automatically.", + ] return { icon: "!", - title: "Allow Git operation outside the sandbox", // kilocode_change - lines: command - ? [`$ ${command}`, "This approval applies to this command only."] - : ["This approval applies to this command only."], + title: "Run outside the sandbox", // kilocode_change + lines: command ? [`$ ${command}`, ...detail] : detail, } + // kilocode_change end } if (request.permission === "external_directory") { diff --git a/packages/opencode/test/cli/run/permission.shared.test.ts b/packages/opencode/test/cli/run/permission.shared.test.ts index 843652db9d01..2ff8cf06c033 100644 --- a/packages/opencode/test/cli/run/permission.shared.test.ts +++ b/packages/opencode/test/cli/run/permission.shared.test.ts @@ -150,8 +150,13 @@ describe("run permission shared", () => { ), ).toEqual({ icon: "!", - title: "Allow Git operation outside the sandbox", - lines: ["$ git add file.txt && git commit -m test", "This approval applies to this command only."], + title: "Run outside the sandbox", + lines: [ + "$ git add file.txt && git commit -m test", + "This runs the whole command with filesystem and network restrictions removed, for this command only.", + "Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree.", + "Bash allow rules and auto-approve never approve this prompt automatically.", + ], }) expect(permissionOptions("permission", true)).toEqual(["once", "reject"]) }) From 27ceab7984a35cc0e034ad092cc8e71a066e787c Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 17 Sep 2026 11:13:32 +0200 Subject: [PATCH 02/11] fix(vscode): translate sandbox escalation copy into all locales --- .../webview-ui/src/components/chat/PromptInput.tsx | 8 +++----- .../src/components/shared/SandboxButton.tsx | 1 + packages/kilo-vscode/webview-ui/src/i18n/ar.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/br.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/bs.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/da.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/de.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/en.ts | 12 ++++++------ packages/kilo-vscode/webview-ui/src/i18n/es.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/fa.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/fr.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/it.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/ja.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/ko.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/nl.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/no.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/pl.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/ru.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/th.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/tr.ts | 8 +++++--- packages/kilo-vscode/webview-ui/src/i18n/uk.ts | 7 +++++-- packages/kilo-vscode/webview-ui/src/i18n/zh.ts | 6 ++++-- packages/kilo-vscode/webview-ui/src/i18n/zht.ts | 6 ++++-- 23 files changed, 108 insertions(+), 52 deletions(-) diff --git a/packages/kilo-vscode/webview-ui/src/components/chat/PromptInput.tsx b/packages/kilo-vscode/webview-ui/src/components/chat/PromptInput.tsx index d05ca82a1b2e..2aa87fb7e36d 100644 --- a/packages/kilo-vscode/webview-ui/src/components/chat/PromptInput.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/chat/PromptInput.tsx @@ -2160,11 +2160,9 @@ export const PromptInput: Component = (props) => { diff --git a/packages/kilo-vscode/webview-ui/src/components/shared/SandboxButton.tsx b/packages/kilo-vscode/webview-ui/src/components/shared/SandboxButton.tsx index c95bb3dc82e5..a13e725fdacc 100644 --- a/packages/kilo-vscode/webview-ui/src/components/shared/SandboxButton.tsx +++ b/packages/kilo-vscode/webview-ui/src/components/shared/SandboxButton.tsx @@ -54,6 +54,7 @@ export const SandboxTooltipContent: Component<{ enabled: boolean; network: boole ? "prompt.action.sandbox.description.disabled" : "prompt.action.sandbox.description.disabledNetworkAllowed", )} + {props.enabled ? ` ${language.t("prompt.action.sandbox.description.escalation")}` : ""} ) diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts index 08b0e3bd776c..46276bb1d769 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ar.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ar.ts @@ -202,6 +202,7 @@ export const dict = { "prompt.action.autoApprove.disable": "تعطيل الموافقة التلقائية", "prompt.action.autoApprove.enabled": "الموافقة التلقائية مفعلة. ستتم الموافقة على طلبات الأذونات تلقائياً.", "prompt.action.autoApprove.disabled": "الموافقة التلقائية معطلة. انقر للموافقة على طلبات الأذونات تلقائياً.", + "prompt.action.autoApprove.sandboxExcluded": "تُستثنى دائماً مطالبات الخروج من البيئة المعزولة.", "prompt.action.enhanceDescription": "زر «حسّن الموجه» يطوّر موجهك بإضافة سياق أو توضيح أو إعادة صياغة. جرّب اكتب موجه هنا ثم اضغط الزر مرة ثانية وشوف النتيجة.", "prompt.action.sandbox.enable": "تفعيل sandbox", @@ -218,6 +219,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "مسموح بها", "prompt.action.sandbox.unrestricted": "غير مقيّد", "prompt.action.sandbox.description.enabled": "تقتصر عمليات الكتابة على مجلدات المشروع و Kilo.", + "prompt.action.sandbox.description.escalation": + "تنطبق قواعد الأذونات والموافقة التلقائية داخل البيئة المعزولة. الأوامر التي يجب أن تخرج منها تسأل دائماً.", "prompt.action.sandbox.description.disabled": "انقر لتقييد الكتابة في نظام الملفات والوصول إلى الشبكة.", "prompt.action.sandbox.description.disabledNetworkAllowed": "انقر لتقييد الكتابة في نظام الملفات. يظل الوصول إلى الشبكة مسموحًا وفق إعدادات sandbox.", @@ -262,9 +265,9 @@ export const dict = { "notification.permission.title": "مطلوب إذن", "notification.permission.titleSubagent": "مطلوب إذن (وكيل فرعي)", "notification.permission.titleSkillShell": "هل تريد تشغيل أوامر الصدفة من المهارة «{{skill}}»؟", - "notification.permission.titleSandboxEscalation": "السماح بعملية Git خارج البيئة المعزولة؟", + "notification.permission.titleSandboxEscalation": "التشغيل خارج البيئة المعزولة؟", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "يُشغّل هذا الأمر بالكامل مع إزالة قيود نظام الملفات والشبكة، لهذا الأمر فقط. يجب أن يكتب Git في .git، وهو للقراءة فقط داخل البيئة المعزولة ويقع خارج شجرة العمل في worktree مرتبط. لا توافق قواعد سماح Bash والموافقة التلقائية على هذا الطلب تلقائياً أبداً.", "ui.permission.manageAutoApprove": "إدارة قواعد الموافقة التلقائية", "ui.permission.reject": "رفض", "ui.permission.feedbackPlaceholder": "أخبر Kilo بما يجب فعله بشكل مختلف", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/br.ts b/packages/kilo-vscode/webview-ui/src/i18n/br.ts index b46db0ee81ad..015335ea6cf2 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/br.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/br.ts @@ -208,6 +208,7 @@ export const dict = { "A aprovação automática está ativada. Solicitações de permissão serão aprovadas automaticamente.", "prompt.action.autoApprove.disabled": "A aprovação automática está desativada. Clique para aprovar solicitações de permissão automaticamente.", + "prompt.action.autoApprove.sandboxExcluded": "Solicitações de escalonamento da sandbox são sempre excluídas.", "prompt.action.enhanceDescription": "O botão 'Aprimorar prompt' ajuda a melhorar seu pedido fornecendo contexto adicional, esclarecimentos ou reformulações. Tente digitar um pedido aqui e clique no botão novamente para ver como funciona.", "prompt.action.indexing": "Configurações de indexação", @@ -227,6 +228,8 @@ export const dict = { "prompt.action.sandbox.unrestricted": "Sem restrições", "prompt.action.sandbox.description.enabled": "As operações de escrita são limitadas aos diretórios do projeto e do Kilo.", + "prompt.action.sandbox.description.escalation": + "Regras de permissão e aprovação automática se aplicam dentro da sandbox. Comandos que precisam sair dela sempre perguntam.", "prompt.action.sandbox.description.disabled": "Clique para restringir as operações de escrita no sistema de arquivos e o acesso à rede.", "prompt.action.sandbox.description.disabledNetworkAllowed": @@ -272,9 +275,9 @@ export const dict = { "notification.permission.title": "Permissão necessária", "notification.permission.titleSubagent": "Permissão necessária (subagente)", "notification.permission.titleSkillShell": "Executar comandos de shell da skill “{{skill}}”?", - "notification.permission.titleSandboxEscalation": "Permitir operação do Git fora da sandbox?", + "notification.permission.titleSandboxEscalation": "Executar fora da sandbox?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "Isto executa todo o comando sem as restrições de sistema de arquivos e rede, apenas para este comando. O Git precisa gravar em .git, que é somente leitura na sandbox e fica fora da árvore de trabalho em um worktree vinculado. Regras de permissão do Bash e a aprovação automática nunca aprovam esta solicitação automaticamente.", "ui.permission.manageAutoApprove": "Gerenciar regras de aprovação automática", "ui.permission.reject": "Rejeitar", "ui.permission.feedbackPlaceholder": "Diga ao Kilo o que fazer de forma diferente", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts index b4003b4d790b..72dcaa643367 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/bs.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/bs.ts @@ -209,6 +209,7 @@ export const dict = { "Automatsko odobravanje je uključeno. Zahtjevi za dozvole bit će automatski odobreni.", "prompt.action.autoApprove.disabled": "Automatsko odobravanje je isključeno. Kliknite za automatsko odobravanje zahtjeva za dozvole.", + "prompt.action.autoApprove.sandboxExcluded": "Zahtjevi za napuštanje sandboxa uvijek su izuzeti.", "prompt.action.enhanceDescription": "Dugme 'Poboljšaj prompt' pomaže poboljšati vaš zahtjev pružajući dodatni kontekst, pojašnjenje ili preformulaciju. Pokušajte upisati zahtjev ovdje i ponovo kliknite na dugme da vidite kako funkcioniše.", "prompt.action.sandbox.enable": "Omogući sandbox", @@ -226,6 +227,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "Dozvoljena", "prompt.action.sandbox.unrestricted": "Bez ograničenja", "prompt.action.sandbox.description.enabled": "Pisanje je ograničeno na direktorije projekta i Kilo.", + "prompt.action.sandbox.description.escalation": + "Pravila dozvola i automatsko odobravanje primjenjuju se unutar sandboxa. Komande koje ga moraju napustiti uvijek pitaju.", "prompt.action.sandbox.description.disabled": "Kliknite da ograničite pisanje u datotečni sistem i pristup mreži.", "prompt.action.sandbox.description.disabledNetworkAllowed": "Kliknite da ograničite pisanje u datotečni sistem. Pristup mreži ostaje dozvoljen prema vašim sandbox postavkama.", @@ -270,9 +273,9 @@ export const dict = { "notification.permission.title": "Potrebna dozvola", "notification.permission.titleSubagent": "Potrebna dozvola (podagent)", "notification.permission.titleSkillShell": "Pokrenuti shell komande iz vještine „{{skill}}”?", - "notification.permission.titleSandboxEscalation": "Dozvoliti Git operaciju izvan sandboxa?", + "notification.permission.titleSandboxEscalation": "Pokrenuti izvan sandboxa?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "Ovo izvršava cijelu komandu bez ograničenja datotečnog sistema i mreže, samo za ovu komandu. Git mora pisati u .git, koji je samo za čitanje u sandboxu i nalazi se izvan radnog stabla u povezanom worktreeu. Bash pravila dozvola i automatsko odobravanje nikada ne odobravaju ovaj upit automatski.", "ui.permission.manageAutoApprove": "Upravljanje pravilima automatskog odobravanja", "ui.permission.reject": "Odbij", "ui.permission.feedbackPlaceholder": "Recite Kilu šta da uradi drugačije", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/da.ts b/packages/kilo-vscode/webview-ui/src/i18n/da.ts index 38ab3b452fac..5c619b146dc1 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/da.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/da.ts @@ -208,6 +208,7 @@ export const dict = { "Automatisk godkendelse er aktiveret. Tilladelsesanmodninger godkendes automatisk.", "prompt.action.autoApprove.disabled": "Automatisk godkendelse er deaktiveret. Klik for at godkende tilladelsesanmodninger automatisk.", + "prompt.action.autoApprove.sandboxExcluded": "Sandbox-eskaleringsanmodninger er altid udelukket.", "prompt.action.enhanceDescription": "Knappen 'Forbedr prompt' hjælper med at forbedre din forespørgsel ved at give ekstra kontekst, præcisering eller omformulering. Prøv at skrive en forespørgsel her og klik på knappen igen for at se hvordan det virker.", "prompt.action.sandbox.enable": "Aktivér sandbox", @@ -225,6 +226,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "Tilladt", "prompt.action.sandbox.unrestricted": "Ubegrænset", "prompt.action.sandbox.description.enabled": "Skrivning er begrænset til projekt- og Kilo-mapperne.", + "prompt.action.sandbox.description.escalation": + "Tilladelsesregler og automatisk godkendelse gælder i sandkassen. Kommandoer, der skal forlade den, spørger altid.", "prompt.action.sandbox.description.disabled": "Klik for at begrænse skriveadgang til filsystemet og netværksadgang.", "prompt.action.sandbox.description.disabledNetworkAllowed": "Klik for at begrænse skriveadgang til filsystemet. Netværksadgang er fortsat tilladt ifølge dine sandboxindstillinger.", @@ -269,9 +272,9 @@ export const dict = { "notification.permission.title": "Tilladelse påkrævet", "notification.permission.titleSubagent": "Tilladelse påkrævet (underagent)", "notification.permission.titleSkillShell": "Kør shell-kommandoer fra færdigheden „{{skill}}“?", - "notification.permission.titleSandboxEscalation": "Tillad Git-handling uden for sandkassen?", + "notification.permission.titleSandboxEscalation": "Kør uden for sandkassen?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "Dette kører hele kommandoen uden begrænsninger for filsystem og netværk, kun for denne kommando. Git skal skrive til .git, som er skrivebeskyttet i sandkassen og ligger uden for worktreet i et linket worktree. Bash-tilladelsesregler og automatisk godkendelse godkender aldrig denne anmodning automatisk.", "ui.permission.manageAutoApprove": "Administrer regler for automatisk godkendelse", "ui.permission.reject": "Afvis", "ui.permission.feedbackPlaceholder": "Fortæl Kilo, hvad den skal gøre anderledes", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/de.ts b/packages/kilo-vscode/webview-ui/src/i18n/de.ts index 509d9f947e52..33138d54f325 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/de.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/de.ts @@ -214,6 +214,7 @@ export const dict = { "Automatische Genehmigung ist aktiviert. Berechtigungsanfragen werden automatisch genehmigt.", "prompt.action.autoApprove.disabled": "Automatische Genehmigung ist deaktiviert. Klicken, um Berechtigungsanfragen automatisch zu genehmigen.", + "prompt.action.autoApprove.sandboxExcluded": "Sandbox-Eskalationsanfragen sind immer ausgeschlossen.", "prompt.action.enhanceDescription": "Die Schaltfläche 'Prompt verbessern' hilft, deine Anfrage durch zusätzlichen Kontext, Klarstellungen oder Umformulierungen zu verbessern. Versuche, hier eine Anfrage einzugeben und klicke erneut auf die Schaltfläche, um zu sehen, wie es funktioniert.", "prompt.action.sandbox.enable": "Sandbox aktivieren", @@ -232,6 +233,8 @@ export const dict = { "prompt.action.sandbox.unrestricted": "Uneingeschränkt", "prompt.action.sandbox.description.enabled": "Schreibvorgänge sind auf die Projekt- und Kilo-Verzeichnisse beschränkt.", + "prompt.action.sandbox.description.escalation": + "Berechtigungsregeln und automatische Genehmigung gelten innerhalb der Sandbox. Befehle, die sie verlassen müssen, fragen immer.", "prompt.action.sandbox.description.disabled": "Klicken, um Schreibvorgänge im Dateisystem und den Netzwerkzugriff einzuschränken.", "prompt.action.sandbox.description.disabledNetworkAllowed": @@ -277,9 +280,9 @@ export const dict = { "notification.permission.title": "Berechtigung erforderlich", "notification.permission.titleSubagent": "Berechtigung erforderlich (Subagent)", "notification.permission.titleSkillShell": "Shell-Befehle aus dem Skill „{{skill}}“ ausführen?", - "notification.permission.titleSandboxEscalation": "Git-Vorgang außerhalb der Sandbox zulassen?", + "notification.permission.titleSandboxEscalation": "Außerhalb der Sandbox ausführen?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "Dies führt den gesamten Befehl mit entfernten Dateisystem- und Netzwerkeinschränkungen aus, nur für diesen Befehl. Git muss in .git schreiben, das in der Sandbox schreibgeschützt ist und bei einem verknüpften Worktree außerhalb des Worktrees liegt. Bash-Erlaubnisregeln und die automatische Genehmigung genehmigen diese Anfrage nie automatisch.", "ui.permission.manageAutoApprove": "Regeln für automatische Genehmigung verwalten", "ui.permission.reject": "Ablehnen", "ui.permission.feedbackPlaceholder": "Teile Kilo mit, was es anders machen soll", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/en.ts b/packages/kilo-vscode/webview-ui/src/i18n/en.ts index 3f824153a1e7..c6be38215679 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/en.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/en.ts @@ -202,10 +202,9 @@ export const dict = { "prompt.action.indexing": "Indexing settings", "prompt.action.autoApprove.enable": "Enable auto-approve", "prompt.action.autoApprove.disable": "Disable auto-approve", - "prompt.action.autoApprove.enabled": - "Auto-approve is enabled. Permission prompts will be approved automatically. Sandbox escalation prompts are always excluded.", - "prompt.action.autoApprove.disabled": - "Auto-approve is disabled. Click to approve permission prompts automatically. Sandbox escalation prompts are always excluded.", + "prompt.action.autoApprove.enabled": "Auto-approve is enabled. Permission prompts will be approved automatically.", + "prompt.action.autoApprove.disabled": "Auto-approve is disabled. Click to approve permission prompts automatically.", + "prompt.action.autoApprove.sandboxExcluded": "Sandbox escalation prompts are always excluded.", "prompt.action.sandbox.enable": "Enable sandbox", "prompt.action.sandbox.disable": "Disable sandbox", "prompt.action.sandbox.enabled": @@ -220,8 +219,9 @@ export const dict = { "prompt.action.sandbox.network.blocked": "Blocked", "prompt.action.sandbox.network.allowed": "Allowed", "prompt.action.sandbox.unrestricted": "Unrestricted", - "prompt.action.sandbox.description.enabled": - "Writes are limited to the project and Kilo directories. Permission rules and auto-approve apply inside the sandbox. Commands that must leave it always ask.", + "prompt.action.sandbox.description.enabled": "Writes are limited to the project and Kilo directories.", + "prompt.action.sandbox.description.escalation": + "Permission rules and auto-approve apply inside the sandbox. Commands that must leave it always ask.", "prompt.action.sandbox.description.disabled": "Click to restrict filesystem writes and network access.", "prompt.action.sandbox.description.disabledNetworkAllowed": "Click to restrict filesystem writes. Network access remains allowed by your sandbox settings.", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/es.ts b/packages/kilo-vscode/webview-ui/src/i18n/es.ts index eac1c29f95af..d5cd58405ae4 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/es.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/es.ts @@ -209,6 +209,7 @@ export const dict = { "La aprobación automática está activada. Las solicitudes de permisos se aprobarán automáticamente.", "prompt.action.autoApprove.disabled": "La aprobación automática está desactivada. Haz clic para aprobar solicitudes de permisos automáticamente.", + "prompt.action.autoApprove.sandboxExcluded": "Las solicitudes de escalado de la sandbox siempre se excluyen.", "prompt.action.enhanceDescription": "El botón 'Mejorar el mensaje' ayuda a mejorar tu petición proporcionando contexto adicional, aclaraciones o reformulaciones. Intenta escribir una petición aquí y haz clic en el botón nuevamente para ver cómo funciona.", "prompt.action.indexing": "Configuración de indexación", @@ -227,6 +228,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "Permitida", "prompt.action.sandbox.unrestricted": "Sin restricciones", "prompt.action.sandbox.description.enabled": "Las escrituras se limitan a los directorios del proyecto y de Kilo.", + "prompt.action.sandbox.description.escalation": + "Las reglas de permisos y la aprobación automática se aplican dentro de la sandbox. Los comandos que deben salir de ella siempre preguntan.", "prompt.action.sandbox.description.disabled": "Haz clic para restringir las escrituras en el sistema de archivos y el acceso a la red.", "prompt.action.sandbox.description.disabledNetworkAllowed": @@ -272,9 +275,9 @@ export const dict = { "notification.permission.title": "Permiso requerido", "notification.permission.titleSubagent": "Permiso requerido (subagente)", "notification.permission.titleSkillShell": "¿Ejecutar comandos de shell de la habilidad «{{skill}}»?", - "notification.permission.titleSandboxEscalation": "¿Permitir la operación de Git fuera del entorno aislado?", + "notification.permission.titleSandboxEscalation": "¿Ejecutar fuera de la sandbox?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "Esto ejecuta todo el comando con las restricciones de sistema de archivos y de red eliminadas, solo para este comando. Git debe escribir en .git, que es de solo lectura en la sandbox y está fuera del árbol de trabajo en un worktree vinculado. Las reglas de permiso de Bash y la aprobación automática nunca aprueban esta solicitud automáticamente.", "ui.permission.manageAutoApprove": "Gestionar reglas de aprobación automática", "ui.permission.reject": "Rechazar", "ui.permission.feedbackPlaceholder": "Dile a Kilo qué debe hacer de otra forma", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/fa.ts b/packages/kilo-vscode/webview-ui/src/i18n/fa.ts index a2d467c312b6..9e82877791ca 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/fa.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/fa.ts @@ -208,6 +208,7 @@ export const dict = { "prompt.action.autoApprove.disable": "غیرفعال‌سازی تأیید خودکار", "prompt.action.autoApprove.enabled": "تأیید خودکار فعال است. درخواست‌های مجوز به‌صورت خودکار تأیید می‌شوند.", "prompt.action.autoApprove.disabled": "تأیید خودکار غیرفعال است. برای تأیید خودکار درخواست‌های مجوز کلیک کنید.", + "prompt.action.autoApprove.sandboxExcluded": "درخواست‌های خروج از sandbox همیشه مستثنا هستند.", "prompt.action.sandbox.enable": "فعال‌سازی سندباکس", "prompt.action.sandbox.disable": "غیرفعال‌سازی سندباکس", "prompt.action.sandbox.enabled": "سندباکس فعال است. دستورات شل عامل به پوشه‌های پروژه و Kilo محدود شده‌اند.", @@ -222,6 +223,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "مجاز", "prompt.action.sandbox.unrestricted": "بدون محدودیت", "prompt.action.sandbox.description.enabled": "نوشتن‌ها به پوشه‌های پروژه و Kilo محدود شده‌اند.", + "prompt.action.sandbox.description.escalation": + "قواعد مجوز و تأیید خودکار در داخل sandbox اعمال می‌شوند. فرمان‌هایی که باید از آن خارج شوند همیشه می‌پرسند.", "prompt.action.sandbox.description.disabled": "برای محدود کردن نوشتن در سیستم فایل و دسترسی به شبکه کلیک کنید.", "prompt.action.sandbox.description.disabledNetworkAllowed": "برای محدود کردن نوشتن در سیستم فایل کلیک کنید. دسترسی به شبکه طبق تنظیمات sandbox شما مجاز است.", @@ -267,9 +270,9 @@ export const dict = { "notification.permission.title": "مجوز لازم است", "notification.permission.titleSubagent": "مجوز مورد نیاز است (زیرعامل)", "notification.permission.titleSkillShell": "دستورهای شل از مهارت «{{skill}}» اجرا شود؟", - "notification.permission.titleSandboxEscalation": "اجازه انجام عملیات Git خارج از sandbox داده شود؟", + "notification.permission.titleSandboxEscalation": "اجرا خارج از sandbox؟", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "این کل فرمان را با حذف محدودیت‌های فایل‌سیستم و شبکه، فقط برای همین فرمان اجرا می‌کند. Git باید در .git بنویسد؛ این مسیر در sandbox فقط‌خواندنی است و در یک worktree مرتبط خارج از worktree قرار دارد. قواعد اجازه Bash و تأیید خودکار هرگز این درخواست را به‌صورت خودکار تأیید نمی‌کنند.", "ui.permission.manageAutoApprove": "مدیریت قوانین تأیید خودکار", "ui.permission.reject": "رد", "ui.permission.feedbackPlaceholder": "به Kilo بگویید چه کاری را متفاوت انجام دهد", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts index 58297d7b6ca9..7e9accd233f3 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/fr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/fr.ts @@ -209,6 +209,7 @@ export const dict = { "L'approbation automatique est activée. Les demandes d'autorisation seront approuvées automatiquement.", "prompt.action.autoApprove.disabled": "L'approbation automatique est désactivée. Cliquez pour approuver automatiquement les demandes d'autorisation.", + "prompt.action.autoApprove.sandboxExcluded": "Les demandes d’escalade du bac à sable sont toujours exclues.", "prompt.action.enhanceDescription": "Le bouton 'Améliorer la requête' aide à améliorer votre demande en fournissant un contexte supplémentaire, des clarifications ou des reformulations. Essayez de taper une demande ici et cliquez à nouveau sur le bouton pour voir comment cela fonctionne.", "prompt.action.indexing": "Paramètres d'indexation", @@ -227,6 +228,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "Autorisé", "prompt.action.sandbox.unrestricted": "Sans restriction", "prompt.action.sandbox.description.enabled": "Les écritures sont limitées aux répertoires du projet et de Kilo.", + "prompt.action.sandbox.description.escalation": + "Les règles d’autorisation et l’approbation automatique s’appliquent à l’intérieur du bac à sable. Les commandes qui doivent en sortir demandent toujours.", "prompt.action.sandbox.description.disabled": "Cliquez pour restreindre les écritures dans le système de fichiers et l'accès au réseau.", "prompt.action.sandbox.description.disabledNetworkAllowed": @@ -272,9 +275,9 @@ export const dict = { "notification.permission.title": "Permission requise", "notification.permission.titleSubagent": "Permission requise (sous-agent)", "notification.permission.titleSkillShell": "Exécuter les commandes shell de la compétence «\u00a0{{skill}}\u00a0» ?", - "notification.permission.titleSandboxEscalation": "Autoriser l’opération Git en dehors du bac à sable ?", + "notification.permission.titleSandboxEscalation": "Exécuter en dehors du bac à sable ?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "Cette action exécute toute la commande sans les restrictions de système de fichiers et de réseau, pour cette commande uniquement. Git doit écrire dans .git, qui est en lecture seule dans le bac à sable et se trouve hors de l’arborescence de travail pour un worktree lié. Les règles d’autorisation Bash et l’approbation automatique n’approuvent jamais cette demande automatiquement.", "ui.permission.manageAutoApprove": "Gérer les règles d'approbation automatique", "ui.permission.reject": "Rejeter", "ui.permission.feedbackPlaceholder": "Dites à Kilo quoi faire différemment", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/it.ts b/packages/kilo-vscode/webview-ui/src/i18n/it.ts index 01e80c341bd9..320cfe484678 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/it.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/it.ts @@ -187,6 +187,7 @@ export const dict = { "L'approvazione automatica è abilitata. Le richieste di autorizzazione saranno approvate automaticamente.", "prompt.action.autoApprove.disabled": "L'approvazione automatica è disabilitata. Fai clic per approvare automaticamente le richieste di autorizzazione.", + "prompt.action.autoApprove.sandboxExcluded": "Le richieste di escalation della sandbox sono sempre escluse.", "prompt.action.enhanceDescription": "Il pulsante 'Migliora prompt' aiuta a migliorare il prompt aggiungendo contesto, chiarimenti o riformulazioni. Scrivi un prompt qui e fai di nuovo clic sul pulsante per vedere come funziona.", "prompt.toast.promptSendFailed.title": "Invio prompt non riuscito", @@ -207,9 +208,9 @@ export const dict = { "notification.permission.title": "Autorizzazione richiesta", "notification.permission.titleSubagent": "Autorizzazione richiesta (sub-agent)", "notification.permission.titleSkillShell": "Eseguire i comandi shell della skill “{{skill}}”?", - "notification.permission.titleSandboxEscalation": "Consentire l'operazione Git al di fuori della sandbox?", + "notification.permission.titleSandboxEscalation": "Eseguire fuori dalla sandbox?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "Questo esegue l'intero comando senza le restrizioni di filesystem e rete, solo per questo comando. Git deve scrivere in .git, che è di sola lettura nella sandbox e si trova fuori dall'albero di lavoro in un worktree collegato. Le regole di autorizzazione Bash e l'approvazione automatica non approvano mai automaticamente questa richiesta.", "ui.permission.manageAutoApprove": "Gestisci regole approvazione automatica", "ui.permission.reject": "Rifiuta", "ui.permission.feedbackPlaceholder": "Di' a Kilo cosa fare diversamente", @@ -852,6 +853,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "Consentita", "prompt.action.sandbox.unrestricted": "Senza restrizioni", "prompt.action.sandbox.description.enabled": "Le scritture sono limitate alle directory del progetto e di Kilo.", + "prompt.action.sandbox.description.escalation": + "Le regole di autorizzazione e l'approvazione automatica si applicano all'interno della sandbox. I comandi che devono uscirne chiedono sempre.", "prompt.action.sandbox.description.disabled": "Fai clic per limitare le scritture nel file system e l'accesso alla rete.", "prompt.action.sandbox.description.disabledNetworkAllowed": diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts index a24727dfd5a1..69151bd17e88 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts @@ -206,6 +206,7 @@ export const dict = { "prompt.action.autoApprove.disable": "自動承認を無効化", "prompt.action.autoApprove.enabled": "自動承認が有効です。権限リクエストは自動的に承認されます。", "prompt.action.autoApprove.disabled": "自動承認が無効です。クリックすると権限リクエストを自動的に承認します。", + "prompt.action.autoApprove.sandboxExcluded": "サンドボックスからの脱出プロンプトは常に対象外です。", "prompt.action.enhanceDescription": "「プロンプトを強化」ボタンは、追加コンテキスト、説明、または言い換えを提供することで、リクエストを改善します。ここにリクエストを入力し、ボタンを再度クリックして動作を確認してください。", "prompt.action.indexing": "インデックス設定", @@ -224,6 +225,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "許可", "prompt.action.sandbox.unrestricted": "制限なし", "prompt.action.sandbox.description.enabled": "書き込みはプロジェクトおよびKiloディレクトリ内に制限されます。", + "prompt.action.sandbox.description.escalation": + "許可ルールと自動承認はサンドボックス内で適用されます。サンドボックスから出る必要があるコマンドは常に確認します。", "prompt.action.sandbox.description.disabled": "クリックすると、ファイルシステムへの書き込みとネットワークアクセスを制限します。", "prompt.action.sandbox.description.disabledNetworkAllowed": @@ -269,9 +272,9 @@ export const dict = { "notification.permission.title": "権限が必要です", "notification.permission.titleSubagent": "権限が必要です(サブエージェント)", "notification.permission.titleSkillShell": "スキル「{{skill}}」のシェルコマンドを実行しますか?", - "notification.permission.titleSandboxEscalation": "サンドボックス外での Git 操作を許可しますか?", + "notification.permission.titleSandboxEscalation": "サンドボックス外で実行しますか?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "このコマンド全体を、ファイルシステムとネットワークの制限を外して実行します。このコマンドに限ります。Git は .git に書き込む必要があります。これはサンドボックス内では読み取り専用で、リンクされた worktree では worktree の外にあります。Bash の許可ルールと自動承認がこのプロンプトを自動で承認することはありません。", "ui.permission.manageAutoApprove": "自動承認ルールを管理", "ui.permission.reject": "拒否", "ui.permission.feedbackPlaceholder": "Kilo にどう変更してほしいか伝える", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts index 65c70c7a7cfe..17db8020caeb 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts @@ -209,6 +209,7 @@ export const dict = { "prompt.action.autoApprove.disable": "자동 승인 사용 안 함", "prompt.action.autoApprove.enabled": "자동 승인이 켜져 있습니다. 권한 요청이 자동으로 승인됩니다.", "prompt.action.autoApprove.disabled": "자동 승인이 꺼져 있습니다. 클릭하면 권한 요청을 자동으로 승인합니다.", + "prompt.action.autoApprove.sandboxExcluded": "샌드박스 에스컬레이션 프롬프트는 항상 제외됩니다.", "prompt.action.enhanceDescription": "'프롬프트 향상' 버튼은 추가 컨텍스트, 명확화 또는 재구성을 제공하여 요청을 개선합니다. 여기에 요청을 입력한 다음 버튼을 다시 클릭하여 작동 방식을 확인해보세요.", "prompt.action.sandbox.enable": "샌드박스 활성화", @@ -226,6 +227,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "허용됨", "prompt.action.sandbox.unrestricted": "제한 없음", "prompt.action.sandbox.description.enabled": "쓰기는 프로젝트 및 Kilo 디렉터리로 제한됩니다.", + "prompt.action.sandbox.description.escalation": + "권한 규칙과 자동 승인은 샌드박스 안에서 적용됩니다. 샌드박스를 벗어나야 하는 명령은 항상 확인합니다.", "prompt.action.sandbox.description.disabled": "클릭하면 파일 시스템 쓰기와 네트워크 액세스를 제한합니다.", "prompt.action.sandbox.description.disabledNetworkAllowed": "클릭하면 파일 시스템 쓰기를 제한합니다. 샌드박스 설정에 따라 네트워크 액세스는 계속 허용됩니다.", @@ -270,9 +273,9 @@ export const dict = { "notification.permission.title": "권한 필요", "notification.permission.titleSubagent": "권한 필요 (서브에이전트)", "notification.permission.titleSkillShell": '스킬 "{{skill}}"의 셸 명령을 실행할까요?', - "notification.permission.titleSandboxEscalation": "샌드박스 외부에서 Git 작업을 허용할까요?", + "notification.permission.titleSandboxEscalation": "샌드박스 외부에서 실행할까요?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "이 명령 전체를 파일 시스템 및 네트워크 제한 없이 실행하며, 이 명령에만 적용됩니다. Git은 .git에 기록해야 하며, 이 경로는 샌드박스에서 읽기 전용이고 연결된 worktree에서는 worktree 밖에 있습니다. Bash 허용 규칙과 자동 승인은 이 프롬프트를 자동으로 승인하지 않습니다.", "ui.permission.manageAutoApprove": "자동 승인 규칙 관리", "ui.permission.reject": "거부", "ui.permission.feedbackPlaceholder": "Kilo가 다르게 하길 원하는 내용을 알려주세요", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts index d4d465573976..5cc140583311 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/nl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/nl.ts @@ -210,6 +210,7 @@ export const dict = { "Automatisch goedkeuren is ingeschakeld. Toestemmingsverzoeken worden automatisch goedgekeurd.", "prompt.action.autoApprove.disabled": "Automatisch goedkeuren is uitgeschakeld. Klik om toestemmingsverzoeken automatisch goed te keuren.", + "prompt.action.autoApprove.sandboxExcluded": "Escalatieaanvragen van de sandbox worden altijd uitgesloten.", "prompt.action.enhanceDescription": "De knop 'Prompt verbeteren' helpt je prompt te verbeteren door extra context, verduidelijking of herformulering te bieden. Typ hier een prompt en klik nogmaals op de knop om te zien hoe het werkt.", "prompt.action.sandbox.enable": "Sandbox inschakelen", @@ -227,6 +228,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "Toegestaan", "prompt.action.sandbox.unrestricted": "Onbeperkt", "prompt.action.sandbox.description.enabled": "Schrijfbewerkingen zijn beperkt tot de project- en Kilo-mappen.", + "prompt.action.sandbox.description.escalation": + "Toestemmingsregels en automatisch goedkeuren gelden binnen de sandbox. Commando's die deze moeten verlaten, vragen altijd.", "prompt.action.sandbox.description.disabled": "Klik om schrijfbewerkingen in het bestandssysteem en netwerktoegang te beperken.", "prompt.action.sandbox.description.disabledNetworkAllowed": @@ -272,9 +275,9 @@ export const dict = { "notification.permission.title": "Toestemming vereist", "notification.permission.titleSubagent": "Toestemming vereist (subagent)", "notification.permission.titleSkillShell": "Shell-opdrachten uit vaardigheid “{{skill}}” uitvoeren?", - "notification.permission.titleSandboxEscalation": "Git-bewerking buiten de sandbox toestaan?", + "notification.permission.titleSandboxEscalation": "Buiten de sandbox uitvoeren?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "Dit voert het hele commando uit zonder beperkingen voor het bestandssysteem en netwerk, alleen voor dit commando. Git moet naar .git schrijven, dat alleen-lezen is in de sandbox en bij een gekoppelde worktree buiten de worktree ligt. Bash-toestemmingsregels en automatisch goedkeuren keuren deze aanvraag nooit automatisch goed.", "ui.permission.manageAutoApprove": "Beheer automatisch goedkeuren regels", "ui.permission.reject": "Weigeren", "ui.permission.feedbackPlaceholder": "Vertel Kilo wat het anders moet doen", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/no.ts b/packages/kilo-vscode/webview-ui/src/i18n/no.ts index 9b1a2a215924..649271365441 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/no.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/no.ts @@ -211,6 +211,7 @@ export const dict = { "Automatisk godkjenning er aktivert. Tillatelsesforespørsler godkjennes automatisk.", "prompt.action.autoApprove.disabled": "Automatisk godkjenning er deaktivert. Klikk for å godkjenne tillatelsesforespørsler automatisk.", + "prompt.action.autoApprove.sandboxExcluded": "Sandbox-eskaleringsforespørsler er alltid ekskludert.", "prompt.action.indexing": "Indekseringsinnstillinger", "prompt.action.enhanceDescription": "Knappen 'Forbedre prompt' hjelper med å forbedre forespørselen din ved å gi ekstra kontekst, avklaring eller omformulering. Prøv å skrive en forespørsel her og klikk på knappen igjen for å se hvordan det fungerer.", @@ -229,6 +230,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "Tillatt", "prompt.action.sandbox.unrestricted": "Ubegrenset", "prompt.action.sandbox.description.enabled": "Skrivetilgang er begrenset til prosjekt- og Kilo-mappene.", + "prompt.action.sandbox.description.escalation": + "Tillatelsesregler og automatisk godkjenning gjelder inne i sandkassen. Kommandoer som må forlate den, spør alltid.", "prompt.action.sandbox.description.disabled": "Klikk for å begrense skrivetilgang til filsystemet og nettverkstilgang.", "prompt.action.sandbox.description.disabledNetworkAllowed": @@ -276,9 +279,9 @@ export const dict = { "notification.permission.title": "Tillatelse påkrevd", "notification.permission.titleSubagent": "Tillatelse påkrevd (underagent)", "notification.permission.titleSkillShell": "Kjøre skallkommandoer fra ferdigheten «{{skill}}»?", - "notification.permission.titleSandboxEscalation": "Tillate Git-operasjon utenfor sandkassen?", + "notification.permission.titleSandboxEscalation": "Kjør utenfor sandkassen?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "Dette kjører hele kommandoen uten begrensninger for filsystem og nettverk, kun for denne kommandoen. Git må skrive til .git, som er skrivebeskyttet i sandkassen og ligger utenfor arbeidstreet i et koblet worktree. Bash-tillatelsesregler og automatisk godkjenning godkjenner aldri denne forespørselen automatisk.", "ui.permission.manageAutoApprove": "Administrer regler for automatisk godkjenning", "ui.permission.reject": "Avvis", "ui.permission.feedbackPlaceholder": "Fortell Kilo hva den skal gjøre annerledes", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts index 2c90b01be1b9..9801c931e49a 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts @@ -208,6 +208,7 @@ export const dict = { "Automatyczne zatwierdzanie jest włączone. Prośby o uprawnienia będą zatwierdzane automatycznie.", "prompt.action.autoApprove.disabled": "Automatyczne zatwierdzanie jest wyłączone. Kliknij, aby automatycznie zatwierdzać prośby o uprawnienia.", + "prompt.action.autoApprove.sandboxExcluded": "Żądania eskalacji piaskownicy są zawsze wykluczone.", "prompt.action.enhanceDescription": "Przycisk 'Ulepsz podpowiedź' pomaga ulepszyć Twoją prośbę, dostarczając dodatkowy kontekst, wyjaśnienia lub przeformułowania. Spróbuj wpisać prośbę tutaj i kliknij przycisk ponownie, aby zobaczyć, jak to działa.", "prompt.action.indexing": "Ustawienia indeksowania", @@ -226,6 +227,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "Dozwolona", "prompt.action.sandbox.unrestricted": "Nieograniczony", "prompt.action.sandbox.description.enabled": "Zapisy są ograniczone do katalogów projektu i Kilo.", + "prompt.action.sandbox.description.escalation": + "Reguły uprawnień i automatyczne zatwierdzanie obowiązują wewnątrz piaskownicy. Polecenia, które muszą ją opuścić, zawsze pytają.", "prompt.action.sandbox.description.disabled": "Kliknij, aby ograniczyć zapisy w systemie plików i dostęp do sieci.", "prompt.action.sandbox.description.disabledNetworkAllowed": "Kliknij, aby ograniczyć zapisy w systemie plików. Ustawienia sandboxa nadal zezwalają na dostęp do sieci.", @@ -270,9 +273,9 @@ export const dict = { "notification.permission.title": "Wymagane uprawnienie", "notification.permission.titleSubagent": "Wymagane uprawnienie (podagent)", "notification.permission.titleSkillShell": "Uruchomić polecenia powłoki z umiejętności „{{skill}}”?", - "notification.permission.titleSandboxEscalation": "Zezwolić na operację Git poza piaskownicą?", + "notification.permission.titleSandboxEscalation": "Uruchomić poza piaskownicą?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "Spowoduje to uruchomienie całego polecenia bez ograniczeń systemu plików i sieci, tylko dla tego polecenia. Git musi zapisywać w .git, który jest tylko do odczytu w piaskownicy i znajduje się poza drzewem roboczym w połączonym worktree. Reguły zezwoleń Bash i automatyczne zatwierdzanie nigdy nie zatwierdzają tego żądania automatycznie.", "ui.permission.manageAutoApprove": "Zarządzaj regułami automatycznego zatwierdzania", "ui.permission.reject": "Odrzuć", "ui.permission.feedbackPlaceholder": "Powiedz Kilo, co zrobić inaczej", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts index 77ff8fab51c7..459e356cb352 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ru.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts @@ -206,6 +206,7 @@ export const dict = { "prompt.action.autoApprove.enabled": "Автоодобрение включено. Запросы разрешений будут одобряться автоматически.", "prompt.action.autoApprove.disabled": "Автоодобрение отключено. Нажмите, чтобы автоматически одобрять запросы разрешений.", + "prompt.action.autoApprove.sandboxExcluded": "Запросы на выход из песочницы всегда исключены.", "prompt.action.indexing": "Настройки индексации", "prompt.action.enhanceDescription": "Кнопка 'Улучшить запрос' помогает сделать ваш запрос лучше, предоставляя дополнительный контекст, уточнения или переформулировку. Попробуйте ввести запрос и снова нажать кнопку, чтобы увидеть, как это работает.", @@ -223,6 +224,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "Разрешена", "prompt.action.sandbox.unrestricted": "Без ограничений", "prompt.action.sandbox.description.enabled": "Запись разрешена только в каталогах проекта и Kilo.", + "prompt.action.sandbox.description.escalation": + "Правила разрешений и автоодобрение действуют внутри песочницы. Команды, которым нужно выйти из неё, всегда спрашивают.", "prompt.action.sandbox.description.disabled": "Нажмите, чтобы ограничить запись в файловую систему и доступ к сети.", "prompt.action.sandbox.description.disabledNetworkAllowed": "Нажмите, чтобы ограничить запись в файловую систему. Доступ к сети останется разрешённым согласно настройкам песочницы.", @@ -267,9 +270,9 @@ export const dict = { "notification.permission.title": "Требуется разрешение", "notification.permission.titleSubagent": "Требуется разрешение (субагент)", "notification.permission.titleSkillShell": "Выполнить команды оболочки из навыка «{{skill}}»?", - "notification.permission.titleSandboxEscalation": "Разрешить операцию Git за пределами песочницы?", + "notification.permission.titleSandboxEscalation": "Выполнить вне песочницы?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "Команда целиком выполняется без ограничений файловой системы и сети, только для этой команды. Git должен записывать в .git, который доступен только для чтения в песочнице и находится вне рабочего дерева в связанном worktree. Правила разрешений Bash и автоодобрение никогда не одобряют этот запрос автоматически.", "ui.permission.manageAutoApprove": "Управление правилами автоодобрения", "ui.permission.reject": "Отклонить", "ui.permission.feedbackPlaceholder": "Скажите Kilo, что сделать иначе", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/th.ts b/packages/kilo-vscode/webview-ui/src/i18n/th.ts index 5af765677463..b73d324c46f3 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/th.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/th.ts @@ -205,6 +205,7 @@ export const dict = { "prompt.action.autoApprove.disable": "ปิดใช้การอนุมัติอัตโนมัติ", "prompt.action.autoApprove.enabled": "เปิดใช้การอนุมัติอัตโนมัติแล้ว คำขอสิทธิ์จะได้รับการอนุมัติโดยอัตโนมัติ", "prompt.action.autoApprove.disabled": "ปิดใช้การอนุมัติอัตโนมัติแล้ว คลิกเพื่ออนุมัติคำขอสิทธิ์โดยอัตโนมัติ", + "prompt.action.autoApprove.sandboxExcluded": "พร้อมท์การออกจากแซนด์บ็อกซ์จะถูกยกเว้นเสมอ", "prompt.action.enhanceDescription": "ปุ่ม 'ปรับปรุงพรอมต์' ช่วยปรับปรุงพรอมต์ของคุณโดยให้บริบทเพิ่มเติม ชี้แจง หรือเขียนใหม่ ลองพิมพ์พรอมต์ที่นี่และคลิกปุ่มอีกครั้งเพื่อดูว่ามันทำงานอย่างไร", "prompt.action.indexing": "การตั้งค่าการสร้างดัชนี", @@ -223,6 +224,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "อนุญาต", "prompt.action.sandbox.unrestricted": "ไม่จำกัด", "prompt.action.sandbox.description.enabled": "เขียนได้เฉพาะในโฟลเดอร์โปรเจ็กต์และ Kilo", + "prompt.action.sandbox.description.escalation": + "กฎสิทธิ์และการอนุมัติอัตโนมัติมีผลภายในแซนด์บ็อกซ์ คำสั่งที่ต้องออกจากแซนด์บ็อกซ์จะถามเสมอ", "prompt.action.sandbox.description.disabled": "คลิกเพื่อจำกัดการเขียนในระบบไฟล์และการเข้าถึงเครือข่าย", "prompt.action.sandbox.description.disabledNetworkAllowed": "คลิกเพื่อจำกัดการเขียนในระบบไฟล์ การตั้งค่า sandbox ของคุณยังคงอนุญาตให้เข้าถึงเครือข่าย", @@ -267,9 +270,9 @@ export const dict = { "notification.permission.title": "ต้องการสิทธิ์", "notification.permission.titleSubagent": "ต้องการสิทธิ์ (ตัวแทนย่อย)", "notification.permission.titleSkillShell": 'เรียกใช้คำสั่งเชลล์จากสกิล "{{skill}}" หรือไม่?', - "notification.permission.titleSandboxEscalation": "อนุญาตการดำเนินการ Git นอกแซนด์บ็อกซ์หรือไม่?", + "notification.permission.titleSandboxEscalation": "เรียกใช้ภายนอกแซนด์บ็อกซ์หรือไม่?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "การดำเนินการนี้จะรันคำสั่งทั้งหมดโดยไม่มีการจำกัดระบบไฟล์และเครือข่าย สำหรับคำสั่งนี้เท่านั้น Git ต้องเขียนลงใน .git ซึ่งเป็นแบบอ่านอย่างเดียวในแซนด์บ็อกซ์ และอยู่นอก worktree สำหรับ worktree ที่เชื่อมโยง กฎอนุญาตของ Bash และการอนุมัติอัตโนมัติจะไม่อนุมัติพร้อมท์นี้โดยอัตโนมัติ", "ui.permission.manageAutoApprove": "จัดการกฎการอนุมัติอัตโนมัติ", "ui.permission.reject": "ปฏิเสธ", "ui.permission.feedbackPlaceholder": "บอก Kilo ว่าควรทำต่างออกไปอย่างไร", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts index ae2be329f140..ce5b554c1827 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/tr.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/tr.ts @@ -207,6 +207,7 @@ export const dict = { "prompt.action.autoApprove.disable": "Otomatik onayı devre dışı bırak", "prompt.action.autoApprove.enabled": "Otomatik onay etkin. İzin istekleri otomatik olarak onaylanacak.", "prompt.action.autoApprove.disabled": "Otomatik onay devre dışı. İzin isteklerini otomatik onaylamak için tıklayın.", + "prompt.action.autoApprove.sandboxExcluded": "Korumalı alan yükseltme istemleri her zaman hariç tutulur.", "prompt.action.enhanceDescription": "'Komutu Geliştir' düğmesi, ek bağlam, açıklama veya yeniden ifadelendirme sağlayarak komutunuzu iyileştirmeye yardımcı olur. Buraya bir komut yazıp düğmeye tekrar tıklayarak nasıl çalıştığını görebilirsiniz.", "prompt.action.sandbox.enable": "Sandbox'ı etkinleştir", @@ -223,6 +224,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "İzin verildi", "prompt.action.sandbox.unrestricted": "Kısıtlanmamış", "prompt.action.sandbox.description.enabled": "Yazma işlemleri proje ve Kilo dizinleriyle sınırlıdır.", + "prompt.action.sandbox.description.escalation": + "İzin kuralları ve otomatik onay korumalı alan içinde geçerlidir. Korumalı alandan çıkması gereken komutlar her zaman sorar.", "prompt.action.sandbox.description.disabled": "Dosya sistemi yazma işlemlerini ve ağ erişimini kısıtlamak için tıklayın.", "prompt.action.sandbox.description.disabledNetworkAllowed": @@ -268,10 +271,9 @@ export const dict = { "notification.permission.title": "İzin gerekli", "notification.permission.titleSubagent": "İzin gerekli (alt ajan)", "notification.permission.titleSkillShell": "“{{skill}}” becerisindeki kabuk komutları çalıştırılsın mı?", - "notification.permission.titleSandboxEscalation": - "Git işleminin korumalı alan dışında gerçekleştirilmesine izin verilsin mi?", + "notification.permission.titleSandboxEscalation": "Korumalı alan dışında çalıştırılsın mı?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "Bu, tüm komutu dosya sistemi ve ağ kısıtlamaları kaldırılmış olarak yalnızca bu komut için çalıştırır. Git, korumalı alanda salt okunur olan ve bağlı bir worktree'de worktree dışında kalan .git dosyasına yazmalıdır. Bash izin kuralları ve otomatik onay bu istemi hiçbir zaman otomatik olarak onaylamaz.", "ui.permission.manageAutoApprove": "Otomatik Onay Kurallarını Yönet", "ui.permission.reject": "Reddet", "ui.permission.feedbackPlaceholder": "Kilo'ya farklı ne yapması gerektiğini söyleyin", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts index 23d3293ddbdf..58f304b17627 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/uk.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/uk.ts @@ -209,6 +209,7 @@ export const dict = { "prompt.action.autoApprove.enabled": "Автоматичне схвалення увімкнено. Запити дозволів схвалюватимуться автоматично.", "prompt.action.autoApprove.disabled": "Автоматичне схвалення вимкнено. Натисніть, щоб автоматично схвалювати запити дозволів.", + "prompt.action.autoApprove.sandboxExcluded": "Запити на вихід із пісочниці завжди виключено.", "prompt.action.enhanceDescription": "Кнопка 'Покращити запит' допомагає вдосконалити ваш запит, надаючи додатковий контекст, уточнення або перефразування. Введіть запит тут і натисніть кнопку ще раз, щоб побачити, як це працює.", "prompt.action.sandbox.enable": "Увімкнути пісочницю", @@ -225,6 +226,8 @@ export const dict = { "prompt.action.sandbox.network.allowed": "Дозволено", "prompt.action.sandbox.unrestricted": "Без обмежень", "prompt.action.sandbox.description.enabled": "Запис дозволено лише в каталогах проєкту та Kilo.", + "prompt.action.sandbox.description.escalation": + "Правила дозволів і автоматичне схвалення діють усередині пісочниці. Команди, яким потрібно вийти з неї, завжди запитують.", "prompt.action.sandbox.description.disabled": "Натисніть, щоб обмежити запис у файлову систему та доступ до мережі.", "prompt.action.sandbox.description.disabledNetworkAllowed": "Натисніть, щоб обмежити запис у файлову систему. Доступ до мережі залишиться дозволеним відповідно до налаштувань пісочниці.", @@ -271,9 +274,9 @@ export const dict = { "notification.permission.title": "Потрібен дозвіл", "notification.permission.titleSubagent": "Потрібен дозвіл (підагент)", "notification.permission.titleSkillShell": "Виконати команди оболонки з навички «{{skill}}»?", - "notification.permission.titleSandboxEscalation": "Дозволити операцію Git за межами пісочниці?", + "notification.permission.titleSandboxEscalation": "Виконати поза пісочницею?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "Команда повністю виконується без обмежень файлової системи та мережі, лише для цієї команди. Git має записувати в .git, який доступний лише для читання в пісочниці та розташований поза робочим деревом у пов'язаному worktree. Правила дозволів Bash і автоматичне схвалення ніколи не схвалюють цей запит автоматично.", "ui.permission.manageAutoApprove": "Керувати правилами автоматичного схвалення", "ui.permission.reject": "Відхилити", "ui.permission.feedbackPlaceholder": "Скажіть Kilo, що зробити інакше", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts index 8e27a11bca8f..eb7237945d3e 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts @@ -194,6 +194,7 @@ export const dict = { "prompt.action.autoApprove.disable": "禁用自动审批", "prompt.action.autoApprove.enabled": "自动审批已启用。权限请求将自动获批。", "prompt.action.autoApprove.disabled": "自动审批已禁用。点击以自动批准权限请求。", + "prompt.action.autoApprove.sandboxExcluded": "离开沙盒的提示始终被排除。", "prompt.action.send": "发送", "prompt.action.continue": "继续", "prompt.action.send.blocked": "请先回答或忽略待处理的问题", @@ -216,6 +217,7 @@ export const dict = { "prompt.action.sandbox.network.allowed": "允许", "prompt.action.sandbox.unrestricted": "不受限", "prompt.action.sandbox.description.enabled": "写入仅限项目和 Kilo 目录。", + "prompt.action.sandbox.description.escalation": "权限规则和自动审批在沙盒内生效。必须离开沙盒的命令始终会询问。", "prompt.action.sandbox.description.disabled": "点击以限制文件系统写入和网络访问。", "prompt.action.sandbox.description.disabledNetworkAllowed": "点击以限制文件系统写入。根据你的沙盒设置,网络访问仍然允许。", @@ -256,9 +258,9 @@ export const dict = { "notification.permission.title": "需要权限", "notification.permission.titleSubagent": "需要权限(子代理)", "notification.permission.titleSkillShell": "要执行技能「{{skill}}」的 shell 命令吗?", - "notification.permission.titleSandboxEscalation": "要允许在沙盒外执行 Git 操作吗?", + "notification.permission.titleSandboxEscalation": "要在沙盒外运行吗?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "这会移除文件系统和网络限制,运行整条命令,且仅限此命令。Git 必须写入 .git,该路径在沙盒中为只读,且在链接的 worktree 中位于 worktree 之外。Bash 允许规则和自动审批永远不会自动批准此提示。", "ui.permission.manageAutoApprove": "管理自动审批规则", "ui.permission.reject": "拒绝", "ui.permission.feedbackPlaceholder": "告诉 Kilo 应该如何修改", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts index ca52ce9edc1f..66f75769ee1e 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts @@ -200,6 +200,7 @@ export const dict = { "prompt.action.autoApprove.disable": "停用自動核准", "prompt.action.autoApprove.enabled": "自動核准已啟用。權限請求將自動獲准。", "prompt.action.autoApprove.disabled": "自動核准已停用。點擊以自動核准權限請求。", + "prompt.action.autoApprove.sandboxExcluded": "離開沙盒的提示一律被排除。", "prompt.action.enhanceDescription": "「強化提示詞」按鈕可透過提供額外內容、說明或改寫來協助改善提示詞。試著在這裡輸入提示詞,再點選一次按鈕以了解其運作方式。", "prompt.action.sandbox.enable": "啟用沙盒", @@ -215,6 +216,7 @@ export const dict = { "prompt.action.sandbox.network.allowed": "允許", "prompt.action.sandbox.unrestricted": "不受限制", "prompt.action.sandbox.description.enabled": "寫入僅限於專案和 Kilo 目錄。", + "prompt.action.sandbox.description.escalation": "權限規則和自動核准在沙盒內生效。必須離開沙盒的命令一律會詢問。", "prompt.action.sandbox.description.disabled": "點擊以限制檔案系統寫入和網路存取。", "prompt.action.sandbox.description.disabledNetworkAllowed": "點擊以限制檔案系統寫入。沙盒設定仍允許網路存取。", @@ -254,9 +256,9 @@ export const dict = { "notification.permission.title": "需要權限", "notification.permission.titleSubagent": "需要權限(子代理)", "notification.permission.titleSkillShell": "要執行技能「{{skill}}」的 shell 指令嗎?", - "notification.permission.titleSandboxEscalation": "要允許在沙盒外執行 Git 操作嗎?", + "notification.permission.titleSandboxEscalation": "要在沙盒外執行嗎?", "notification.permission.descriptionSandboxEscalation": - "This runs the whole command with filesystem and network restrictions removed, for this command only. Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked worktree. Bash allow rules and auto-approve never approve this prompt automatically.", + "這會移除檔案系統和網路限制,執行整條命令,且僅限此命令。Git 必須寫入 .git,該路徑在沙盒中為唯讀,且在連結的 worktree 中位於 worktree 之外。Bash 允許規則和自動核准永遠不會自動核准此提示。", "ui.permission.manageAutoApprove": "管理自動核准規則", "ui.permission.reject": "拒絕", "ui.permission.feedbackPlaceholder": "告訴 Kilo 應該如何修改", From 97b786a011851c20d1311ac6944c115cdf8b608d Mon Sep 17 00:00:00 2001 From: "kilo-maintainer[bot]" Date: Thu, 17 Sep 2026 09:19:59 +0000 Subject: [PATCH 03/11] chore: update kilo-vscode visual regression baselines --- .../agentmanager/diff-panel-with-diffs-chromium-linux.png | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/agentmanager/diff-panel-with-diffs-chromium-linux.png b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/agentmanager/diff-panel-with-diffs-chromium-linux.png index fa8eca6f616b..2133d836ad09 100644 --- a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/agentmanager/diff-panel-with-diffs-chromium-linux.png +++ b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/agentmanager/diff-panel-with-diffs-chromium-linux.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:17b93700e14fc0021afdbb9e59c6602e07846d4cb87036f58553e66fb4a6a6b0 -size 49779 +oid sha256:fb4560da9763e790d7d77cad379e0d6a5e0c690f8c761e4f099f897243d01698 +size 46695 From 773990aa4360f68891945352b872c0950ee9f179 Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 17 Sep 2026 11:33:28 +0200 Subject: [PATCH 04/11] fix(vscode): refine sandbox escalation translations --- packages/kilo-vscode/webview-ui/src/i18n/ja.ts | 2 +- packages/kilo-vscode/webview-ui/src/i18n/ko.ts | 2 +- packages/kilo-vscode/webview-ui/src/i18n/pl.ts | 8 ++++---- packages/kilo-vscode/webview-ui/src/i18n/zh.ts | 2 +- packages/kilo-vscode/webview-ui/src/i18n/zht.ts | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts index 69151bd17e88..8d6261f2d2a1 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ja.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ja.ts @@ -274,7 +274,7 @@ export const dict = { "notification.permission.titleSkillShell": "スキル「{{skill}}」のシェルコマンドを実行しますか?", "notification.permission.titleSandboxEscalation": "サンドボックス外で実行しますか?", "notification.permission.descriptionSandboxEscalation": - "このコマンド全体を、ファイルシステムとネットワークの制限を外して実行します。このコマンドに限ります。Git は .git に書き込む必要があります。これはサンドボックス内では読み取り専用で、リンクされた worktree では worktree の外にあります。Bash の許可ルールと自動承認がこのプロンプトを自動で承認することはありません。", + "このコマンドに限り、ファイルシステムとネットワークの制限を外してコマンド全体を実行します。Git は .git に書き込む必要があります。.git はサンドボックス内では読み取り専用で、リンクされた worktree では worktree の外にあります。Bash の許可ルールと自動承認がこのプロンプトを自動で承認することはありません。", "ui.permission.manageAutoApprove": "自動承認ルールを管理", "ui.permission.reject": "拒否", "ui.permission.feedbackPlaceholder": "Kilo にどう変更してほしいか伝える", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts index 17db8020caeb..739fba7a666d 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/ko.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/ko.ts @@ -275,7 +275,7 @@ export const dict = { "notification.permission.titleSkillShell": '스킬 "{{skill}}"의 셸 명령을 실행할까요?', "notification.permission.titleSandboxEscalation": "샌드박스 외부에서 실행할까요?", "notification.permission.descriptionSandboxEscalation": - "이 명령 전체를 파일 시스템 및 네트워크 제한 없이 실행하며, 이 명령에만 적용됩니다. Git은 .git에 기록해야 하며, 이 경로는 샌드박스에서 읽기 전용이고 연결된 worktree에서는 worktree 밖에 있습니다. Bash 허용 규칙과 자동 승인은 이 프롬프트를 자동으로 승인하지 않습니다.", + "이 명령에만 적용되며, 파일 시스템 및 네트워크 제한을 해제하고 명령 전체를 실행합니다. Git은 .git에 기록해야 하며, 이 경로는 샌드박스에서 읽기 전용이고 연결된 worktree에서는 해당 worktree 밖에 있습니다. Bash 허용 규칙과 자동 승인은 이 프롬프트를 자동으로 승인하지 않습니다.", "ui.permission.manageAutoApprove": "자동 승인 규칙 관리", "ui.permission.reject": "거부", "ui.permission.feedbackPlaceholder": "Kilo가 다르게 하길 원하는 내용을 알려주세요", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts index 9801c931e49a..5446671414e0 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/pl.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/pl.ts @@ -208,7 +208,7 @@ export const dict = { "Automatyczne zatwierdzanie jest włączone. Prośby o uprawnienia będą zatwierdzane automatycznie.", "prompt.action.autoApprove.disabled": "Automatyczne zatwierdzanie jest wyłączone. Kliknij, aby automatycznie zatwierdzać prośby o uprawnienia.", - "prompt.action.autoApprove.sandboxExcluded": "Żądania eskalacji piaskownicy są zawsze wykluczone.", + "prompt.action.autoApprove.sandboxExcluded": "Żądania wyjścia z sandboxa są zawsze wykluczone.", "prompt.action.enhanceDescription": "Przycisk 'Ulepsz podpowiedź' pomaga ulepszyć Twoją prośbę, dostarczając dodatkowy kontekst, wyjaśnienia lub przeformułowania. Spróbuj wpisać prośbę tutaj i kliknij przycisk ponownie, aby zobaczyć, jak to działa.", "prompt.action.indexing": "Ustawienia indeksowania", @@ -228,7 +228,7 @@ export const dict = { "prompt.action.sandbox.unrestricted": "Nieograniczony", "prompt.action.sandbox.description.enabled": "Zapisy są ograniczone do katalogów projektu i Kilo.", "prompt.action.sandbox.description.escalation": - "Reguły uprawnień i automatyczne zatwierdzanie obowiązują wewnątrz piaskownicy. Polecenia, które muszą ją opuścić, zawsze pytają.", + "Reguły uprawnień i automatyczne zatwierdzanie obowiązują wewnątrz sandboxa. Polecenia, które muszą go opuścić, zawsze pytają.", "prompt.action.sandbox.description.disabled": "Kliknij, aby ograniczyć zapisy w systemie plików i dostęp do sieci.", "prompt.action.sandbox.description.disabledNetworkAllowed": "Kliknij, aby ograniczyć zapisy w systemie plików. Ustawienia sandboxa nadal zezwalają na dostęp do sieci.", @@ -273,9 +273,9 @@ export const dict = { "notification.permission.title": "Wymagane uprawnienie", "notification.permission.titleSubagent": "Wymagane uprawnienie (podagent)", "notification.permission.titleSkillShell": "Uruchomić polecenia powłoki z umiejętności „{{skill}}”?", - "notification.permission.titleSandboxEscalation": "Uruchomić poza piaskownicą?", + "notification.permission.titleSandboxEscalation": "Uruchomić poza sandboxem?", "notification.permission.descriptionSandboxEscalation": - "Spowoduje to uruchomienie całego polecenia bez ograniczeń systemu plików i sieci, tylko dla tego polecenia. Git musi zapisywać w .git, który jest tylko do odczytu w piaskownicy i znajduje się poza drzewem roboczym w połączonym worktree. Reguły zezwoleń Bash i automatyczne zatwierdzanie nigdy nie zatwierdzają tego żądania automatycznie.", + "Spowoduje to uruchomienie całego polecenia bez ograniczeń systemu plików i sieci, tylko dla tego polecenia. Git musi zapisywać w .git, który jest tylko do odczytu w sandboxie i znajduje się poza drzewem roboczym w połączonym worktree. Reguły zezwoleń Bash i automatyczne zatwierdzanie nigdy nie zatwierdzają tego żądania automatycznie.", "ui.permission.manageAutoApprove": "Zarządzaj regułami automatycznego zatwierdzania", "ui.permission.reject": "Odrzuć", "ui.permission.feedbackPlaceholder": "Powiedz Kilo, co zrobić inaczej", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts index eb7237945d3e..0ca68a92040d 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zh.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zh.ts @@ -260,7 +260,7 @@ export const dict = { "notification.permission.titleSkillShell": "要执行技能「{{skill}}」的 shell 命令吗?", "notification.permission.titleSandboxEscalation": "要在沙盒外运行吗?", "notification.permission.descriptionSandboxEscalation": - "这会移除文件系统和网络限制,运行整条命令,且仅限此命令。Git 必须写入 .git,该路径在沙盒中为只读,且在链接的 worktree 中位于 worktree 之外。Bash 允许规则和自动审批永远不会自动批准此提示。", + "这会移除文件系统和网络限制,运行整条命令,且仅限此命令。Git 必须写入 .git,该路径在沙盒中为只读,且在链接的 worktree 中位于该 worktree 之外。Bash 允许规则和自动审批永远不会自动批准此提示。", "ui.permission.manageAutoApprove": "管理自动审批规则", "ui.permission.reject": "拒绝", "ui.permission.feedbackPlaceholder": "告诉 Kilo 应该如何修改", diff --git a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts index 66f75769ee1e..e42da628f2cc 100644 --- a/packages/kilo-vscode/webview-ui/src/i18n/zht.ts +++ b/packages/kilo-vscode/webview-ui/src/i18n/zht.ts @@ -258,7 +258,7 @@ export const dict = { "notification.permission.titleSkillShell": "要執行技能「{{skill}}」的 shell 指令嗎?", "notification.permission.titleSandboxEscalation": "要在沙盒外執行嗎?", "notification.permission.descriptionSandboxEscalation": - "這會移除檔案系統和網路限制,執行整條命令,且僅限此命令。Git 必須寫入 .git,該路徑在沙盒中為唯讀,且在連結的 worktree 中位於 worktree 之外。Bash 允許規則和自動核准永遠不會自動核准此提示。", + "這會移除檔案系統和網路限制,執行整條命令,且僅限此命令。Git 必須寫入 .git,該路徑在沙盒中為唯讀,且在連結的 worktree 中位於該 worktree 之外。Bash 允許規則和自動核准永遠不會自動核准此提示。", "ui.permission.manageAutoApprove": "管理自動核准規則", "ui.permission.reject": "拒絕", "ui.permission.feedbackPlaceholder": "告訴 Kilo 應該如何修改", From 710762152587f5c28bfa17602afd167e23bec623 Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 17 Sep 2026 11:33:29 +0200 Subject: [PATCH 05/11] test(vscode): skip flaky diff-panel-with-diffs visual baseline --- packages/kilo-vscode/tests/visual-regression.spec.mts | 6 ++++-- packages/kilo-vscode/tests/visual-regression.spec.ts | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/kilo-vscode/tests/visual-regression.spec.mts b/packages/kilo-vscode/tests/visual-regression.spec.mts index ea960c1fe4e8..d4818de080e3 100644 --- a/packages/kilo-vscode/tests/visual-regression.spec.mts +++ b/packages/kilo-vscode/tests/visual-regression.spec.mts @@ -80,14 +80,16 @@ async function settle(page: Page) { // The question-resolve stability story exists to measure geometry across the // request-resolve/tool-complete gap and carries debug toggle buttons, so it is // not a meaningful appearance baseline. -// The diff-panel scroll-up story settles at a slightly different scroll offset -// between runs, so its baseline flips by a few pixels even without source changes. +// Some diff-panel stories settle at a slightly different scroll offset or render +// timing between runs, so their baselines flip by a few pixels even without +// source changes. const SKIP = new Set([ "labs-tool-call-lab--question-resolve-stability", "agentmanager--diff-panel-cached-worktree-switch", "agentmanager--diff-panel-viewport-loading", "agentmanager--diff-panel-interrupted-loading", "agentmanager--diff-panel-scroll-up", + "agentmanager--diff-panel-with-diffs", "agentmanager--file-tree-virtualized-large", "agentmanager--worktree-item-busy", "agentmanager--full-screen-diff-agent-edit-scroll", diff --git a/packages/kilo-vscode/tests/visual-regression.spec.ts b/packages/kilo-vscode/tests/visual-regression.spec.ts index 38663fdc2416..c2186e911451 100644 --- a/packages/kilo-vscode/tests/visual-regression.spec.ts +++ b/packages/kilo-vscode/tests/visual-regression.spec.ts @@ -83,8 +83,9 @@ async function settle(page: Page) { // The question-resolve stability story exists to measure geometry across the // request-resolve/tool-complete gap and carries debug toggle buttons, so it is // not a meaningful appearance baseline. -// The diff-panel scroll-up story settles at a slightly different scroll offset -// between runs, so its baseline flips by a few pixels even without source changes. +// Some diff-panel stories settle at a slightly different scroll offset or render +// timing between runs, so their baselines flip by a few pixels even without +// source changes. const SKIP = new Set([ "chat--chat-view-session-dock-stability", "labs-tool-call-lab--question-resolve-stability", @@ -92,6 +93,7 @@ const SKIP = new Set([ "agentmanager--diff-panel-viewport-loading", "agentmanager--diff-panel-interrupted-loading", "agentmanager--diff-panel-scroll-up", + "agentmanager--diff-panel-with-diffs", "agentmanager--file-tree-virtualized-large", "agentmanager--worktree-item-busy", "agentmanager--full-screen-diff-agent-edit-scroll", From 206987083e5c9549bc72618741bb2470d3c71a16 Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 17 Sep 2026 12:16:43 +0200 Subject: [PATCH 06/11] fix(ci): bound Zig download to avoid sandbox helper job timeout --- .github/actions/setup-linux-sandbox/action.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/actions/setup-linux-sandbox/action.yml b/.github/actions/setup-linux-sandbox/action.yml index 6e3a78042045..7ba359f8baac 100644 --- a/.github/actions/setup-linux-sandbox/action.yml +++ b/.github/actions/setup-linux-sandbox/action.yml @@ -6,7 +6,9 @@ runs: steps: - name: Setup Zig run: | - curl --fail --location --retry 3 \ + curl --fail --location \ + --connect-timeout 15 --max-time 120 \ + --retry 3 --retry-delay 5 --retry-all-errors \ https://ziglang.org/download/0.14.0/zig-linux-x86_64-0.14.0.tar.xz \ --output "$RUNNER_TEMP/zig.tar.xz" echo "473ec26806133cf4d1918caf1a410f8403a13d979726a9045b421b685031a982 $RUNNER_TEMP/zig.tar.xz" | sha256sum --check --status From 200859fac6c96c253188ca80068f56e672b9afcf Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 17 Sep 2026 13:29:56 +0200 Subject: [PATCH 07/11] test(vscode): quarantine flaky diff width-change scroll check in CI --- packages/kilo-vscode/tests/diff-scroll-preservation.spec.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/kilo-vscode/tests/diff-scroll-preservation.spec.ts b/packages/kilo-vscode/tests/diff-scroll-preservation.spec.ts index e38ff344e4de..0669423e32bd 100644 --- a/packages/kilo-vscode/tests/diff-scroll-preservation.spec.ts +++ b/packages/kilo-vscode/tests/diff-scroll-preservation.spec.ts @@ -371,6 +371,12 @@ test("keeps the inline diff position stable while scrolling upward", async ({ pa }) test("keeps the inline diff position stable when the row width changes", async ({ page }) => { + // The width-change measurement depends on Linux virtualization timing and + // intermittently clamps the scroll position by a full panel height, even though + // the same assertion passes locally and in most CI runs. The shared + // diff-panel-scroll-up story is already quarantined in visual-regression.spec.ts + // for the same nondeterministic scroll offset. + test.skip(!!process.env["CI"], "Flaky Linux virtualization timing on the diff-panel-scroll-up story") await page.setViewportSize({ width: 900, height: 760 }) await page.goto(inlineStoryUrl(), { waitUntil: "load" }) await disableAnimations(page) From 2439f503e7d27e075f02673500bbe7838af43ecd Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 17 Sep 2026 13:50:34 +0200 Subject: [PATCH 08/11] fix(tui): explain sandbox escalation prompts accurately --- packages/tui/src/routes/session/permission.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/tui/src/routes/session/permission.tsx b/packages/tui/src/routes/session/permission.tsx index db41ea7ba490..b67b716affbe 100644 --- a/packages/tui/src/routes/session/permission.tsx +++ b/packages/tui/src/routes/session/permission.tsx @@ -356,13 +356,23 @@ export function PermissionPrompt(props: { request: PermissionRequest; directory? ) return { icon: "!", - title: "Allow Git operation outside the sandbox?", + title: "Run outside the sandbox", body: ( {"$ " + command} - This approval applies to this command only. + + This runs the whole command with filesystem and network restrictions removed, for this command + only. + + + Git must write to .git, which is read-only in the sandbox and outside the worktree in a linked + worktree. + + + Bash allow rules and auto-approve never approve this prompt automatically. + ), } From a9c06fa504e24825d51f1ea9a5200962a2990083 Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 17 Sep 2026 13:54:53 +0200 Subject: [PATCH 09/11] Revert "test(vscode): skip flaky diff-panel-with-diffs visual baseline" This reverts commit 710762152587f5c28bfa17602afd167e23bec623. --- packages/kilo-vscode/tests/visual-regression.spec.mts | 6 ++---- packages/kilo-vscode/tests/visual-regression.spec.ts | 6 ++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/kilo-vscode/tests/visual-regression.spec.mts b/packages/kilo-vscode/tests/visual-regression.spec.mts index d4818de080e3..ea960c1fe4e8 100644 --- a/packages/kilo-vscode/tests/visual-regression.spec.mts +++ b/packages/kilo-vscode/tests/visual-regression.spec.mts @@ -80,16 +80,14 @@ async function settle(page: Page) { // The question-resolve stability story exists to measure geometry across the // request-resolve/tool-complete gap and carries debug toggle buttons, so it is // not a meaningful appearance baseline. -// Some diff-panel stories settle at a slightly different scroll offset or render -// timing between runs, so their baselines flip by a few pixels even without -// source changes. +// The diff-panel scroll-up story settles at a slightly different scroll offset +// between runs, so its baseline flips by a few pixels even without source changes. const SKIP = new Set([ "labs-tool-call-lab--question-resolve-stability", "agentmanager--diff-panel-cached-worktree-switch", "agentmanager--diff-panel-viewport-loading", "agentmanager--diff-panel-interrupted-loading", "agentmanager--diff-panel-scroll-up", - "agentmanager--diff-panel-with-diffs", "agentmanager--file-tree-virtualized-large", "agentmanager--worktree-item-busy", "agentmanager--full-screen-diff-agent-edit-scroll", diff --git a/packages/kilo-vscode/tests/visual-regression.spec.ts b/packages/kilo-vscode/tests/visual-regression.spec.ts index c2186e911451..38663fdc2416 100644 --- a/packages/kilo-vscode/tests/visual-regression.spec.ts +++ b/packages/kilo-vscode/tests/visual-regression.spec.ts @@ -83,9 +83,8 @@ async function settle(page: Page) { // The question-resolve stability story exists to measure geometry across the // request-resolve/tool-complete gap and carries debug toggle buttons, so it is // not a meaningful appearance baseline. -// Some diff-panel stories settle at a slightly different scroll offset or render -// timing between runs, so their baselines flip by a few pixels even without -// source changes. +// The diff-panel scroll-up story settles at a slightly different scroll offset +// between runs, so its baseline flips by a few pixels even without source changes. const SKIP = new Set([ "chat--chat-view-session-dock-stability", "labs-tool-call-lab--question-resolve-stability", @@ -93,7 +92,6 @@ const SKIP = new Set([ "agentmanager--diff-panel-viewport-loading", "agentmanager--diff-panel-interrupted-loading", "agentmanager--diff-panel-scroll-up", - "agentmanager--diff-panel-with-diffs", "agentmanager--file-tree-virtualized-large", "agentmanager--worktree-item-busy", "agentmanager--full-screen-diff-agent-edit-scroll", From 0c439cc60b20f459363a1024c2b157ed1ab3a1f3 Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 17 Sep 2026 13:54:54 +0200 Subject: [PATCH 10/11] Revert "test(vscode): quarantine flaky diff width-change scroll check in CI" This reverts commit 200859fac6c96c253188ca80068f56e672b9afcf. --- packages/kilo-vscode/tests/diff-scroll-preservation.spec.ts | 6 ------ 1 file changed, 6 deletions(-) diff --git a/packages/kilo-vscode/tests/diff-scroll-preservation.spec.ts b/packages/kilo-vscode/tests/diff-scroll-preservation.spec.ts index 0669423e32bd..e38ff344e4de 100644 --- a/packages/kilo-vscode/tests/diff-scroll-preservation.spec.ts +++ b/packages/kilo-vscode/tests/diff-scroll-preservation.spec.ts @@ -371,12 +371,6 @@ test("keeps the inline diff position stable while scrolling upward", async ({ pa }) test("keeps the inline diff position stable when the row width changes", async ({ page }) => { - // The width-change measurement depends on Linux virtualization timing and - // intermittently clamps the scroll position by a full panel height, even though - // the same assertion passes locally and in most CI runs. The shared - // diff-panel-scroll-up story is already quarantined in visual-regression.spec.ts - // for the same nondeterministic scroll offset. - test.skip(!!process.env["CI"], "Flaky Linux virtualization timing on the diff-panel-scroll-up story") await page.setViewportSize({ width: 900, height: 760 }) await page.goto(inlineStoryUrl(), { waitUntil: "load" }) await disableAnimations(page) From 4ff396edf3901054a63d50e60509e684fa994c9d Mon Sep 17 00:00:00 2001 From: marius-kilocode Date: Thu, 17 Sep 2026 13:55:08 +0200 Subject: [PATCH 11/11] chore: restore diff-panel baseline to main --- .../agentmanager/diff-panel-with-diffs-chromium-linux.png | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/agentmanager/diff-panel-with-diffs-chromium-linux.png b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/agentmanager/diff-panel-with-diffs-chromium-linux.png index 2133d836ad09..fa8eca6f616b 100644 --- a/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/agentmanager/diff-panel-with-diffs-chromium-linux.png +++ b/packages/kilo-docs/public/img/screenshot-tests/kilo-vscode/visual-regression/agentmanager/diff-panel-with-diffs-chromium-linux.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fb4560da9763e790d7d77cad379e0d6a5e0c690f8c761e4f099f897243d01698 -size 46695 +oid sha256:17b93700e14fc0021afdbb9e59c6602e07846d4cb87036f58553e66fb4a6a6b0 +size 49779