Solución de problemas

Este capítulo está organizado por síntoma. Cada entrada indica la causa probable y los pasos para corregirla. Empieza por Primera parada: registros, estado de salud y estado de la app — casi todos los diagnósticos siguientes se apoyan en una de esas tres fuentes — y luego salta a la sección que coincida con lo que estás viendo.

Dos hechos subyacen a la mayor parte de lo que sigue. Primero, un espacio de trabajo es una sandbox persistente: su disco de sistema (disk.img) y su home de Linux (home.img) sobreviven entre lanzamientos, así que un problema en uno de ellos no se cura simplemente relanzando. Segundo, Bromure Agentic Coding aplica la política de seguridad en el anfitrión, antes de que el tráfico llegue a la VM — así que los bloqueos y errores que aparecen "dentro" del invitado suelen ser el proxy del anfitrión hablando, y se resuelven en la app, no en la VM.

Primera parada: registros, estado de salud y estado de la app

Antes de cambiar nada, averigua qué está reportando la propia app.

El registro de seguridad

Abre VentanaRegistro de seguridad…. Esto es un seguimiento en vivo de cada evento de seguridad que emite el proxy del anfitrión: búsquedas de cadena de suministro y bloqueos 451, eliminación de scripts de instalación, detecciones de inyección de prompts, intercambios de credenciales y avisos de fuga, cambios de Fusion y de enrutamiento, y eventos de acceso remoto. Usa el campo Filtrar… para acotar a un nombre de paquete, anfitrión o espacio de trabajo, y desmarca Autodesplazamiento para mantener tu posición mientras lees.

Nota: El registro de seguridad es un búfer circular en memoria de aproximadamente 5.000 líneas y no persiste entre reinicios de la app. Si necesitas una copia duradera — o estás persiguiendo algo que hace que la app se bloquee — lanza bromure-cli desde una terminal (sección siguiente); cada línea de registro también se replica a stderr.

Capturar stderr desde una terminal

La app replica sus registros a la salida de error estándar. Lanzarla desde una terminal te da un registro duradero y copiable que sobrevive a un reinicio o a un bloqueo de la app:

"/Applications/Bromure Agentic Coding.app/Contents/MacOS/bromure-cli" run

Para más detalle, define una variable de depuración antes del comando (consulta el Apéndice):

  • BROMURE_AC_DEBUG=1 — depuración con marca de tiempo para el motor de automatización, los clasificadores de inyección y la canalización de trazas.
  • BROMURE_CLI_DEBUG=1 — diagnósticos de conexión del socket de control para los comandos de la CLI.
  • BROMURE_REPAIR_DEBUG=1 — diagnósticos del proxy de reparación de inferencia local, añadidos a /tmp/bromure-repair.log.

La comprobación de salud de la automatización (GET /health)

La app ejecuta un socket de control exclusivo del propietario en ~/Library/Application Support/BromureAC/control.sock siempre que está en marcha. Puedes confirmar que la app está viva y respondiendo pidiéndole su estado de salud, que devuelve un pequeño objeto JSON:

curl --unix-socket "$HOME/Library/Application Support/BromureAC/control.sock" http://localhost/health
{ "status": "ok", "service": "bromure-ac-automation", "debugEnabled": false }

Si has activado el servidor de automatización de loopback (PreferenciasAutomatización, desactivado por defecto), el mismo endpoint es accesible por TCP en el puerto configurado — 9223 por defecto:

curl http://127.0.0.1:9223/health

Una conexión rechazada significa que la app (o su agente headless) no está en marcha; bromure-cli vm ls iniciará el agente en segundo plano bajo demanda y es otra comprobación rápida de vitalidad. El indicador debugEnabled reporta si BROMURE_DEBUG_CLAUDE desbloqueó los endpoints de depuración.

El registro de la consola de configuración

