Skip to content

🛡️ 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):

FlagSignificadoTraducción al motor
filesystemPermitir lectura/escritura de archivos en el workspace.Habilita Read / Write / Edit / NotebookEdit.
shellPermitir ejecución de comandos de terminal.Habilita Bash / PowerShell.
networkPermitir acceso a internet (fetch, browser, MCP remotos).Habilita WebFetch / WebSearch.
confirmationsPedir 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 CLICuándo se usa
defaultSafeEdit con confirmations: true. Pide aprobación por acción.
bypassPermissionsFullPower con confirmations: false. Ejecuta sin confirmación.

Nota: los modos plan, acceptEdits y dontAsk del CLI no están expuestos aún en la UI del Desktop; la app solo traduce a default y bypassPermissions por 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: true en chats de revisión: el agente puede hacer fetch de URLs (potenciales fugas de contexto del workspace). Crea un chat aparte para code review con network: false.
  • filesystem: true en workspaces compartidos: el agente puede modificar archivos. Asegúrate de tener un sistema de control de versiones (git) antes de delegar ediciones masivas.

Desarrollado con pasión e Inteligencia Artificial.