🛡️ Permisos (Desktop)
Esta página documenta los flags de permisos del chat y los modos de ejecución asociados en Context Code Desktop. Para la configuración por chat, abre el panel ChatConfigEditor → Permissions. Para configuración global: /desktop/configuracion.
🔑 Flags de permisos
El chat tiene 4 flags booleanos (en src/lib/persistence.ts:84-105):
| Flag | Significado | Traducción al motor |
|---|---|---|
filesystem | Permitir lectura/escritura de archivos en el workspace. | Habilita Read / Write / Edit / NotebookEdit. |
shell | Permitir ejecución de comandos de terminal. | Habilita Bash / PowerShell. |
network | Permitir acceso a internet (fetch, browser, MCP remotos). | Habilita WebFetch / WebSearch. |
confirmations | Pedir confirmación interactiva antes de cada acción. | Activa permissionMode: "default". |
🎚️ Presets de permisos
Tres presets listos (src/lib/persistence.ts:107-135):
ReadOnly
filesystem: false,shell: false,network: false,confirmations: true.- El agente solo puede leer; útil para code review pasivo.
SafeEdit (default)
- Todo
true,confirmations: true. - Permite editar/ejecutar/consultar red, pero pide confirmación caso por caso.
FullPower
- Todo
true,confirmations: false. - Ejecuta de forma autónoma sin pedir confirmación. Equivale al flag CLI
--dangerously-skip-permissions.
🧭 Modos de ejecución del motor
Los flags se traducen a permissionMode enviado al motor (core/engine.rs:573):
| Modo CLI | Cuándo se usa |
|---|---|
default | SafeEdit con confirmations: true. Pide aprobación por acción. |
bypassPermissions | FullPower con confirmations: false. Ejecuta sin confirmación. |
Nota: los modos
plan,acceptEditsydontAskdel CLI no están expuestos aún en la UI del Desktop; la app solo traduce adefaultybypassPermissionspor ahora.
✅ Aprobaciones en vivo
Cuando el motor pide aprobación, la UI la muestra como targeta bloqueante sobre el Composer:
- Texto de la acción (ej. "Borrar archivo
src/foo.ts"). - Botones:
Aprobar/Rechazar/Aprobar siempre esta sesión. - Si la sesión tiene
confirmations: false, la aprobación no aparece y la acción se ejecuta directo.
PlanPanel se muestra cuando el chat está en modo plan: el agente propone un plan de pasos y solo ejecuta tras onPlanLaunch.
🔌 Permisos por subagente
En Plan/Orquestación, cada subagente puede tener sus propios permisos (core/engine.rs:69,125,193,279,375-381,573,1270,1308,1325,1343):
- Se evalúan antes de ejecutar cada tool call del subagente.
- Si un subagente viola su scope, se aborta y el orquestador decide reasignar o descartar.
🚨 Riesgos y recomendaciones
FullPower+ bridge móvil: si la app está enlazada a WhatsApp/Telegram, un comando enviado por el bridge se ejecuta sin confirmación. Úsalo solo en entornos controlados.network: trueen chats de revisión: el agente puede hacer fetch de URLs (potenciales fugas de contexto del workspace). Crea un chat aparte para code review connetwork: false.filesystem: trueen workspaces compartidos: el agente puede modificar archivos. Asegúrate de tener un sistema de control de versiones (git) antes de delegar ediciones masivas.