Durante la instalación de una imagen base, la ventana de configuración tiene un desplegable contraído Salida de la consola que transmite el registro sin procesar del instalador, con un botón Copiar. Despliégalo para observar el progreso, y copia el registro completo si necesitas adjuntarlo a un informe de error. Solo las últimas 100 líneas permanecen en pantalla, así que copia antes de que la ventana se cierre.

Configuración e instalación de la imagen base

La app no puede ejecutar ningún espacio de trabajo hasta que exista una imagen base de Linux. El primer lanzamiento muestra la ventana Bienvenido a Bromure Agentic Coding; al hacer clic en Comenzar se ejecuta la misma instalación que bromure-cli init. El flujo completo está documentado en Instalación; esta sección cubre qué hacer cuando falla.

La ventana Bienvenido a Bromure Agentic Coding, con una descripción de un párrafo de la configuración inicial y un botón Comenzar

La descarga precompilada falla o se atasca

Causa. La ruta preferida descarga una imagen firmada y comprimida con gzip (~3 GB) desde https://dl.bromure.io, verifica su SHA-256 y la expande. Una interrupción de red, un contratiempo de la CDN o una discrepancia de suma de comprobación la abortan. La descarga ya reintenta hasta tres veces, volviendo a obtener el catálogo entre intentos (la publicación semanal puede eliminar la compilación anterior a mitad de descarga).

Solución. Observa la píldora de estado y la Salida de la consola en la ventana de configuración. Ante un fallo del lado de la descarga, la GUI muestra una alerta Error en la descarga de la imagen que ofrece Compilar localmente o Cancelar:

  1. Si estás en línea y fue un fallo transitorio, descártalo y reintenta desde el menú de la app: Recompilar imagen base…Descargar precompilada.
  2. Si la descarga no va a tener éxito (red restrictiva, CDN bloqueada), elige Compilar localmente para generar la imagen en tu Mac (unos 10 minutos). Esto produce la misma imagen.
  3. Desde la línea de comandos, bromure-cli init recurre a la compilación local automáticamente sin preguntar.

"Problema de red durante la compilación de la imagen base"

Causa. La compilación local arranca una VM instaladora desechable de Alpine que necesita una concesión DHCP y acceso saliente. En algunas VPN y redes bloqueadas no obtiene ninguna concesión, o sus descargas quedan en un agujero negro por una discrepancia de MTU.

Solución. La compilación se detiene con una alerta Problema de red durante la compilación de la imagen base que ofrece Reparar y reintentar (reinicia los demonios de red de macOS a través del Reparador de red — pide tu contraseña de administrador) o Cancelar. Si sigue fallando en una VPN, fija la MTU de la NIC del invitado antes de reintentar (los túneles tipo WireGuard suelen necesitar 1280 o menos):

defaults write io.bromure.agentic-coding vm.mtu -int 1280

La MTU ya tiene por defecto 1280; redúcela más solo si una ruta PMTU corporativa lo exige.

La instalación se queda sin espacio en disco

Causa. Cada instalación de imagen requiere al menos 8 GB libres de entrada en el volumen que alberga el directorio de soporte, y un monitor a mitad de compilación aborta si el espacio libre baja de 1 GB (para que apt/debootstrap no reintenten hasta un tiempo de espera inexplicable).

Solución. Libera espacio y reintenta. Consulta Espacio en disco para saber qué consume más.

La imagen base queda en un estado parcial

Causa. Cancelar a mitad de instalación, o una compilación fallida, deja archivos transitorios: base.img.partial, base.img.gz.partial y efivars.partial en el directorio de soporte. Su presencia significa que una instalación está en marcha o se interrumpió. La imagen real solo se promueve de forma atómica, así que una imagen de trabajo existente sigue siendo utilizable durante todo el proceso.

Solución. Vuelve a ejecutar la instalación hasta completarla (Recompilar imagen base… o bromure-cli init). Para empezar desde cero, bromure-cli reset elimina los cuatro artefactos de la imagen base (base.img, efivars.bin, base.version, image-state.json) tras una confirmación — no toca tus espacios de trabajo, los archivos de Alpine en caché ni el catálogo en caché. Confirma qué hay instalado en cualquier momento con bromure-cli info, que imprime la marca de versión, el tamaño lógico y físico, y la ruta (o "No base image yet.").

