Instalação e primeira execução

Este capítulo leva-o de um Mac vazio a uma cópia funcional do Bromure Agentic Coding: o que a aplicação precisa, como instalá-la, o que faz o assistente de boas-vindas na primeira vez que a abre, como a imagem base de Linux é descarregada, verificada e mantida atualizada, onde a aplicação guarda os seus ficheiros e como remover tudo de forma limpa. Quando terminar aqui, continue com o Início rápido.

Requisitos do sistema

RequisitoMínimo
MacApple Silicon (M1 ou mais recente)
macOSmacOS 14 (Sonoma) ou posterior
Espaço livre em discoPelo menos 8 GB para executar a configuração inicial; conte com cerca de 6–8 GB para a imagem base instalada, mais o espaço que cada máquina utiliza
RedeAcesso à Internet para descarregar a imagem base (há uma compilação local disponível como alternativa; ver abaixo)

Não existe uma compilação para Intel nem virá a existir: a aplicação executa as suas VMs de Linux na Virtualization.framework da Apple, que só suporta convidados ARM64 em Apple Silicon.

Existem duas salvaguardas de espaço em disco integradas:

  • Cada instalação de imagem começa por verificar que há pelo menos 8 GB livres no volume que contém a pasta de suporte da aplicação e, caso contrário, para com uma mensagem clara.
  • Durante uma compilação local da imagem, um monitor para a compilação com um erro explícito de disco cheio se o espaço livre descer abaixo de 1 GB, em vez de a deixar expirar.

O navegador integrado opcional, que abre ao lado de uma sessão, usa a sua própria imagem Ubuntu + Chromium, descarregada à parte na primeira vez que o instala; consulte Definições › Navegador.

Instalar a aplicação

As compilações de versão são publicadas como uma imagem de disco assinada e autenticada (BromureAgenticCoding.dmg) em bromure.io.

  1. Descarregue o DMG a partir da página de descarregamentos de bromure.io.
  2. Abra o DMG. A janela mostra o ícone da aplicação e uma seta a apontar para um atalho de Aplicações.
  3. Arraste o Bromure Agentic Coding para Aplicações.
  4. Ejete o DMG e abra a aplicação a partir de /Applications.

Como o DMG publicado está autenticado pela Apple, o Gatekeeper abre-o sem avisos. Se obteve um DMG de outro local que não bromure.io e o Gatekeeper reclamar, trate isso como um sinal de alerta, não como algo a contornar.

Primeira execução: o assistente de boas-vindas

Na primeira vez que abre a aplicação, abre-se uma janela de configuração intitulada Bromure Agentic Coding em vez da janela principal. É um assistente de seis passos: uma coluna à esquerda lista os passos e marca os que já concluiu, o passo atual ocupa o lado direito, e os botões desse passo ficam na parte inferior.

O assistente abre sempre que a aplicação ainda não tem imagem base, ou tem uma imagem base mas nenhuma máquina (por exemplo, depois de uma reinstalação, ou quando a imagem foi compilada a partir da linha de comandos). Se a imagem base já existir, o passo Instalação sai da lista. O assistente não abre quando a aplicação é iniciada apenas para espelhar um Mac remoto (consulte Acesso remoto e clientes) ou como agente headless sem janela.

Os passos são Boas-vindas, Instalação, Credenciais, Escolher, Modelos e Concluído.

1. Boas-vindas

O assistente de boas-vindas no passo Boas-vindas: uma lista de passos à esquerda (Boas-vindas, Instalação, Credenciais, Escolher, Modelos, Concluído) sobre uma fotografia de paisagem, o título Boas-vindas ao Bromure com o subtítulo Vamos começar., uma breve explicação e um botão Começar no canto inferior direito.

O primeiro passo diz Boas-vindas ao Bromure — «Vamos começar.» Um parágrafo curto explica que o Bromure executa os seus agentes de programação dentro de VMs Linux descartáveis, e que o assistente vai instalar a imagem base e depois oferecer-se para trazer as credenciais que já tem neste Mac.

Clique em Começar (ou prima Return) para iniciar a instalação. Se já existir uma imagem base, o botão diz Continuar e leva-o diretamente ao passo Credenciais.

2. Instalação

