Resolução de problemas
Este capítulo está organizado por sintoma. Cada entrada indica a causa provável e os passos para a corrigir. Comece por Primeira paragem: registos, saúde e estado da aplicação — quase todos os diagnósticos abaixo dependem de uma dessas três fontes — e depois salte para a secção que corresponde ao que está a observar.
Dois factos sustentam a maior parte do que se segue. Primeiro, um espaço de trabalho é uma sandbox persistente: o seu disco de sistema (disk.img) e a home do Linux (home.img) sobrevivem entre arranques, pelo que um problema num deles não se resolve simplesmente reiniciando. Segundo, o Bromure Agentic Coding aplica a política de segurança no anfitrião, antes de o tráfego chegar à VM — por isso, os bloqueios e erros que parecem surgir "dentro" do convidado são, na maioria dos casos, o proxy do anfitrião a falar, e resolvem-se na aplicação, não na VM.
Primeira paragem: registos, saúde e estado da aplicação
Antes de alterar seja o que for, descubra o que a própria aplicação está a reportar.
O Registo de segurança
Abra Janela → Registo de segurança…. Trata-se de uma leitura em tempo real de todos os eventos de segurança que o proxy do anfitrião emite: consultas à cadeia de fornecimento e bloqueios 451, remoções de scripts de instalação, deteções de injeção de prompt, trocas de credenciais e avisos de fuga, alterações de Fusion e de encaminhamento, e eventos de acesso remoto. Use o campo Filtrar… para restringir a um nome de pacote, anfitrião ou espaço de trabalho, e desmarque Deslocamento automático para manter a sua posição enquanto lê.
Nota: O Registo de segurança é um buffer circular em memória de aproximadamente 5.000 linhas e não persiste entre reinícios da aplicação. Se precisar de uma cópia duradoura — ou se estiver a investigar algo que faz a aplicação estoirar — inicie o
bromure-clia partir de um terminal (secção seguinte); cada linha de registo é também espelhada para stderr.
Captar o stderr a partir de um terminal
A aplicação espelha os seus registos para o erro padrão. Iniciá-la a partir de um terminal dá-lhe um registo duradouro e copiável que sobrevive a um reinício ou a uma falha da aplicação:
"/Applications/Bromure Agentic Coding.app/Contents/MacOS/bromure-cli" run
Para mais detalhe, defina uma variável de depuração antes do comando (consulte o Apêndice):
BROMURE_AC_DEBUG=1— depuração com data/hora para o motor de automatização, os classificadores de injeção e o pipeline de rastreios.BROMURE_CLI_DEBUG=1— diagnósticos de ligação ao control-socket para os comandos da CLI.BROMURE_REPAIR_DEBUG=1— diagnósticos do proxy de reparação da inferência local, acrescentados a/tmp/bromure-repair.log.
A verificação de saúde da automatização (GET /health)
A aplicação executa um control socket exclusivo do proprietário em ~/Library/Application Support/BromureAC/control.sock sempre que está em execução. Pode confirmar que a aplicação está viva e a responder pedindo-lhe a sua saúde, o que devolve um pequeno objeto JSON:
curl --unix-socket "$HOME/Library/Application Support/BromureAC/control.sock" http://localhost/health
{ "status": "ok", "service": "bromure-ac-automation", "debugEnabled": false }
Se tiver ativado o servidor de automatização em loopback (Preferências → Automatização, desativado por predefinição), o mesmo endpoint fica acessível por TCP na porta configurada — 9223 por predefinição:
curl http://127.0.0.1:9223/health
Uma ligação recusada significa que a aplicação (ou o seu agente headless) não está em execução; bromure-cli vm ls inicia o agente em segundo plano a pedido e é outra verificação rápida de atividade. O sinalizador debugEnabled reporta se o BROMURE_DEBUG_CLAUDE desbloqueou os endpoints de depuração.
O registo da consola de configuração
Durante uma instalação de imagem base, a janela de configuração tem uma secção expansível Saída da consola, recolhida, que transmite o registo bruto do instalador, com um botão Copiar. Expanda-a para acompanhar o progresso e copie o registo completo se precisar de o anexar a um relatório de erro. Apenas as últimas 100 linhas permanecem no ecrã, por isso copie antes de a janela fechar.
Configuração e instalação da imagem base
A aplicação não pode executar qualquer espaço de trabalho enquanto não existir uma imagem base de Linux. O primeiro arranque mostra a janela Bem-vindo ao Bromure Agentic Coding; clicar em Começar executa a mesma instalação que bromure-cli init. O fluxo completo está documentado em Instalação; esta secção aborda o que fazer quando falha.
A transferência pré-compilada falha ou fica bloqueada
Causa. O caminho preferencial transfere uma imagem assinada e comprimida em gzip (~3 GB) a partir de https://dl.bromure.io, verifica o seu SHA-256 e expande-a. Uma interrupção de rede, um soluço da CDN ou uma incompatibilidade de checksum abortam-na. A transferência já tenta novamente até três vezes, voltando a obter o catálogo entre tentativas (a publicação semanal pode eliminar a compilação anterior a meio de uma transferência).
Correção. Observe o indicador de estado e a Saída da consola na janela de configuração. Numa falha do lado da transferência, a GUI mostra um alerta Falha na transferência da imagem que oferece Compilar localmente ou Cancelar:
- Se estiver online e tiver sido uma falha transitória, dispense-o e tente novamente a partir do menu da aplicação: Recompilar imagem base… → Transferir pré-compilada.
- Se a transferência não for bem-sucedida (rede restritiva, CDN bloqueada), escolha Compilar localmente para produzir a imagem no seu Mac em vez disso (cerca de 10 minutos). Isto produz a mesma imagem.
- A partir da linha de comandos,
bromure-cli initrecorre automaticamente à compilação local sem perguntar.
"Problema de rede durante a compilação da imagem base"
Causa. A compilação local arranca uma VM instaladora Alpine descartável que necessita de uma concessão DHCP e de acesso de saída. Em algumas VPNs e redes bloqueadas, não obtém concessão, ou as suas transferências ficam num buraco negro devido a uma incompatibilidade de MTU.
Correção. A compilação para com um alerta Problema de rede durante a compilação da imagem base que oferece Reparar e tentar novamente (reinicia os daemons de rede do macOS através do Network Healer — pede a sua palavra-passe de administrador) ou Cancelar. Se continuar a falhar numa VPN, limite o MTU da NIC do convidado antes de tentar novamente (os túneis de estilo WireGuard precisam frequentemente de 1280 ou menos):
defaults write io.bromure.agentic-coding vm.mtu -int 1280
O MTU já assume por predefinição 1280; baixe-o ainda mais apenas se um caminho PMTU empresarial o exigir.
A instalação fica sem espaço em disco
Causa. Cada instalação de imagem requer, à partida, pelo menos 8 GB livres no volume que alberga o diretório de suporte, e um monitor a meio da compilação aborta se o espaço livre descer abaixo de 1 GB (para que o apt/debootstrap não voltem a tentar até um tempo-limite inexplicável).
Correção. Liberte espaço e tente novamente. Consulte Espaço em disco para saber o que consome mais.
A imagem base fica num estado parcial
Causa. Cancelar a meio de uma instalação, ou uma compilação falhada, deixa ficheiros transitórios para trás: base.img.partial, base.img.gz.partial e efivars.partial no diretório de suporte. A sua presença significa que uma instalação está em execução ou foi interrompida. A imagem real só é alguma vez promovida atomicamente, pelo que uma imagem funcional existente permanece utilizável durante todo o processo.
Correção. Volte a executar a instalação até à conclusão (Recompilar imagem base… ou bromure-cli init). Para começar de novo do zero, bromure-cli reset elimina os quatro artefactos da imagem base (base.img, efivars.bin, base.version, image-state.json) após uma confirmação — não toca nos seus espaços de trabalho, nos ficheiros Alpine em cache, nem no catálogo em cache. Confirme o que está instalado a qualquer momento com bromure-cli info, que imprime o carimbo de versão, o tamanho lógico e físico, e o caminho (ou "No base image yet.").
Um espaço de trabalho não arranca ou não retoma
Selecione o espaço de trabalho na barra lateral para ver o seu painel de controlo: o indicador de estado (Desligado, Suspenso, Em execução), os cartões de CPU / Memória / vCPUs / Disco / Tempo de atividade, o resumo CONFIGURAÇÃO e um botão Iniciar ou Retomar. O ciclo de vida do espaço de trabalho é abordado em Espaços de trabalho; os sintomas abaixo são os que deixam uma VM encravada.
O Iniciar não faz nada, ou a VM nunca termina o arranque
Causa. Ao contrário do painel do navegador, as VMs de espaço de trabalho não são pré-aquecidas — arrancam a frio a partir do seu disco copy-on-write (ou restauram a partir de um snapshot de suspensão), o que demora alguns segundos. Uma ligação da CLI aguarda até cerca de 60 segundos ao longo do arranque. Um arranque genuinamente encravado significa normalmente um sistema de ficheiros do convidado danificado ou um ficheiro de configuração que o convidado não consegue processar.
Correção.
- Dê-lhe tempo e depois verifique o sparkline da CPU no painel de controlo — plano a zero após um minuto significa que não está a progredir.
- Reinicie no lugar a partir da barra de ações do painel de controlo (Reiniciar → Reinício forçado desmonta-a de imediato).
- Se ainda assim não arrancar, o próprio disco poderá estar danificado. Restaure para um estado bom recente a partir da interface de reversão do espaço de trabalho, ou use Repor disco para voltar a clonar a partir da imagem base (isto mantém o diretório home; descarta qualquer snapshot de RAM guardado e o estado dos separadores). Repor para base… é a opção nuclear.
- Para reparar em vez de repor, inspecione o disco parado com o navegador ext4 — consulte Recuperar um espaço de trabalho que um ficheiro danificado impede de arrancar.
Um espaço de trabalho suspenso recusa retomar
Causa. Retomar restaura a RAM guardada (vm.state) e o esquema de separadores (tabs.json), o que requer a identidade de máquina persistente do espaço de trabalho e o MAC. Se as pastas partilhadas do espaço de trabalho mudaram enquanto estava suspenso, retomar seria inseguro.
Correção. Quando as partilhas mudaram, a aplicação pergunta Descartar VM suspensa de "…"? — escolha Descartar e guardar; o próximo arranque arranca a frio de forma limpa. Os seus ficheiros da home e das pastas partilhadas não são afetados. Note que um snapshot de RAM guardado é sempre descartado quando o disco é reposto ou apagado: um disco novo emparelhado com RAM antiga corromper-se-ia instantaneamente, pelo que isto é intencional.
O espaço de trabalho está marcado como "Comprometido"
Causa. O proxy detetou uma tentativa de saída para vazar uma credencial de sessão para um anfitrião para o qual não foi cunhada e escolheu Encerrar ou Guardar para investigação. O espaço de trabalho é sinalizado com compromised.flag e o seletor exibe o crachá "Comprometido — o arranque pedirá para limpar o disco e a home".
Correção. O próximo arranque recusa iniciar até que confirme a limpeza. Limpar e iniciar remove o disco, a home, o snapshot de RAM e o estado dos separadores, e depois arranca uma VM nova de imediato — os seus tokens, chaves SSH e definições do espaço de trabalho são preservados. As pastas de projeto partilhadas vivem fora do armazenamento do Bromure e não são limpas, por isso reveja-as manualmente à procura de ficheiros contaminados. O fluxo de deteção completo está em Credenciais.
Espaço em disco livre insuficiente
Causa. A criação de qualquer clone copy-on-write ou imagem home recusa prosseguir com menos de 1 GB livre no volume, falhando rapidamente com um erro de disco cheio em vez de encravar a meio de uma sessão.
Correção. Liberte espaço (consulte Espaço em disco) e tente Iniciar novamente.
Recuperar um espaço de trabalho que um ficheiro danificado impede de arrancar
Causa. Uma configuração incorreta escrita no convidado — um /etc/fstab avariado, um dotfile corrompido — pode impedir a VM de arrancar antes de conseguir iniciar sessão para o corrigir. Como o macOS não consegue montar ext4, não pode simplesmente abrir o disco no Finder.
Correção. Use o navegador ext4 em userland incorporado, com a VM do espaço de trabalho parada:
- Menu Espaços de trabalho → Abrir ficheiro ext4…, depois escolha o
disk.imgouhome.imgdo espaço de trabalho em~/Library/Application Support/BromureAC/profiles/. - Navegue até ao ficheiro problemático. Clique com o botão direito para o Pré-visualizar ou Extrair… para o seu Mac.
- Para o corrigir no lugar, clique em Ativar edição… (existe um aviso explícito — nunca edite uma imagem que uma VM em execução tenha aberta), depois clique com o botão direito → Substituir… por uma cópia corrigida do seu Mac.
- Se o navegador reportar que o journal precisa de recuperação, execute primeiro Executar fsck… (requer
e2fsprogs; a aplicação sugerebrew install e2fsprogsse estiver em falta).
Aviso: A substituição no lugar só funciona quando o novo conteúdo cabe nos blocos já alocados do ficheiro — aumentar um ficheiro é recusado ("That file would need to grow"). Use-a para corrigir configurações e retirar ficheiros, não para acrescentar dados.
"Repor disco" / "Apagar home…" estão a cinzento
Causa. Estas ações destrutivas são recusadas enquanto a janela da sessão do espaço de trabalho estiver aberta.
Correção. Feche primeiro a janela da sessão (a dica do botão diz "Close the session window first."), depois tente novamente.
Falhas de autenticação do agente
O design mantém as credenciais reais fora da VM: o convidado corre com tokens de marcador de posição ("falsos"), e o proxy do anfitrião substitui os segredos reais na transmissão. A maioria dos sintomas de "autenticação" remonta a essa fronteira. Consulte Credenciais para o modelo completo.
O agente — ou você — vê uma chave de API falsa
Causa. Isto é esperado. Variáveis de ambiente como ANTHROPIC_API_KEY, OPENAI_API_KEY, XAI_API_KEY, GH_TOKEN e as variáveis da AWS dentro da VM são engodos deliberados. O proxy substitui o valor real do lado do anfitrião para os destinos permitidos, pelo que um engodo vazado não vale nada.
Correção. Nada — não tente "corrigir" a chave dentro da VM. Se os pedidos reais estiverem a falhar com um erro de autenticação no fornecedor, o problema é o segredo real no anfitrião: abra o painel Credenciais do espaço de trabalho e reintroduza-o. Um token falso que apareça num pedido ao anfitrião errado acionará a deteção de compromisso em vez de autenticar.
Um início de sessão por subscrição (Registar com Claude / ChatGPT / Grok) deixou de funcionar
Causa. No modo de autenticação Subscrição, os tokens OAuth foram captados uma vez numa VM de registo descartável e armazenados encriptados no anfitrião (claude-subscription.enc, codex-subscription.enc, grok-subscription.enc); o anfitrião é o dono da renovação. Se o token de renovação for revogado, expirar, ou a sessão da conta terminar, o anfitrião deixa de conseguir cunhar um bearer válido e os pedidos começam a falhar.
Correção. Registe-se novamente. No painel Agentes do espaço de trabalho, esqueça a subscrição armazenada e execute Registar com Claude / ChatGPT / Grok novamente — isto lança uma VM descartável nova, capta novos tokens e armazena-os no lado do anfitrião. A chave fictícia dentro do espaço de trabalho nunca muda.
"Trocar token de subscrição?" continua a aparecer, ou foi recusado por engano
Causa. Este é o outro mecanismo de subscrição: quando um agente inicia sessão com um token real dentro da VM, o proxy deteta-o e oferece-se para o mover para o anfitrião, de modo que o segredo real saia do convidado. A escolha é memorizada por espaço de trabalho e por fornecedor.
Correção. No painel Rastreio do espaço de trabalho, as linhas Troca de token de subscrição do Claude e Troca de token de subscrição do Codex mostram Ativa ou Recusada com um controlo de reposição — Esquecer troca (voltar a perguntar na próxima sessão) ou Reativar pergunta. Reponha para ser perguntado novamente na próxima sessão. O consentimento e as concessões por sessão são apenas em memória e não sobrevivem a um reinício da aplicação.
Erros de TLS e de certificado dentro da VM
"self-signed certificate" ou "unable to get local issuer certificate"
Causa. Todo o HTTPS do convidado é intercetado pelo proxy MITM do anfitrião, que volta a assinar o tráfego com uma CA raiz por instalação. As ferramentas dentro da VM confiam nela através das variáveis de ambiente do pacote de CA que o Bromure define para node, python, go, rust, curl, deno e o SDK da AWS, mais o ficheiro de CA colocado na partilha meta (bromure-ca.pem). Uma ferramenta que ignore essas variáveis — ou um contentor que traga o seu próprio armazenamento de confiança — rejeitará o certificado do proxy.
Correção.
- Para a maioria das ferramentas, não é necessária qualquer ação. Se uma ferramenta específica falhar, aponte-a para o pacote de CA do sistema/exportado em vez de desativar a verificação; o ficheiro de CA está disponível dentro do convidado e as variáveis padrão de estilo
*_CA_BUNDLE/SSL_CERT_FILEjá estão exportadas. - Para um contentor Docker que precise de chegar à rede, use o alternador Herdar definições de proxy HTTP da folha Executar um novo contentor para que
http_proxy/https_proxyse propaguem, e monte ou instale a CA onde as ferramentas do contentor a procuram. - Se os erros de certificado surgirem apenas depois de eliminar ou rodar a CA (abaixo), reinicie as sessões afetadas para que a nova CA seja recolocada.
Rodar a CA raiz
Causa / quando fazê-lo. A chave privada da CA raiz reside em ~/Library/Application Support/BromureAC/ca/key.pem (modo 0600), com o seu certificado em cert.pem. Poderá querer rodá-la se suspeitar que a chave foi exposta.
Correção. Saia da aplicação, elimine o diretório ca/ e reinicie — é gerada uma CA nova e recolocada nos espaços de trabalho no próximo arranque. Os corpos de rastreio já captados não são afetados, mas qualquer convidado que tenha fixado o certificado antigo terá de voltar a confiar no novo.
Bloqueios da cadeia de fornecimento
Quando o npm install, o pip install ou semelhante de um agente falha com um erro distintivo, o mais provável é que o pipeline da cadeia de fornecimento do anfitrião tenha intervindo. A política, as suas camadas e o Registo de segurança estão documentados em Proteção da cadeia de fornecimento e na referência das definições da Cadeia de fornecimento.
Uma instalação falhou com HTTP 451
Causa. Um 451 ("Unavailable For Legal Reasons") é o bloqueio da cadeia de fornecimento do Bromure — escolhido para ser distinguível de relance do 403 que as Salvaguardas usam. O gestor de pacotes imprime o motivo textualmente na sua saída de erro, por exemplo:
Bromure Supply-Chain Security blocked this request: npm package [email protected]
published 4 hours ago — policy requires 2 days minimum
Correção. Leia o motivo. Os gatilhos comuns e os seus remédios:
| Motivo na mensagem | Camada | Como proceder |
|---|---|---|
| "published … ago — policy requires N days" | Barreira de idade | Fixe uma versão mais antiga, ou adicione o pacote a Pacotes isentos no painel Cadeia de fornecimento do espaço de trabalho. |
| Uma CVE / aviso igual ou superior ao seu limiar | OSV ou socket.dev | Escolha uma versão corrigida, ou eleve o limiar Bloquear na severidade. |
| Sinalizado como comprometido / malware / typosquat | socket.dev | Trate-o como um sinal real — verifique o nome do pacote antes de o ignorar. |
Ler o Registo de segurança para saber o motivo
Abra Janela → Registo de segurança… e volte a executar a instalação. As linhas têm código de cores: azul para consultas de saída, verde para veredictos limpos, vermelho para bloqueios e falhas, laranja para scripts de instalação removidos, e uma linha de destaque [supply-chain] sempre que uma política é acionada. Uma instalação totalmente limpa ainda emite uma linha "inspecting pkg@ver" por artefacto — isto é intencional, pelo que um registo silencioso significa "tudo em cache", e não "proxy contornado".
Ignorar um bloqueio
Correção. As camadas da cadeia de fornecimento são alternadores de ativar/desativar por espaço de trabalho, editados ao vivo (não é necessário reiniciar a VM). Para deixar passar um pacote específico, adicione uma entrada de isenção/lista de permissões no painel Cadeia de fornecimento, ou baixe/desative a camada relevante para esse espaço de trabalho. Guardar envia a alteração para as sessões em execução de imediato.
Todas as instalações pedem consentimento (offline, ou socket.dev + Cargo)
Causa. Quando o OSV ou o socket.dev está ativado mas não consegue produzir um veredicto — a rede está em baixo, ou o ecossistema não é suportado — o Bromure falha de forma fechada, retendo cada pacote para o seu consentimento em vez de o permitir silenciosamente. Duas situações produzem um pedido por pacote:
- Trabalhar offline com o OSV ou o socket.dev ativado: cada pacote não em cache é retido.
- socket.dev com Cargo: o socket.dev não tem suporte para Cargo, pelo que cada artefacto de
crates.ionão produz veredicto.
Correção. Para períodos offline, desative o OSV e o socket.dev — a barreira de idade continua a funcionar a partir de metadados já em cache sem conectividade. Para trabalho pesado em Rust, ou desligue o socket.dev ou responda aos pedidos (as concessões são chaveadas por package@version). O apoio de tempo de publicação do PyPI é a única verificação que falha aberta num erro de rede puro.
Falsos positivos de injeção de prompt
O detetor de injeção de prompt analisa os intervalos de resultados de ferramentas devolvidos ao agente e pode registar, perguntar ou bloquear. O seu comportamento e afinação residem em Injeção de prompt e na referência das definições de Injeção de prompt.
Um pedido legítimo foi sinalizado ou bloqueado
Causa. O classificador pontuou um intervalo recebido acima do limiar do espaço de trabalho — documentação de segurança, uma página que cita um ataque, ou um fragmento que se lê como uma instrução para o agente podem todos parecer com o formato de uma injeção.
Correção.
- Verifique o Registo de segurança — a linha local transporta uma pequena pré-visualização do fragmento sinalizado para que possa avaliar se foi uma tentativa real.
- Se foi um falso positivo e os bloqueios estão a atrapalhar, mude o modo de injeção de prompt do espaço de trabalho de Bloquear para Perguntar (você decide por deteção) ou Registar (apenas registar, nunca bloquear) no painel Injeção de prompt.
- As transferências de modelos e o comportamento por alternador são por espaço de trabalho, pelo que um espaço de trabalho de investigação ruidoso pode correr em modo Registar enquanto um de produção se mantém em Bloquear.
As automatizações acionadas por eventos estão todas bloqueadas
Causa. As automatizações acionadas por eventos requerem o modelo PromptGuard. Sem ele, cada execução por evento é bloqueada com "PromptGuard model not installed — event triggers require it (download in Settings)." Isto é intencional, não um erro.
Correção. Instale o modelo PromptGuard a partir do painel Injeção de prompt (ou Preferências → Automatização). Se um alternador de detetor estiver ativado mas o modelo não tiver sido transferido — por exemplo, o disco estava cheio — o espaço de trabalho corre desprotegido e a falha é registada; volte a transferir assim que houver espaço disponível.
Espaço em disco: para onde vai e como recuperá-lo
O que consome espaço
O armazenamento reside em ~/Library/Application Support/BromureAC/ (consulte o Apêndice para o mapa completo). Os grandes consumidores, do maior primeiro:
| O quê | Onde | Tamanho típico |
|---|---|---|
| A imagem base do Ubuntu | base.img | 24 GB lógicos, ~6–8 GB físicos |
| Discos de sistema por espaço de trabalho | profiles/<uuid>/disk.img | Clone copy-on-write da base; cresce apenas à medida que o convidado escreve |
| Homes por espaço de trabalho | profiles/<uuid>/home.img | ext4 esparso, 64 GB aparentes por predefinição, alocado de forma preguiçosa |
| Snapshots de RAM de VM suspensa | profiles/<uuid>/vm.state | Aproximadamente a RAM alocada do espaço de trabalho (2–32 GB) por espaço de trabalho suspenso |
| Pontos de verificação de disco / home | profiles/<uuid>/checkpoints/ | Espaço real à medida que divergem do disco ativo |
| Modelos de inferência local | models/<org>--<name>/ | Vários GB por modelo |
| Modelos de detetor | Models/prompt-injection/, Models/claudemd-guard/ | ~300 MB e ~600 MB respetivamente |
| Corpos de rastreio | traces/ | Limitados: 100 MB por sessão, 5 GB no total |
Nota: O cartão de Disco do painel de controlo prefere os números do próprio
dfdo convidado à alocação do clone do anfitrião, porque um clone copy-on-write sobre-reporta a utilização — os blocos libertados dentro do convidado permanecem materializados no clone.
Recuperar espaço
- Encerre os espaços de trabalho suspensos que não está a utilizar. Um encerramento completo limpa o
vm.state; o espaço de trabalho arranca a frio da próxima vez. - Remova modelos locais não utilizados com
bromure-cli model rm <id>(liberta os pesos tanto do novo esquema como da cache antiga do Hugging Face). - Reponha um disco de espaço de trabalho inchado com Repor disco (volta a clonar da base, mantém a home) ou elimine pontos de verificação antigos a partir da interface de reversão.
- Limpe os rastreios com
bromure-cli trace clear— apaga tanto o anel em memória como os corpos em disco. - Elimine um espaço de trabalho inteiro de que já não precise com
bromure-cli workspaces rm <workspace>(remove o disco e a home após confirmação). - Recupere a imagem base com
bromure-cli resetse quiser começar de novo (os espaços de trabalho não são tocados, por isso volte a executarinitdepois).
Acesso remoto e o cliente nativo
A porta de entrada opcional de acesso remoto por SSH e o espelho de cliente nativo são abordados em Acesso remoto. Os sintomas abaixo são os que bloqueiam uma ligação.
Não é possível ligar por SSH (porta 2222)
Causa. A porta de entrada remota está desativada por predefinição. É também um servidor incorporado (não o sshd do sistema), pelo que ativar o Início de Sessão Remoto do macOS não faz nada por ela, e é pausada automaticamente durante qualquer instalação ou alteração da imagem base.
Correção.
- Verifique o estado com
bromure-cli remote status— imprime se o servidor está ENABLED e em execução, o endereço e a porta de vinculação, os métodos de autenticação, a impressão digital da chave do anfitrião, uma cadeia de ligaçãossh -p <port> <user>@<host>pronta a usar, e a lista de chaves autorizadas. - Ative-a com
bromure-cli remote enable(predefinições: porta2222, vinculação0.0.0.0, ambos os métodos de autenticação ativos). Dá erro se ambos os métodos de autenticação estiverem desativados, se a porta for inferior a 1024, ou enquanto a imagem base estiver em falta ou a instalar. - Adicione a sua chave pública com
bromure-cli remote key add <path-or-key>. Adicionar ou remover uma chave reinicia o listener e derruba as ligações ativas — comportamento esperado.
Incompatibilidade de chave do anfitrião ou de impressão digital (TOFU)
Causa. O cliente nativo fixa a chave do anfitrião de cada remoto na primeira ligação (trust-on-first-use), armazenada em ~/Library/Application Support/BromureAC/remote-client/known_hosts. A fixação é por endpoint (address:port), pelo que editar o endereço ou a porta de um anfitrião guardado invalida a fixação transportada e reaciona corretamente o pedido de confiança. Uma incompatibilidade num endpoint inalterado significa que a chave do remoto mudou — ou algo está a intercetar a ligação.
Correção. Se recompilou legitimamente o remoto, remova a sua fixação e volte a ligar-se para voltar a confiar. Se não esperava que a chave mudasse, pare e investigue antes de a aceitar.
A grelha remota ou o painel do navegador não espelham
Causa. Um remoto headless — a aplicação está em execução mas não tem qualquer janela unificada aberta — não consegue aceitar nem servir edições de esquema da grelha, embora tudo o resto espelhe. Algumas operações de worktree impulsionadas por prompt (novo worktree, merge, resolver) também não estão disponíveis a partir do cliente nativo na v1, e a atribuição de aliases de sub-rede multi-anfitrião é uma limitação de design documentada, não um comportamento entregue: um único anfitrião remoto é a configuração suportada.
Correção. Abra uma janela da sessão no remoto para que tenha uma janela unificada para espelhar. Para criar/fazer merge/resolver worktrees num remoto, use o menu remoto SSH/TUI em vez da barra de ferramentas do cliente nativo.
O túnel a nível do sistema precisa de aprovação
Causa. O túnel opcional a nível do sistema do cliente nativo usa um daemon launchd privilegiado registado através do SMAppService. O seu primeiro registo faz surgir um alternador de aprovação de item em segundo plano.
Correção. Aprove Bromure Agentic Coding em Definições do Sistema → Geral → Itens de Início de Sessão e Extensões (a aplicação pode abrir esse painel por si). Através do túnel, um ping ICMP a um convidado remoto é respondido localmente e confirma o encaminhamento, não a atividade do convidado.
Reportar um erro
Ao apresentar um relatório em bromure.io, inclua o suficiente para um responsável de manutenção reproduzir o problema:
- Versões da aplicação e da imagem — a versão da aplicação (4.3.0) e a saída de
bromure-cli info(o carimbo de versão da imagem base, os tamanhos e o caminho). - O registo de stderr — inicie o
bromure-clia partir de um terminal como mostrado em Captar o stderr, reproduza o problema e anexe a saída. AdicioneBROMURE_AC_DEBUG=1se o responsável de manutenção pedir mais detalhe. - A janela relevante — para falhas de configuração, a Saída da consola copiada da janela de configuração; para comportamento relacionado com segurança, o Registo de segurança filtrado.
- O que esperava versus o que aconteceu, e se o espaço de trabalho estava Desligado, Suspenso ou Em execução.
Não inclua segredos reais — os registos de rastreio e as linhas de registo já os censuram para pré-visualizações curtas, e a aplicação é construída de modo que credenciais reais nunca entrem numa VM em primeiro lugar. Se o seu Mac estiver inscrito com um espaço de trabalho bromure.io, encaminhe os relatórios através do administrador da sua organização; o estado relacionado com a inscrição é visível para eles e não diretamente para o Bromure. A inscrição é abordada em Empresa.