Un espacio de trabajo no arranca o no se reanuda

Selecciona el espacio de trabajo en la barra lateral para ver su panel de control: la píldora de estado (Apagado, Suspendido, En ejecución), las tarjetas de CPU / Memoria / vCPU / Disco / Tiempo de actividad, el resumen de CONFIGURACIÓN y un botón Iniciar o Reanudar. El ciclo de vida del espacio de trabajo se cubre en Espacios de trabajo; los síntomas siguientes son los que dejan una VM atascada.

El explorador de espacios de trabajo: una barra lateral que lista espacios de trabajo con píldoras de estado Apagado, y un panel de detalle que muestra tarjetas de CPU, Memoria, vCPU, Disco y Tiempo de actividad, un resumen de Configuración y un botón Iniciar

Iniciar no hace nada, o la VM nunca termina de arrancar

Causa. A diferencia del panel del navegador, las VM de espacio de trabajo no se precalientan — arrancan en frío desde su disco copy-on-write (o se restauran desde una instantánea de suspensión), lo que tarda unos segundos. Un attach de la CLI espera hasta unos 60 segundos durante el arranque. Un arranque genuinamente atascado suele significar un sistema de archivos del invitado roto o un archivo de configuración con el que el invitado se atraganta.

Solución.

  1. Dale tiempo, luego comprueba el minigráfico de CPU en el panel de control — plano en cero tras un minuto significa que no está avanzando.
  2. Reinicia en el sitio desde la barra de acciones del panel de control (ReiniciarReinicio forzado lo derriba de inmediato).
  3. Si aún así no arranca, el propio disco puede estar dañado. Restaura a un estado bueno reciente desde la interfaz de reversión del espacio de trabajo, o usa Restablecer disco para volver a clonar desde la imagen base (esto conserva el directorio home; descarta cualquier instantánea de RAM guardada y el estado de las pestañas). Restablecer a base… es la opción nuclear.
  4. Para reparar en lugar de restablecer, inspecciona el disco detenido con el explorador ext4 — consulta Recuperar un espacio de trabajo al que un archivo defectuoso impide arrancar.

Un espacio de trabajo suspendido se niega a reanudarse

Causa. Reanudar restaura la RAM guardada (vm.state) y la disposición de pestañas (tabs.json), lo que requiere la identidad de máquina persistente del espacio de trabajo y su MAC. Si las carpetas compartidas del espacio de trabajo cambiaron mientras estaba suspendido, reanudar sería inseguro.

Solución. Cuando los recursos compartidos cambiaron, la app pregunta ¿Descartar la VM suspendida de "…"? — elige Descartar y guardar; el siguiente lanzamiento arranca en frío limpiamente. Tus archivos de home y de carpetas compartidas no se ven afectados. Ten en cuenta que una instantánea de RAM guardada siempre se descarta cuando el disco se restablece o se borra: un disco nuevo emparejado con RAM antigua se corrompería al instante, así que esto es por diseño.

El espacio de trabajo está marcado como "Comprometido"

Causa. El proxy detectó un intento saliente de filtrar una credencial de sesión a un anfitrión para el que no fue acuñada y elegiste Apagar o Guardar para investigación. El espacio de trabajo se marca con compromised.flag y el selector lo etiqueta como "Comprometido — al lanzarlo se pedirá borrar el disco y el home".

Solución. El siguiente lanzamiento se niega a arrancar hasta que confirmes el borrado. Borrar y lanzar elimina el disco, el home, la instantánea de RAM y el estado de las pestañas, y luego arranca una VM nueva de inmediato — tus tokens, claves SSH y ajustes del espacio de trabajo se conservan. Las carpetas de proyecto compartidas viven fuera del almacenamiento de Bromure y no se borran, así que revísalas a mano en busca de archivos contaminados. El flujo de detección completo está en Credenciales.