O passo Instalação executa a instalação da imagem base dentro do assistente. Tem o título Preparando a imagem base — «Baixando a imagem e aplicando patches. Esta é a instalação única — não feche a janela.» Mostra:

  • Uma linha de estado que indica a fase atual. No percurso normal de descarregamento, verá «Fetching image catalog…», depois linhas como «Downloading … (… GB)…», «Verifying … checksum…» e «Expanding …», depois «Customizing the image: …» enquanto os pacotes recomendados são instalados (consulte O que faz a configuração inicial) e, por fim, «Base image ready at … (v201)».
  • Uma barra de progresso com uma percentagem.
  • Uma secção Saída do console fechada que mostra o registo em bruto do instalador. O texto pode ser selecionado, e Copiar copia o registo inteiro. Só as últimas 100 linhas ficam no ecrã.

Se algo falhar, a linha de estado passa a um erro a vermelho e aparece um botão Fechar.

Se tentar fechar a janela durante a instalação, a aplicação pergunta Cancelar a reconstrução da imagem base? — «A imagem ficará em um estado incompleto. Você precisará executar a reconstrução de novo antes de iniciar novas sessões.» — com Cancelar reconstrução e Continuar construindo.

Quando a instalação termina, o assistente passa sozinho para o passo Credenciais.

Nota: Enquanto decorre a instalação de uma imagem, o servidor opcional de acesso remoto por SSH é colocado em pausa e reiniciado depois (consulte Acesso remoto e clientes).

3. Credenciais

O passo Credenciais: o título Importar suas credenciais existentes?, uma caixa que lista o que a análise lê (configuração do git, palavras-passe guardadas, CLIs do GitHub e do GitLab; Docker, npm, PyPI, crates.io; AWS, Kubernetes, DigitalOcean; sessões e chaves de API do Claude, ChatGPT, Grok e Kimi; chaves SSH, ficheiros .env), uma nota a dizer que os valores reais nunca saem deste Mac, e os botões Agora não e Analisar este Mac.

O assistente oferece-se para procurar as credenciais e os ficheiros de configuração que já usa: Importar suas credenciais existentes? — «O Bromure pode ler os arquivos de configuração já existentes neste Mac e oferecer a importação.» Uma caixa lista o que lê:

  • configuração do git, palavras-passe guardadas, CLIs do GitHub e do GitLab
  • Docker, npm, PyPI, crates.io
  • AWS, Kubernetes, DigitalOcean
  • chaves de API e definições do Claude, ChatGPT, Grok e Kimi
  • chaves SSH, ficheiros .env

Uma nota por baixo repete a regra que torna isto seguro: «Os valores reais nunca saem deste Mac. A VM recebe apenas um valor falso, que o proxy troca de volta nas requisições de saída.»

  • Analisar este Mac lê esses ficheiros e passa ao passo Escolher. Nada é importado até confirmar nesse passo.
  • Agora não salta a análise e não importa nada. Passa diretamente ao passo Modelos.

4. Escolher

O passo Escolher: o título Veja o que encontrei, uma lista de resultados com caixas de verificação em que as chaves de acesso da AWS e a sessão da CLI do GitHub estão marcadas, um botão Adicionar arquivo .env… no canto inferior esquerdo e os botões Pular e Importar 2 no canto inferior direito.

Veja o que encontrei lista cada ficheiro encontrado pela análise, um por linha, com uma caixa de verificação, o caminho do ficheiro e uma breve descrição do que contém (por exemplo, uma identidade git e o número de tokens incluídos). «Marque o que deseja importar. Cada segredo fica neste Mac; a VM só vê um valor falso.» Se nada for encontrado, a lista diz «Nenhum arquivo de configuração encontrado.»

Além dos ficheiros de credenciais, a lista pode incluir uma linha por agente para a sua própria pasta de definições — por exemplo, os seus comandos slash, subagentes e ficheiros de memória do Claude Code. Estes são copiados para a máquina tal como estão; não contêm segredos.

  • Adicionar arquivo .env… permite escolher um ficheiro .env à mão. As suas variáveis são acrescentadas à lista.
  • Importar n (diz Continuar quando nada está marcado) importa as linhas marcadas e avança.
  • Pular não importa nada e avança.

