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 0be855159151..e2c0a3ecac44 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<{
)}
+
+
+
{(cmd) => }
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 14343e4d4e82..4aad1eff4471 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 46cd5cb96301..c3548e3548df 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,7 +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":
+ "يُشغّل هذا الأمر بالكامل مع إزالة قيود نظام الملفات والشبكة، لهذا الأمر فقط. يجب أن يكتب 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 bc48294afdc3..8b816fd4abc2 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,7 +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":
+ "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 a115ef0be382..6d6952c23f88 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,7 +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":
+ "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 87d579b87741..bdc7c080c927 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,7 +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":
+ "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 41229b5c4bfa..835a1df3dd11 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,7 +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":
+ "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 7964fabedd5f..6dad970ebd11 100644
--- a/packages/kilo-vscode/webview-ui/src/i18n/en.ts
+++ b/packages/kilo-vscode/webview-ui/src/i18n/en.ts
@@ -204,6 +204,7 @@ export const dict = {
"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.sandboxExcluded": "Sandbox escalation prompts are always excluded.",
"prompt.action.sandbox.enable": "Enable sandbox",
"prompt.action.sandbox.disable": "Disable sandbox",
"prompt.action.sandbox.enabled":
@@ -219,6 +220,8 @@ export const dict = {
"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.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.",
@@ -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 915594c30394..d090248c0ae4 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,7 +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":
+ "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 9272e66ade5f..419304885034 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,7 +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":
+ "این کل فرمان را با حذف محدودیتهای فایلسیستم و شبکه، فقط برای همین فرمان اجرا میکند. 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 72e87332fd83..634cc4bbe121 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,7 +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":
+ "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 e85c0a2509b4..08a67d12ca73 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,7 +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":
+ "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",
@@ -850,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 de65ccaa7689..273dfa2639cd 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,7 +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":
+ "このコマンドに限り、ファイルシステムとネットワークの制限を外してコマンド全体を実行します。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 430643a20a77..f99a17d081b4 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,7 +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":
+ "이 명령에만 적용되며, 파일 시스템 및 네트워크 제한을 해제하고 명령 전체를 실행합니다. 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 0696402f02d9..82f61155da10 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,7 +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":
+ "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 89911956c2b9..8bc95c078318 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,7 +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":
+ "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 f1723ea00f4d..f777d260ad8a 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 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",
@@ -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 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.",
@@ -270,7 +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 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 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/ru.ts b/packages/kilo-vscode/webview-ui/src/i18n/ru.ts
index 061a0996d1e5..e9ca04207346 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,7 +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":
+ "Команда целиком выполняется без ограничений файловой системы и сети, только для этой команды. 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 f38304d23ec1..32c88f1616b7 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,7 +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":
+ "การดำเนินการนี้จะรันคำสั่งทั้งหมดโดยไม่มีการจำกัดระบบไฟล์และเครือข่าย สำหรับคำสั่งนี้เท่านั้น 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 b0435bb3e0a8..35d4bc5d0723 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,8 +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":
+ "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 d52f9a75fac6..6a15fb16916b 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,7 +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":
+ "Команда повністю виконується без обмежень файлової системи та мережі, лише для цієї команди. 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 7776da807c29..260a67af77e6 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,7 +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":
+ "这会移除文件系统和网络限制,运行整条命令,且仅限此命令。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 2f5d0c52a715..94ac50a21c8b 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,7 +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":
+ "這會移除檔案系統和網路限制,執行整條命令,且僅限此命令。Git 必須寫入 .git,該路徑在沙盒中為唯讀,且在連結的 worktree 中位於該 worktree 之外。Bash 允許規則和自動核准永遠不會自動核准此提示。",
"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"])
})
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.
+
),
}