No hay suficiente espacio libre en disco

Causa. Crear cualquier clon copy-on-write o imagen de home se niega a continuar con menos de 1 GB libre en el volumen, fallando rápido con un error de disco lleno en lugar de atascarse a mitad de sesión.

Solución. Libera espacio (consulta Espacio en disco) e intenta Iniciar de nuevo.

Recuperar un espacio de trabajo al que un archivo defectuoso impide arrancar

Causa. Una mala configuración escrita en el invitado — un /etc/fstab roto, un dotfile corrupto — puede impedir que la VM arranque antes de que puedas iniciar sesión para arreglarlo. Como macOS no puede montar ext4, no puedes simplemente abrir el disco en Finder.

Solución. Usa el explorador ext4 en espacio de usuario integrado, con la VM del espacio de trabajo detenida:

  1. Menú Espacios de trabajoAbrir archivo ext4…, luego elige el disk.img o home.img del espacio de trabajo en ~/Library/Application Support/BromureAC/profiles/.
  2. Navega hasta el archivo problemático. Haz clic derecho para Previsualizarlo o Extraerlo… a tu Mac.
  3. Para parchearlo en el sitio, haz clic en Habilitar edición… (hay una advertencia explícita — nunca edites una imagen que una VM en ejecución tiene abierta), luego clic derecho → Reemplazar… con una copia corregida desde tu Mac.
  4. Si el explorador informa de que el diario necesita recuperación, ejecuta primero Ejecutar fsck… (requiere e2fsprogs; la app sugiere brew install e2fsprogs si falta).

Advertencia: El reemplazo en el sitio solo funciona cuando el nuevo contenido cabe en los bloques ya asignados del archivo — hacer crecer un archivo se rechaza ("Ese archivo necesitaría crecer"). Úsalo para corregir configuraciones y extraer archivos, no para añadir datos.

"Restablecer disco" / "Borrar home…" están atenuados

Causa. Estas acciones destructivas se rechazan mientras la ventana de sesión del espacio de trabajo está abierta.

Solución. Cierra primero la ventana de sesión (la información sobre herramientas del botón dice "Cierra primero la ventana de sesión."), luego reintenta.

Fallos de autenticación del agente

El diseño mantiene las credenciales reales fuera de la VM: el invitado se ejecuta con tokens de marcador de posición ("falsos"), y el proxy del anfitrión sustituye los secretos reales en la red. La mayoría de los síntomas de "autenticación" se remontan a ese límite. Consulta Credenciales para el modelo completo.

El agente — o tú — ve una clave de API falsa

Causa. Esto es lo esperado. Las variables de entorno como ANTHROPIC_API_KEY, OPENAI_API_KEY, XAI_API_KEY, GH_TOKEN y las variables de AWS dentro de la VM son señuelos deliberados. El proxy sustituye el valor real del lado del anfitrión para los destinos permitidos, así que una falsa filtrada no vale nada.

Solución. Nada — no intentes "corregir" la clave dentro de la VM. Si las solicitudes reales están fallando con un error de autenticación en el proveedor, el problema es el secreto real en el anfitrión: abre el panel Credenciales del espacio de trabajo y vuelve a introducirlo. Un token falso que aparece en una solicitud al anfitrión equivocado activará la detección de compromiso en lugar de autenticar.

Un inicio de sesión de suscripción (Registrarse con Claude / ChatGPT / Grok) dejó de funcionar

Causa. En el modo de autenticación Suscripción, los tokens OAuth se capturaron una vez en una VM de registro desechable y se almacenaron cifrados en el anfitrión (claude-subscription.enc, codex-subscription.enc, grok-subscription.enc); el anfitrión es dueño de la actualización. Si el token de actualización se revoca, caduca, o la sesión de la cuenta termina, el anfitrión ya no puede acuñar un bearer válido y las solicitudes empiezan a fallar.