O que importar torna-se o ponto de partida da sua primeira máquina e de todas as máquinas que criar depois: a identidade e a configuração do git, bem como as credenciais de registos, de nuvem e do git, vão para as definições de onde parte cada nova máquina. As chaves SSH são a exceção — só são copiadas para a primeira máquina. As chaves de API de agentes encontradas nas definições dos seus agentes são acrescentadas às definições globais de modelos, para que todas as máquinas possam executar esse agente.

Nota: A análise não copia as sessões iniciadas que as CLIs dos seus agentes têm neste Mac (por exemplo, a sessão do próprio Claude Code). Essas sessões renovam-se sozinhas, e partilhar uma com o Bromure terminaria a sessão de um dos lados sempre que o outro a renovasse. Em vez disso, inicie sessão novamente a partir do Bromure no passo seguinte; isso cria uma sessão própria e separada.

5. Modelos

O passo Modelos: o título Seus modelos por cima do quadro de modelos, com uma coluna Provedores à esquerda e uma coluna Agentes à direita, e um botão Continuar no canto inferior direito.

Este passo só aparece na primeira execução. Seus modelos — «Entre nos provedores que quiser usar ou cole chaves de API. Cada agente passa a usar o modelo padrão do seu provedor — escolha um específico à direita, se quiser, agora ou depois em Preferências → Modelos.» Por baixo está o mesmo quadro de modelos de Preferências › Modelos, com uma coluna Provedores à esquerda e uma coluna Agentes à direita. Tudo o que a análise importou já aparece como configurado.

Para uma subscrição (Claude, ChatGPT, Grok ou Kimi), escolha o início de sessão do fornecedor. O início de sessão acontece no seu Mac, numa máquina temporária oculta; nunca vê um terminal. Um cartão por cima do quadro acompanha-o:

  • «Preparando uma máquina privada de login…», depois linhas de progresso como «Conclua o login no seu navegador…».
  • Quando o início de sessão do fornecedor não abre o navegador sozinho, o cartão mostra um botão Abrir página de login e, para inícios de sessão com código de dispositivo, Seu código: seguido do código a introduzir.
  • Em caso de sucesso, o cartão diz Conectado a fornecedor — «Sua conta fica neste Mac; todas as máquinas podem usá-la.» Clique em OK para o fechar.
  • Cancelar interrompe o início de sessão e remove a máquina temporária.

Só decorre um início de sessão de cada vez: o quadro e o botão Continuar ficam desativados até o início de sessão atual terminar ou ser cancelado. Para fornecedores que usam chaves de API, cole antes a chave na entrada do fornecedor. Modelos e fornecedores explica cada fornecedor e cada opção deste quadro.

Não tem de configurar nada aqui. Clique em Continuar para avançar; um agente sem nada configurado oferece-se para iniciar sessão na primeira vez que o iniciar.

6. Concluído

O passo Concluído: um visto verde, o título Tudo pronto e um botão Começar a usar o Bromure no canto inferior direito.

Tudo pronto confirma a configuração. Se importou ficheiros, aparece por baixo um resumo do que foi importado; caso contrário, o passo diz «Sua primeira máquina está pronta — comece uma sessão e escolha qualquer agente.»

Clique em Começar a usar o Bromure. O assistente fecha e:

  • Se ainda não tiver nenhuma máquina, a aplicação cria uma chamada Espaço de trabalho padrão, a partir das definições que o assistente acabou de reunir. O seu agente predefinido é o primeiro que consegue realmente iniciar: Claude Code, depois Codex, Grok, Kimi Code e Oh My Pi, por esta ordem; se nenhum estiver configurado, fica o Claude Code, que se oferece para iniciar sessão quando arranca.
  • A janela principal abre no ecrã de nova sessão, pronta para a sua primeira sessão. O Início rápido continua a partir daqui.

A partir daí, a aplicação abre diretamente na janela principal.

Dica: A parte das credenciais do assistente continua disponível mais tarde. Mantenha premida a tecla Option ao clicar no + ao lado de Máquinas virtuais na barra lateral para criar uma nova máquina com o assistente: começa no passo Credenciais, salta o passo Modelos e abre as definições da nova máquina quando terminar. O item de menu da aplicação Novo espaço de trabalho a partir das minhas configurações… (⇧⌥⌘N) faz o mesmo.

O que a configuração inicial faz

O passo Instalação produz a imagem base: um disco esparso de 24 GB com o Ubuntu 24.04 ("noble") e arranque EFI/GRUB, a partir do qual cada máquina é clonada. Há duas formas de a produzir; o descarregamento é a preferida e a compilação local é a alternativa. Ambas escrevem para ficheiros .partial temporários e colocam o resultado no lugar de uma só vez, pelo que uma instalação interrompida nunca deixa uma imagem escrita a meio no lugar de uma funcional.

O descarregamento da imagem pré-compilada

O percurso preferido descarrega uma imagem pré-compilada publicada semanalmente em https://dl.bromure.io:

  1. Catálogo. A aplicação obtém o catálogo de imagens assinado da sua versão de imagem, em https://dl.bromure.io/images/201/img-catalog.json. O catálogo indica a imagem atual (ID, versão, SHA-256, tamanhos) e lista os passos de configuração. Tem uma assinatura ed25519 feita com a mesma chave que assina as atualizações da aplicação; a assinatura cobre a identidade da imagem, a sua soma de verificação e cada comando de configuração. Catálogos não assinados ou inválidos são recusados, e um catálogo assinado antes de outro que a aplicação já aceitou nunca é usado (proteção contra reversão).
  2. Descarregamento. A imagem comprimida é descarregada e o seu SHA-256 verificado. Um descarregamento falhado é repetido até 3 vezes, obtendo de novo o catálogo entre tentativas.
  3. Expansão. A imagem é expandida para base.img.partial: 24 GB de tamanho, mas apenas cerca de 6–8 GB de espaço real em disco.
  4. Personalização da imagem. A aplicação descarrega um pequeno conjunto de ferramentas de imagem publicadas com a imagem e arranca-as numa VM auxiliar temporária, que executa os passos de configuração do catálogo dentro da imagem (ver a secção seguinte). O progresso indica «Customizing the image: waiting for the prompt…», «…: installing packages…», e assim por diante.
  5. Colocação no lugar. É criado um novo armazenamento de variáveis EFI, e base.img, efivars.bin, base.version e image-state.json são colocados no lugar em conjunto.

Passos de configuração: os pacotes recomendados

A imagem publicada tem de ser legalmente redistribuível, pelo que contém apenas software livre (Node.js, Docker, kitty, gh, glab, kubectl, doctl, awscli, azure-cli, e mais). Tudo o resto é declarado como passos de configuração assinados no catálogo e instalado no seu Mac, na sua cópia da imagem. Os passos incluídos na versão 5.0.0 são:

OrdemPassoComo se instala
10Claude Code (Anthropic)npm, envolto no analisador de cadeia de fornecimento Socket.dev (npx --yes @socketsecurity/cli npm install -g --silent @anthropic-ai/claude-code)
20Codex CLI (OpenAI)npm, envolto no Socket.dev
30Grok CLI (x.ai)O script de instalação do fornecedor
35Kimi Code CLI (Moonshot AI)npm, envolto no Socket.dev
37Oh My Pi CLI (omp) + runtime bunO script de instalação do bun e depois o omp através do npm, envolto no Socket.dev
40Google Cloud SDK (gcloud)gcloud, gsutil, bq

Numa instalação nova, todos os passos incluídos são executados sem pedido adicional: iniciar a configuração a partir do assistente (ou executar bromure-ac init) é o seu consentimento. Os passos publicados mais tarde precisam da sua aprovação explícita através do pedido Novos pacotes recomendados descrito em Atualizações da imagem base. Como a assinatura do catálogo cobre o comando de cada passo, um servidor de descarregamento adulterado não consegue alterar o que é executado como root na sua imagem.

A alternativa de compilação local

Se o descarregamento falhar por um motivo do lado do descarregamento — está offline, o servidor está em baixo, ou a soma de verificação ou a expansão falham — a aplicação mostra Falha no download da imagem, com o erro e «O Bromure pode construir a imagem localmente em vez disso (~10 min, mesmo resultado).», e os botões Construir localmente e Cancelar. Nunca muda para uma compilação local em silêncio. (O comando bromure-ac init, pelo contrário, recorre à alternativa automaticamente.)