Solución. Vuelve a registrarte. En el panel Agentes del espacio de trabajo, olvida la suscripción almacenada y ejecuta Registrarse con Claude / ChatGPT / Grok de nuevo — esto lanza una VM desechable nueva, captura tokens nuevos y los almacena del lado del anfitrión. La clave falsa dentro del espacio de trabajo nunca cambia.

"¿Intercambiar el token de suscripción?" sigue apareciendo, o se rechazó por error

Causa. Este es el otro mecanismo de suscripción: cuando un agente inicia sesión con un token real dentro de la VM, el proxy lo detecta y ofrece moverlo al anfitrión para que el secreto real abandone el invitado. La elección se recuerda por espacio de trabajo y por proveedor.

Solución. En el panel Trazado del espacio de trabajo, las filas Intercambio del token de suscripción de Claude e Intercambio del token de suscripción de Codex muestran Activo o Rechazado con un control de restablecimiento — Olvidar intercambio (volver a preguntar la próxima sesión) o Reactivar el aviso. Restablece para que se te vuelva a preguntar en la próxima sesión. El consentimiento y las concesiones por sesión son solo en memoria y no sobreviven a un reinicio de la app.

Errores de TLS y certificados dentro de la VM

"self-signed certificate" o "unable to get local issuer certificate"

Causa. Todo el HTTPS del invitado es interceptado por el proxy MITM del anfitrión, que vuelve a firmar el tráfico con una CA raíz por instalación. Las herramientas dentro de la VM confían en ella a través de las variables de entorno del paquete de CA que Bromure establece para node, python, go, rust, curl, deno y el AWS SDK, además del archivo de CA colocado en el recurso compartido meta (bromure-ca.pem). Una herramienta que ignore esas variables — o un contenedor que traiga su propio almacén de confianza — rechazará el certificado del proxy.

Solución.

  1. Para la mayoría de las herramientas, no se necesita ninguna acción. Si una herramienta concreta falla, apúntala al paquete de CA del sistema/exportado en lugar de deshabilitar la verificación; el archivo de CA está disponible dentro del invitado y las variables estándar del estilo *_CA_BUNDLE / SSL_CERT_FILE ya están exportadas.
  2. Para un contenedor Docker que necesita alcanzar la red, usa el conmutador Heredar la configuración del proxy HTTP de la hoja Ejecutar un nuevo contenedor para que http_proxy/https_proxy se propaguen, y monta o instala la CA donde las herramientas del contenedor la busquen.
  3. Si los errores de certificado aparecen solo después de que eliminaras o rotaras la CA (más abajo), relanza las sesiones afectadas para que la nueva CA se vuelva a colocar.

Rotar la CA raíz

Causa / cuándo hacerlo. La clave privada de la CA raíz vive en ~/Library/Application Support/BromureAC/ca/key.pem (modo 0600) con su certificado en cert.pem. Quizás quieras rotarla si sospechas que la clave quedó expuesta.

Solución. Sal de la app, elimina el directorio ca/ y relánzala — se genera una CA nueva y se vuelve a colocar en los espacios de trabajo en su próximo lanzamiento. Los cuerpos de traza capturados existentes no se ven afectados, pero cualquier invitado que fijara el certificado antiguo tendrá que volver a confiar en el nuevo.

Bloqueos de la cadena de suministro

Cuando el npm install, pip install o similar de un agente falla con un error distintivo, lo más probable es que la canalización de la cadena de suministro del anfitrión haya intervenido. La política, sus capas y el registro de seguridad están documentados en Protección de la cadena de suministro y la referencia de Ajustes de la cadena de suministro.

Una instalación falló con HTTP 451

Causa. Un 451 ("No disponible por razones legales") es el bloqueo de la cadena de suministro de Bromure — elegido para que sea distinguible de un vistazo del 403 que usan las Salvaguardas. El gestor de paquetes imprime el motivo textualmente en su salida de error, por ejemplo:

Bromure Supply-Chain Security blocked this request: npm package [email protected]
published 4 hours ago — policy requires 2 days minimum

Solución. Lee el motivo. Los desencadenantes comunes y sus remedios:

Motivo en el mensajeCapaCómo proceder
"published … ago — policy requires N days"Filtro de antigüedadFija una versión más antigua, o añade el paquete a Paquetes exentos en el panel Cadena de suministro del espacio de trabajo.
Un CVE / aviso en o por encima de tu umbralOSV o socket.devElige una versión parcheada, o eleva el umbral Bloquear en gravedad.
Marcado como comprometido / malware / typosquatsocket.devTrátalo como una señal real — verifica el nombre del paquete antes de anular.

Leer el registro de seguridad para conocer el motivo

Abre VentanaRegistro de seguridad… y vuelve a ejecutar la instalación. Las filas están codificadas por color: azul para las búsquedas salientes, verde para los veredictos limpios, rojo para los bloqueos y fallos, naranja para los scripts de instalación eliminados, y una línea de acento [supply-chain] cada vez que se activa una política. Una instalación totalmente limpia todavía emite una línea "inspecting pkg@ver" por artefacto — eso es deliberado, así que un registro silencioso significa "todo en caché", no "proxy omitido".

Anular un bloqueo

Solución. Las capas de la cadena de suministro son conmutadores de activación/desactivación por espacio de trabajo, editados en vivo (no se necesita reiniciar la VM). Para dejar pasar un paquete concreto, añade una entrada de exención/lista de permitidos en el panel Cadena de suministro, o baja/deshabilita la capa relevante para ese espacio de trabajo. Al guardar, el cambio se envía a las sesiones en ejecución de inmediato.

Cada instalación pide consentimiento (sin conexión, o socket.dev + Cargo)

Causa. Cuando OSV o socket.dev están habilitados pero no pueden producir un veredicto — la red está caída, o el ecosistema no es compatible — Bromure falla cerrado, reteniendo cada paquete para tu consentimiento en lugar de permitirlo silenciosamente. Dos situaciones producen un aviso por paquete:

  • Trabajar sin conexión con OSV o socket.dev habilitados: cada paquete no cacheado se retiene.
  • socket.dev con Cargo: socket.dev no tiene soporte para Cargo, así que cada artefacto de crates.io no produce ningún veredicto.

Solución. Para periodos sin conexión, deshabilita OSV y socket.dev — el filtro de antigüedad sigue funcionando con los metadatos ya cacheados sin conectividad. Para trabajo intenso con Rust, apaga socket.dev o responde a los avisos (las concesiones se indexan por package@version). El respaldo de tiempo de publicación de PyPI es la única comprobación que falla abierta ante un error de red puro.

Falsos positivos de inyección de prompts

El detector de inyección de prompts escanea los intervalos de resultados de herramientas devueltos al agente y puede registrar, preguntar o bloquear. Su comportamiento y ajuste están en Inyección de prompts y la referencia de Ajustes de inyección de prompts.

Una solicitud legítima fue marcada o bloqueada

Causa. El clasificador puntuó un intervalo entrante por encima del umbral del espacio de trabajo — documentación de seguridad, una página que cita un ataque, o un fragmento que se lee como una instrucción al agente pueden parecer con forma de inyección.

Solución.

  1. Comprueba el registro de seguridad — la línea local lleva una vista previa breve del fragmento marcado para que puedas juzgar si fue un intento real.
  2. Si fue un falso positivo y los bloqueos estorban, cambia el modo de inyección de prompts del espacio de trabajo de Bloquear a Preguntar (tú decides por detección) o Registrar (solo registra, nunca bloquea) en el panel Inyección de prompts.
  3. Las descargas de modelos y el comportamiento por conmutador son por espacio de trabajo, así que un espacio de trabajo de investigación ruidoso puede ejecutarse en modo Registrar mientras uno de producción permanece en Bloquear.