A compilação local produz a mesma imagem no seu Mac:

  1. Descarrega as ferramentas de compilação da imagem e guarda-as em cache na pasta de suporte.
  2. Cria um novo disco esparso de 24 GB.
  3. Arranca uma VM de compilação de uso único (4 vCPUs, 4 GB de RAM) que instala o Ubuntu noble, as ferramentas livres e o GRUB.
  4. Aplica os mesmos passos de configuração do catálogo que o percurso de descarregamento.

O progresso indica «Building the image: downloading tools…», «Allocating 24GB sparse disk…», «Building the image: starting…», e assim por diante. Neste percurso, a barra de progresso segue o registo do instalador e fica nos 97% até ao salto final de «Base image ready».

A compilação local foi pensada para sobreviver a VPNs: todos os descarregamentos de pacotes passam por um proxy do lado do anfitrião, a MTU de rede da VM de compilação é reduzida antes de qualquer descarregamento, a falta de rede para a compilação cedo e uma falha do kernel do convidado desencadeia uma nova tentativa automática num disco novo. Duas saídas de emergência relacionadas:

  • Se a VM de compilação não obtiver endereço de rede, a compilação falha com Problema de rede durante a construção da imagem base, oferecendo Reparar e tentar de novo (reinicia os serviços de rede do macOS; pede a sua palavra-passe de administrador) ou Cancelar.
  • Em VPNs que descartam pacotes grandes (por exemplo, WireGuard com MTU 1420), pode definir a MTU da VM de compilação: defaults write io.bromure.agentic-coding vm.mtu -int 1400.

Também pode escolher de propósito a compilação local a qualquer momento: Recriar imagem base… › Recompilar localmente no menu da aplicação, ou bromure-ac init --build-local.

Pontos de extremidade de rede usados durante a configuração

Para administradores de firewall e proxy, a instalação comunica com:

Ponto de extremidadeFinalidade
https://dl.bromure.ioO catálogo de imagens (images/201/img-catalog.json), os descarregamentos de imagens e as ferramentas de imagem
Espelhos de pacotes e sites de fornecedoresPacotes Ubuntu, o registo npm, Socket.dev e scripts de instalação de fornecedores, obtidos através do proxy do lado do anfitrião da aplicação
https://bromure.io/api/v1/release-agentic-codingVerificação de atualizações da aplicação (não faz parte da configuração da imagem)

A instalação em si não abre portas de rede à escuta; o proxy de pacotes do lado do anfitrião usado durante as compilações só escuta numa porta temporária de localhost.

Tempo de configuração e utilização de disco

PercursoDuração típicaNotas
Descarregamento pré-compiladoO tempo de descarregar alguns GB, mais a expansão, mais alguns minutos para os passos de configuraçãoDepende sobretudo da sua ligação
Compilação localCerca de 10 minutosPara ao fim de 45 minutos, no máximo

Utilização de disco:

  • Para começar: pelo menos 8 GB livres no volume que contém ~/Library/Application Support/BromureAC/.
  • Após a instalação: a imagem base ocupa cerca de 6–8 GB de espaço real (24 GB de tamanho — as partes não usadas de um disco esparso não custam nada).
  • Por máquina: o disco de sistema de cada máquina começa como um clone APFS copy-on-write da imagem base, por isso quase não ocupa espaço no início e só cresce à medida que a máquina escreve dados. O seu disco pessoal cresce da mesma forma.

A configuração acontece uma vez por versão da imagem base.

A ferramenta de linha de comandos

A aplicação não instala nada fora da sua conta de utilizador por iniciativa própria. Para controlar o Bromure a partir do Terminal, escolha Instalar ferramenta de linha de comando… no menu da aplicação (menu Bromure Agentic Coding). A aplicação pergunta Instalar a ferramenta de linha de comando “bromure-cli”? — «Isso cria um link simbólico em /usr/local/bin/bromure-cli para você controlar o Bromure pelo terminal (vm, exec, trace, …). Pede sua senha de administrador uma vez.» Clique em Instalar e introduza a sua palavra-passe de administrador; não é instalado nenhum auxiliar em segundo plano.

O item de menu só funciona a partir do pacote da aplicação instalada. A referência completa de comandos está em CLI, API e MCP.

Onde tudo é armazenado

Tudo o que a aplicação escreve fica na sua conta de utilizador; nada é instalado a nível do sistema, exceto a ligação opcional bromure-cli.