Todas las automatizaciones desencadenadas por eventos están bloqueadas

Causa. Las automatizaciones desencadenadas por eventos requieren el modelo PromptGuard. Sin él, cada ejecución de evento se bloquea con "PromptGuard model not installed — event triggers require it (download in Settings)". Esto es por diseño, no un error.

Solución. Instala el modelo PromptGuard desde el panel Inyección de prompts (o PreferenciasAutomatización). Si un conmutador de detector está activado pero el modelo no se pudo descargar — por ejemplo, el disco estaba lleno — el espacio de trabajo se ejecuta sin protección y el fallo se registra; vuelve a descargar cuando haya espacio disponible.

Espacio en disco: adónde va y cómo recuperarlo

Qué consume espacio

El almacenamiento vive bajo ~/Library/Application Support/BromureAC/ (consulta el Apéndice para el mapa completo). Los grandes consumidores, del mayor al menor:

QuéDóndeTamaño típico
La imagen base de Ubuntubase.img24 GB lógicos, ~6–8 GB físicos
Discos de sistema por espacio de trabajoprofiles/<uuid>/disk.imgClon copy-on-write de la base; crece solo a medida que el invitado escribe
Homes por espacio de trabajoprofiles/<uuid>/home.imgext4 disperso, 64 GB aparentes por defecto, asignados de forma diferida
Instantáneas de RAM de VM suspendidasprofiles/<uuid>/vm.stateAproximadamente la RAM asignada del espacio de trabajo (2–32 GB) por espacio de trabajo suspendido
Puntos de control de disco / homeprofiles/<uuid>/checkpoints/Espacio real a medida que divergen del disco en vivo
Modelos de inferencia localmodels/<org>--<name>/Varios GB por modelo
Modelos de detectorModels/prompt-injection/, Models/claudemd-guard/~300 MB y ~600 MB respectivamente
Cuerpos de trazatraces/Limitado: 100 MB por sesión, 5 GB en total

Nota: La tarjeta de Disco del panel de control prefiere los propios números de df del invitado sobre la asignación del clon del anfitrión, porque un clon copy-on-write sobreestima el uso — los bloques liberados dentro del invitado permanecen materializados en el clon.

Recuperar espacio

  • Apaga los espacios de trabajo suspendidos que no estés usando. Un apagado completo borra vm.state; el espacio de trabajo arranca en frío la próxima vez.
  • Elimina los modelos locales no utilizados con bromure-cli model rm <id> (libera los pesos tanto de la nueva disposición como de la caché heredada de Hugging Face).
  • Restablece un disco de espacio de trabajo inflado con Restablecer disco (vuelve a clonar desde la base, conserva el home) o elimina puntos de control antiguos desde la interfaz de reversión.
  • Borra las trazas con bromure-cli trace clear — limpia tanto el anillo en memoria como los cuerpos en disco.
  • Elimina un espacio de trabajo entero que ya no necesites con bromure-cli workspaces rm <workspace> (elimina el disco y el home tras confirmación).
  • Recupera la imagen base con bromure-cli reset si quieres empezar de nuevo (los espacios de trabajo no se tocan, así que vuelve a ejecutar init después).

Acceso remoto y el cliente enriquecido

La puerta de entrada opcional de acceso remoto por SSH y la réplica del cliente enriquecido se cubren en Acceso remoto. Los síntomas siguientes son los que bloquean una conexión.

No se puede conectar por SSH (puerto 2222)

Causa. La puerta de entrada remota está deshabilitada por defecto. También es un servidor integrado (no el sshd del sistema), así que habilitar el inicio de sesión remoto de macOS no hace nada por él, y se pausa automáticamente durante cualquier instalación o modificación de la imagen base.