CaminhoConteúdo
~/Library/Application Support/BromureAC/A pasta de suporte da aplicação
…/BromureAC/base.imgA imagem base Ubuntu (24 GB de tamanho, ~6–8 GB em disco)
…/BromureAC/efivars.binO armazenamento de variáveis EFI da imagem base
…/BromureAC/base.versionO carimbo de versão da imagem instalada (por exemplo 201 ou 201.1)
…/BromureAC/image-state.jsonA origem da imagem e os passos de configuração já aplicados
…/BromureAC/img-catalog.jsonCópia em cache do catálogo de imagens
…/BromureAC/profiles/Uma pasta por máquina: profile.json, o disco de sistema disk.img, o disco pessoal home.img, chaves SSH, pontos de controlo e estado guardado
…/BromureAC/sessions.jsonAs suas sessões: títulos, agentes, pastas e estados
…/BromureAC/transcripts/Uma cópia local da conversa de cada sessão, para poder ser lida com a máquina desligada
…/BromureAC/rooms.jsonAs suas salas
…/BromureAC/delegations.jsonTrabalho que os agentes delegaram uns nos outros
…/BromureAC/models.encAs definições globais de modelos (encriptadas)
…/BromureAC/claude-subscription.enc, codex-subscription.enc, grok-subscription.enc, kimi-subscription.encSessões iniciadas das subscrições (encriptadas)
…/BromureAC/profile-template.encSegredos do modelo Predefinições de onde parte cada nova máquina (encriptados)
…/BromureAC/security-timeline/A cronologia de segurança, um ficheiro por dia, guardada durante 90 dias
…/BromureAC/kube/Clusters Kubernetes, registos e o conector de mensagens, com os discos das suas VMs
…/BromureAC/pii/Dados da proteção de dados pessoais
…/BromureAC/dhcp-leases.sqliteConcessões de endereços, para que cada máquina mantenha normalmente o seu endereço IP
…/BromureAC/browser/A imagem do navegador integrado, se estiver instalado
…/BromureAC/base.img.partial, base.img.gz.partial, efivars.partialFicheiros de instalação temporários; se os vir, há uma instalação em curso ou que foi interrompida
~/Library/Logs/BromureAC/bromure-ac.logO registo da aplicação
~/Library/LaunchAgents/io.bromure.agentic-coding.boot.plistAgente de arranque no início de sessão, escrito quando alguma máquina tem Iniciar esta VM no login ativado
/usr/local/bin/bromure-cliA ligação opcional da ferramenta de linha de comandos
Domínio UserDefaults io.bromure.agentic-codingDefinições da aplicação

Duas coisas ficam noutro local de propósito:

  • A chave-mestra de credenciais é guardada no Keychain de Proteção de Dados do macOS, marcada como apenas neste dispositivo, por isso nunca sai do Mac. Os segredos em disco são texto cifrado AES-256-GCM; consulte Credenciais.
  • O pacote da aplicação contém um daemon de sistema (io.bromure.fatclient-tunnel) usado quando espelha um Mac remoto. Só é registado quando é necessário, e o primeiro registo mostra um interruptor de aprovação em Definições do Sistema › Geral › Itens de início de sessão; consulte Acesso remoto e clientes.

bromure-ac info imprime a qualquer momento o carimbo de versão, o tamanho e o caminho da imagem instalada.

Atualizações da imagem base

Carimbos de versão

A imagem instalada regista a sua versão em base.version. A versão 5.0.0 da aplicação usa a imagem base 201. Qualquer recompilação, novo descarregamento ou emenda na mesma versão acrescenta uma revisão decimal (201 → 201.1 → 201.2). image-state.json regista a origem da imagem e os passos de configuração já aplicados.

A aplicação procura atualizações no catálogo da sua própria versão de imagem, por isso uma aplicação mais antiga nunca apanha uma imagem feita para uma mais recente. As imagens pré-compiladas são republicadas semanalmente com pacotes Ubuntu atualizados, mas essas republicações semanais mantêm o mesmo número de versão, pelo que não lhe é pedido que atualize todas as semanas.

O pedido de atualização