Solución.

  1. Comprueba el estado con bromure-cli remote status — imprime si el servidor está HABILITADO y en marcha, la dirección y el puerto de enlace, los métodos de autenticación, la huella de la clave de anfitrión, una cadena de conexión ssh -p <port> <user>@<host> lista para usar, y la lista de claves autorizadas.
  2. Habilítalo con bromure-cli remote enable (valores por defecto: puerto 2222, enlace 0.0.0.0, ambos métodos de autenticación activados). Da error si ambos métodos de autenticación están deshabilitados, si el puerto es inferior a 1024, o mientras la imagen base falta o se está instalando.
  3. Añade tu clave pública con bromure-cli remote key add <path-or-key>. Añadir o eliminar una clave reinicia el escucha y corta las conexiones en vivo — comportamiento esperado.

Discrepancia de clave de anfitrión o de huella (TOFU)

Causa. El cliente enriquecido fija la clave de anfitrión de cada remoto en la primera conexión (confianza en el primer uso), almacenada en ~/Library/Application Support/BromureAC/remote-client/known_hosts. La fijación es por endpoint (address:port), así que editar la dirección o el puerto de un anfitrión guardado invalida la fijación arrastrada y vuelve a activar correctamente el aviso de confianza. Una discrepancia en un endpoint sin cambios significa que la clave del remoto cambió — o algo está interceptando la conexión.

Solución. Si reconstruiste el remoto legítimamente, elimina su fijación y reconecta para volver a confiar. Si no esperabas que la clave cambiara, detente e investiga antes de aceptarla.

La cuadrícula remota o el panel del navegador no se replican

Causa. Un remoto headless — la app se está ejecutando pero no tiene ninguna ventana unificada abierta — no puede aceptar ni servir ediciones de la disposición de la cuadrícula, aunque todo lo demás se replica. Algunas operaciones de worktree impulsadas por prompts (nuevo worktree, fusionar, resolver) tampoco están disponibles desde el cliente enriquecido en la v1, y el alias de subred multi-anfitrión es una limitación de diseño documentada, no un comportamiento incluido: un único anfitrión remoto es la configuración admitida.

Solución. Abre una ventana de sesión en el remoto para que tenga una ventana unificada que replicar. Para crear/fusionar/resolver worktrees en un remoto, usa el menú remoto SSH/TUI en lugar de la barra de herramientas del cliente enriquecido.

El túnel de todo el sistema necesita aprobación

Causa. El túnel opcional de todo el sistema del cliente enriquecido usa un demonio launchd con privilegios registrado a través de SMAppService. Su primer registro hace aparecer un conmutador de aprobación de elemento en segundo plano.

Solución. Aprueba Bromure Agentic Coding en Configuración del SistemaGeneralElementos de inicio de sesión y extensiones (la app puede abrir ese panel por ti). A través del túnel, un ping ICMP a un invitado remoto se responde localmente y confirma el enrutamiento, no la vitalidad del invitado.

Informar de un error

Cuando presentes un informe en bromure.io, incluye lo suficiente para que un mantenedor pueda reproducirlo:

  1. Versiones de la app y de la imagen — la versión de la app (4.3.0) y la salida de bromure-cli info (la marca de versión de la imagen base, los tamaños y la ruta).
  2. El registro de stderr — lanza bromure-cli desde una terminal como se muestra en Capturar stderr, reproduce el problema y adjunta la salida. Añade BROMURE_AC_DEBUG=1 si el mantenedor pide más detalle.
  3. La ventana relevante — para fallos de configuración, la Salida de la consola copiada de la ventana de configuración; para comportamiento relacionado con la seguridad, el Registro de seguridad filtrado.
  4. Lo que esperabas frente a lo que ocurrió, y si el espacio de trabajo estaba Apagado, Suspendido o En ejecución.

No incluyas secretos reales — los registros de trazas y las líneas de log ya los censuran a vistas previas breves, y la app está construida para que las credenciales reales nunca entren en una VM en primer lugar. Si tu Mac está inscrito con un espacio de trabajo de bromure.io, encamina los informes a través del administrador de tu organización; el estado relacionado con la inscripción es visible para ellos y no para Bromure directamente. La inscripción se cubre en Empresa.