Quando a imagem no seu Mac é mais antiga do que a versão que a aplicação espera, ou o catálogo publica uma versão mais recente, a aplicação mostra Atualização da imagem base disponível ao arrancar: «Sua imagem base está na versão X, mas a versão Y está disponível. A imagem atual continua funcionando — atualizar baixa a nova imagem pré-construída (alguns GB; reconstrução local como alternativa) e reaplica os pacotes recomendados.»

  • Atualizar agora inicia a reinstalação, com descarregamento primeiro.
  • Depois fecha o pedido até ao próximo arranque. A imagem atual continua a funcionar em qualquer dos casos.

Uma imagem mais recente do que a aplicação espera continua a funcionar e não desencadeia o pedido.

Atualizar cada máquina

Instalar uma nova imagem base não altera as suas máquinas existentes: cada máquina mantém o disco de sistema a partir do qual foi clonada. Da próxima vez que iniciar uma máquina cujo disco veio de uma base mais antiga, a aplicação pergunta Está disponível uma imagem de base mais recente. — «Este espaço de trabalho usa a base v201; a v201.1 está no disco. Atualizá-lo agora? A atualização repõe o disco do espaço de trabalho — tudo o que foi instalado dentro da VM é apagado; a sua pasta de projeto não é tocada.»

  • Sim, atualizar repõe o disco de sistema da máquina na nova base e depois inicia-a. O disco pessoal (e tudo o que está em /home/ubuntu) é mantido.
  • Não inicia a máquina tal como está e não volta a perguntar até ser instalada uma imagem base diferente.
  • Lembrar-me mais tarde inicia a máquina tal como está e pergunta de novo no primeiro arranque depois de um dia.

A resposta é memorizada para cada máquina.

Novos pacotes recomendados

Quando o catálogo lista passos de configuração ainda não aplicados à sua imagem, a aplicação pergunta Novos pacotes recomendados ao arrancar, listando-os: «Novos pacotes são recomendados para instalação: … O Bromure os instala na imagem base (alguns minutos, na VM em segundo plano). Os espaços de trabalho existentes continuam rodando; o aviso de divergência de cada um oferecerá uma redefinição para incorporá-los.»

  • Instalar aplica os passos a um clone copy-on-write de base.img e coloca a imagem emendada no lugar quando termina; as máquinas em execução continuam a funcionar. O carimbo de versão recebe uma revisão decimal (por exemplo 201 → 201.1), por isso cada máquina oferece depois a atualização descrita acima.
  • Depois pergunta de novo no próximo arranque.

Nada é executado sem este consentimento — os passos de configuração são executados como root dentro da imagem base.

Recompilar à mão

Para reinstalar a imagem a qualquer momento, escolha Recriar imagem base… no menu da aplicação. É perguntado Atualizar a imagem base?, com as opções Descarregar pré-compilada, Recompilar localmente e Cancelar. Os discos das máquinas existentes não são tocados. A imagem antiga continua em uso até a nova estar completa, por isso pode continuar a iniciar máquinas durante a recompilação. Os equivalentes na linha de comandos são bromure-ac init (descarregamento primeiro) e bromure-ac init --build-local.

Um descarregamento guarda uma cópia da imagem publicada com os pacotes recomendados instalados (stock.img, que partilha os blocos de disco com a imagem base). Enquanto o catálogo indicar a mesma imagem, Descarregar pré-compilada parte dessa cópia: salta o descarregamento e a instalação dos agentes, aplica apenas os pacotes publicados desde então e executa o seu script de personalização. Isto torna rápido repetir ou rever um script de personalização. Para recomeçar do zero mesmo assim — por exemplo, para obter versões mais recentes dos agentes — ative Baixar novamente e reinstalar os agentes, ou execute bromure-ac init --fresh.

Manter a aplicação atualizada

A aplicação atualiza-se a si própria com o Sparkle. Verifica https://bromure.io/api/v1/release-agentic-coding uma vez por dia, e as atualizações são verificadas com a mesma chave pública que assina os catálogos de imagens. Para verificar já, escolha Verificar atualizações… no menu da aplicação, por baixo de Acerca de. (As compilações de desenvolvimento não têm este item.)

As atualizações da aplicação e as da imagem base são separadas: atualizar a aplicação só leva a uma atualização da imagem quando a nova versão da aplicação espera uma imagem base mais recente.

Mudar para um novo Mac

Não existe um assistente de migração integrado. O percurso recomendado é uma instalação de raiz mais uma cópia dos dados das suas máquinas:

  1. No novo Mac, instale a aplicação e percorra o assistente. Voltar a descarregar a imagem base é mais rápido e limpo do que copiá-la.
  2. Encerre a aplicação em ambos os Macs.
  3. Copie ~/Library/Application Support/BromureAC/profiles/ do Mac antigo para o mesmo local no novo. Cada subpasta é uma máquina: as suas definições (profile.json), o seu disco de sistema (disk.img), o seu disco pessoal (home.img — os seus repositórios clonados, caches e histórico da shell) e as suas chaves SSH. Para manter também a sua lista de sessões e as conversas, copie ainda sessions.json, rooms.json e a pasta transcripts/.
  4. Abra a aplicação no novo Mac. As suas máquinas aparecem em Máquinas virtuais. Se uma máquina foi clonada a partir de uma imagem base diferente da que está agora instalada, oferece a atualização descrita acima; escolha Não para manter o disco atual.

Três coisas não são transferidas, de propósito:

  • Credenciais. A chave-mestra que encripta os segredos guardados fica no Keychain de Proteção de Dados do Mac e está marcada como apenas neste dispositivo, por isso os segredos encriptados e as sessões iniciadas do Mac antigo não podem ser lidos no novo. Os respetivos detalhes não secretos em cada profile.json sobrevivem; volte a introduzir as suas chaves no painel Credenciais de cada máquina e inicie sessão de novo em Preferências › Modelos (consulte Credenciais).
  • Inscrição empresarial. O certificado de identidade da instalação pertence a uma só instalação; inscreva novamente o novo Mac (consulte Empresa).
  • Definições da aplicação no domínio de predefinições io.bromure.agentic-coding, a menos que as copie você mesmo.

Dica: Os discos das máquinas são esparsos, e as poupanças do copy-on-write perdem-se numa simples cópia pela rede — uma máquina que ocupa alguns GB no Mac antigo pode crescer até ao seu tamanho total escrito pelo caminho. Use uma cópia que respeite ficheiros esparsos (por exemplo rsync -aS) e verifique primeiro o espaço livre no novo Mac.

Desinstalar completamente

Para repor apenas a imagem base mantendo a aplicação e as suas máquinas, execute bromure-ac reset (adicione --yes para saltar a confirmação). Elimina base.img, efivars.bin, base.version, image-state.json e o descarregamento guardado (stock.img, stock-state.json), pelo que o próximo arranque executa a configuração de novo. Nunca toca nas suas máquinas.

Não existe um desinstalador incluído. Para remover tudo:

  1. Encerre a aplicação (e qualquer agente headless: verifique com pgrep -fl bromure-ac).

  2. Arraste o Bromure Agentic Coding de /Applications para o Lixo.

  3. Elimine a pasta de suporte — imagem base, todas as máquinas e os seus discos, sessões, caches e a CA própria da instalação:

    rm -rf ~/Library/Application\ Support/BromureAC
    
  4. Elimine o agente de arranque no início de sessão, se existir:

    rm -f ~/Library/LaunchAgents/io.bromure.agentic-coding.boot.plist
    
  5. Elimine a pasta de registos:

    rm -rf ~/Library/Logs/BromureAC
    
  6. Remova as entradas da aplicação em Definições do Sistema › Geral › Itens de início de sessão e extensões (o interruptor de aprovação do daemon de espelhamento remoto, se alguma vez o ativou).

  7. Remova a ferramenta de linha de comandos, se a instalou:

    sudo rm -f /usr/local/bin/bromure-cli
    
  8. Opcionalmente, limpe as definições da aplicação:

    defaults delete io.bromure.agentic-coding
    

Aviso: O passo 3 elimina definitivamente os discos de todas as máquinas — repositórios clonados, trabalho não confirmado, caches de pacotes, histórico da shell — e a conversa de todas as sessões. Faça push ou exporte primeiro tudo o que quiser guardar.

A chave-mestra de credenciais no Keychain fica para trás quando o seu texto cifrado desaparece. É inofensiva, mas pode eliminá-la no Acesso a Porta-chaves procurando por io.bromure.agentic-coding.master-key.