Dépannage
Ce chapitre est organisé par symptôme. Chaque entrée indique la cause probable et les étapes pour la corriger. Commencez par Premier réflexe : journaux, santé et état de l'application — presque tous les diagnostics ci-dessous s'appuient sur l'une de ces trois sources — puis passez à la section qui correspond à ce que vous observez.
Deux faits sous-tendent la plupart de ce qui suit. Premièrement, un espace de travail est un bac à sable persistant : son disque système (disk.img) et son répertoire personnel Linux (home.img) survivent aux lancements successifs, si bien qu'un problème dans l'un ne se résout pas en relançant simplement. Deuxièmement, Bromure Agentic Coding applique la politique de sécurité sur l'hôte, avant que le trafic n'atteigne la VM — de sorte que les blocages et erreurs qui semblent apparaître « à l'intérieur » de l'invité proviennent généralement du proxy de l'hôte, et se résolvent dans l'application, non dans la VM.
Premier réflexe : journaux, santé et état de l'application
Avant de changer quoi que ce soit, découvrez ce que l'application elle-même signale.
Le journal de sécurité
Ouvrez Fenêtre → Journal de sécurité…. Il s'agit d'un suivi en direct de chaque événement de sécurité émis par le proxy de l'hôte : recherches de chaîne d'approvisionnement et blocages 451, suppressions de scripts d'installation, détections d'injection de prompt, échanges d'identifiants et alertes de fuite, changements de Fusion et de routage, et événements d'accès à distance. Utilisez le champ Filtrer… pour restreindre à un nom de paquet, un hôte ou un espace de travail, et décochez Défilement automatique pour conserver votre position pendant votre lecture.
Remarque : Le journal de sécurité est un tampon circulaire en mémoire d'environ 5 000 lignes et ne persiste pas entre les redémarrages de l'application. Si vous avez besoin d'une copie durable — ou si vous poursuivez quelque chose qui fait planter l'application — lancez
bromure-clidepuis un terminal (section suivante) ; chaque ligne de journal est également reproduite sur stderr.
Capturer stderr depuis un terminal
L'application reproduit ses journaux sur la sortie d'erreur standard. La lancer depuis un terminal vous donne un enregistrement durable et copiable qui survit à un redémarrage ou à un plantage de l'application :
"/Applications/Bromure Agentic Coding.app/Contents/MacOS/bromure-cli" run
Pour plus de détails, définissez une variable de débogage avant la commande (voir l'Annexe) :
BROMURE_AC_DEBUG=1— débogage horodaté pour le moteur d'automatisation, les classificateurs d'injection et le pipeline de traces.BROMURE_CLI_DEBUG=1— diagnostics de connexion au socket de contrôle pour les commandes CLI.BROMURE_REPAIR_DEBUG=1— diagnostics du proxy de réparation d'inférence locale, ajoutés à/tmp/bromure-repair.log.
Le contrôle de santé de l'automatisation (GET /health)
L'application exécute un socket de contrôle réservé au propriétaire à l'adresse ~/Library/Application Support/BromureAC/control.sock chaque fois qu'elle est en cours d'exécution. Vous pouvez confirmer que l'application est active et répond en lui demandant sa santé, ce qui renvoie un petit objet JSON :
curl --unix-socket "$HOME/Library/Application Support/BromureAC/control.sock" http://localhost/health
{ "status": "ok", "service": "bromure-ac-automation", "debugEnabled": false }
Si vous avez activé le serveur d'automatisation en boucle locale (Préférences → Automatisation, désactivé par défaut), le même point de terminaison est accessible via TCP sur le port configuré — 9223 par défaut :
curl http://127.0.0.1:9223/health
Une connexion refusée signifie que l'application (ou son agent sans interface) n'est pas en cours d'exécution ; bromure-cli vm ls démarrera l'agent en arrière-plan à la demande et constitue un autre contrôle rapide de vitalité. L'indicateur debugEnabled signale si BROMURE_DEBUG_CLAUDE a déverrouillé les points de terminaison de débogage.
Le journal de la console de configuration
Pendant l'installation d'une image de base, la fenêtre de configuration comporte une section repliée Sortie console qui diffuse le journal brut de l'installateur, avec un bouton Copier. Développez-la pour suivre la progression, et copiez l'intégralité du journal si vous devez le joindre à un rapport de bogue. Seules les 100 dernières lignes restent affichées à l'écran, alors copiez avant que la fenêtre ne se ferme.
Configuration et installation de l'image de base
L'application ne peut exécuter aucun espace de travail tant qu'une image de base Linux n'existe pas. Le premier lancement affiche la fenêtre Bienvenue dans Bromure Agentic Coding ; cliquer sur Commencer exécute la même installation que bromure-cli init. Le déroulement complet est documenté dans Installation ; cette section couvre ce qu'il faut faire en cas d'échec.
Le téléchargement préconstruit échoue ou se bloque
Cause. Le chemin privilégié télécharge une image signée et compressée en gzip (~3 Go) depuis https://dl.bromure.io, vérifie son SHA-256 et la décompresse. Une interruption réseau, un incident CDN ou une somme de contrôle non concordante l'interrompt. Le téléchargement réessaie déjà jusqu'à trois fois, en récupérant à nouveau le catalogue entre les tentatives (la publication hebdomadaire peut supprimer la version précédente en cours de téléchargement).
Correction. Surveillez la pastille d'état et la Sortie console dans la fenêtre de configuration. En cas d'échec côté téléchargement, l'interface affiche une alerte Échec du téléchargement de l'image proposant Construire localement ou Annuler :
- Si vous êtes en ligne et qu'il s'agissait d'un échec transitoire, fermez et réessayez depuis le menu de l'application : Reconstruire l'image de base… → Télécharger la version préconstruite.
- Si le téléchargement ne peut aboutir (réseau restrictif, CDN bloqué), choisissez Construire localement pour fabriquer l'image sur votre Mac à la place (environ 10 minutes). Cela produit la même image.
- En ligne de commande,
bromure-cli initbascule automatiquement vers la construction locale sans invite.
« Problème réseau pendant la construction de l'image de base »
Cause. La construction locale démarre une VM installateur Alpine jetable qui a besoin d'un bail DHCP et d'un accès sortant. Sur certains VPN et réseaux verrouillés, elle n'obtient aucun bail, ou ses téléchargements disparaissent dans un trou noir à cause d'une incompatibilité de MTU.
Correction. La construction s'arrête avec une alerte Problème réseau pendant la construction de l'image de base proposant Réparer et réessayer (redémarre les démons réseau de macOS via le Réparateur réseau — demande votre mot de passe administrateur) ou Annuler. Si elle continue d'échouer sur un VPN, fixez la MTU de la carte réseau de l'invité avant de réessayer (les tunnels de type WireGuard ont souvent besoin de 1280 ou moins) :
defaults write io.bromure.agentic-coding vm.mtu -int 1280
La MTU est déjà à 1280 par défaut ; ne l'abaissez davantage que si un chemin PMTU d'entreprise l'exige.
L'installation manque d'espace disque
Cause. Chaque installation d'image nécessite au moins 8 Go libres au départ sur le volume qui héberge le répertoire de support, et un moniteur en cours de construction abandonne si l'espace libre descend sous 1 Go (afin que apt/debootstrap ne réessaient pas jusqu'à un délai d'expiration inexpliqué).
Correction. Libérez de l'espace et réessayez. Voir Espace disque pour savoir ce qui en consomme le plus.
L'image de base reste dans un état partiel
Cause. Annuler en cours d'installation, ou une construction échouée, laisse des fichiers transitoires : base.img.partial, base.img.gz.partial et efivars.partial dans le répertoire de support. Leur présence signifie qu'une installation est soit en cours, soit a été interrompue. La véritable image n'est jamais promue que de manière atomique, de sorte qu'une image fonctionnelle existante reste utilisable tout du long.
Correction. Relancez l'installation jusqu'à son terme (Reconstruire l'image de base… ou bromure-cli init). Pour repartir de zéro, bromure-cli reset supprime les quatre artefacts de l'image de base (base.img, efivars.bin, base.version, image-state.json) après confirmation — il ne touche pas à vos espaces de travail, aux fichiers Alpine mis en cache, ni au catalogue mis en cache. Confirmez à tout moment ce qui est installé avec bromure-cli info, qui affiche le tampon de version, la taille logique et physique, et le chemin (ou « No base image yet. »).
Un espace de travail ne démarre pas ou ne reprend pas
Sélectionnez l'espace de travail dans la barre latérale pour voir son tableau de bord : la pastille d'état (Éteint, Suspendu, En cours d'exécution), les cartes CPU / Mémoire / vCPU / Disque / Temps d'activité, le résumé CONFIGURATION, et un bouton Démarrer ou Reprendre. Le cycle de vie des espaces de travail est traité dans Espaces de travail ; les symptômes ci-dessous sont ceux qui laissent une VM bloquée.
Démarrer ne fait rien, ou la VM ne finit jamais de démarrer
Cause. Contrairement au volet de navigateur, les VM d'espace de travail ne sont pas préchauffées — elles démarrent à froid depuis leur disque en copie sur écriture (ou restaurent depuis un instantané de suspension), ce qui prend quelques secondes. Un attachement CLI attend jusqu'à environ 60 secondes pendant le démarrage. Un démarrage réellement bloqué signifie généralement un système de fichiers invité endommagé ou un fichier de configuration sur lequel l'invité s'étrangle.
Correction.
- Laissez-lui du temps, puis vérifiez la courbe CPU sur le tableau de bord — plate à zéro après une minute signifie qu'elle ne progresse pas.
- Redémarrez sur place depuis la barre d'actions du tableau de bord (Redémarrer → Redémarrage forcé la détruit immédiatement).
- Si elle ne démarre toujours pas, le disque lui-même peut être endommagé. Restaurez vers un état récent correct depuis l'interface de retour arrière de l'espace de travail, ou utilisez Réinitialiser le disque pour le recloner depuis l'image de base (cela conserve le répertoire personnel ; cela abandonne tout instantané de RAM enregistré et l'état des onglets). Réinitialiser à la base… est l'option radicale.
- Pour réparer plutôt que réinitialiser, inspectez le disque arrêté avec le navigateur ext4 — voir Récupérer un espace de travail qu'un fichier défectueux empêche de démarrer.
Un espace de travail suspendu refuse de reprendre
Cause. La reprise restaure la RAM enregistrée (vm.state) et la disposition des onglets (tabs.json), ce qui nécessite l'identité machine persistante et l'adresse MAC de l'espace de travail. Si les dossiers partagés de l'espace de travail ont changé pendant sa suspension, la reprise ne serait pas sûre.
Correction. Lorsque les partages ont changé, l'application demande Abandonner la VM suspendue de « … » ? — choisissez Abandonner et enregistrer ; le prochain lancement démarrera à froid proprement. Vos fichiers personnels et de dossiers partagés ne sont pas affectés. Notez qu'un instantané de RAM enregistré est toujours abandonné lorsque le disque est réinitialisé ou effacé : un disque neuf associé à une ancienne RAM se corromprait instantanément, c'est donc voulu.
L'espace de travail est marqué « Compromis »
Cause. Le proxy a détecté une tentative sortante de faire fuiter un identifiant de session vers un hôte pour lequel il n'avait pas été émis, et vous avez choisi Arrêter ou Conserver pour enquête. L'espace de travail est signalé avec compromised.flag et le sélecteur affiche le badge « Compromis — le lancement invitera à effacer le disque et le répertoire personnel ».
Correction. Le prochain lancement refuse de démarrer tant que vous ne confirmez pas l'effacement. Effacer et lancer supprime le disque, le répertoire personnel, l'instantané de RAM et l'état des onglets, puis démarre immédiatement une VM neuve — vos jetons, clés SSH et paramètres d'espace de travail sont préservés. Les dossiers de projet partagés se trouvent en dehors du stockage de Bromure et ne sont pas effacés, alors examinez-les manuellement à la recherche de fichiers contaminés. Le déroulement complet de la détection se trouve dans Identifiants.
Espace disque libre insuffisant
Cause. La création de tout clone en copie sur écriture ou de toute image de répertoire personnel refuse de se poursuivre avec moins de 1 Go libre sur le volume, échouant rapidement avec une erreur de disque plein plutôt que de se coincer en pleine session.
Correction. Libérez de l'espace (voir Espace disque) et réessayez Démarrer.
Récupérer un espace de travail qu'un fichier défectueux empêche de démarrer
Cause. Une mauvaise configuration écrite dans l'invité — un /etc/fstab cassé, un fichier de configuration corrompu — peut empêcher la VM de démarrer avant que vous puissiez vous connecter pour la réparer. Comme macOS ne peut pas monter l'ext4, vous ne pouvez pas simplement ouvrir le disque dans le Finder.
Correction. Utilisez le navigateur ext4 intégré en espace utilisateur, avec la VM de l'espace de travail arrêtée :
- Menu Espaces de travail → Ouvrir un fichier ext4…, puis choisissez le
disk.imgouhome.imgde l'espace de travail sous~/Library/Application Support/BromureAC/profiles/. - Parcourez jusqu'au fichier fautif. Faites un clic droit pour le Prévisualiser ou l'Extraire… vers votre Mac.
- Pour le corriger sur place, cliquez sur Activer l'édition… (un avertissement explicite s'affiche — ne modifiez jamais une image qu'une VM en cours d'exécution a ouverte), puis clic droit → Remplacer… par une copie corrigée depuis votre Mac.
- Si le navigateur signale que le journal a besoin d'une récupération, exécutez d'abord Lancer fsck… (nécessite
e2fsprogs; l'application suggèrebrew install e2fsprogss'il est absent).
Avertissement : Le remplacement sur place ne fonctionne que lorsque le nouveau contenu tient dans les blocs déjà alloués au fichier — agrandir un fichier est refusé (« That file would need to grow »). Utilisez-le pour corriger des configurations et extraire des fichiers, non pour ajouter des données.
« Réinitialiser le disque » / « Effacer le répertoire personnel… » sont grisés
Cause. Ces actions destructives sont refusées tant que la fenêtre de session de l'espace de travail est ouverte.
Correction. Fermez d'abord la fenêtre de session (l'infobulle du bouton indique « Close the session window first. »), puis réessayez.
Échecs d'authentification des agents
La conception maintient les véritables identifiants hors de la VM : l'invité s'exécute avec des jetons fictifs (« faux »), et le proxy de l'hôte substitue les véritables secrets sur le fil. La plupart des symptômes d'« authentification » remontent à cette frontière. Voir Identifiants pour le modèle complet.
L'agent — ou vous — voit une fausse clé d'API
Cause. C'est attendu. Les variables d'environnement telles que ANTHROPIC_API_KEY, OPENAI_API_KEY, XAI_API_KEY, GH_TOKEN, et les variables AWS à l'intérieur de la VM sont des leurres délibérés. Le proxy substitue la véritable valeur côté hôte pour les destinations autorisées, de sorte qu'un faux qui fuit ne vaut rien.
Correction. Rien — n'essayez pas de « corriger » la clé à l'intérieur de la VM. Si de véritables requêtes échouent avec une erreur d'authentification chez le fournisseur, le problème est le véritable secret sur l'hôte : ouvrez le volet Identifiants de l'espace de travail et saisissez-le à nouveau. Un faux jeton qui apparaît dans une requête vers le mauvais hôte déclenchera la détection de compromission plutôt que d'authentifier.
Une connexion par abonnement (S'inscrire avec Claude / ChatGPT / Grok) a cessé de fonctionner
Cause. En mode d'authentification Abonnement, les jetons OAuth ont été capturés une fois dans une VM d'inscription jetable et stockés chiffrés sur l'hôte (claude-subscription.enc, codex-subscription.enc, grok-subscription.enc) ; l'hôte détient le rafraîchissement. Si le jeton de rafraîchissement est révoqué, expiré, ou si la session du compte prend fin, l'hôte ne peut plus émettre un porteur valide et les requêtes commencent à échouer.
Correction. Réinscrivez-vous. Dans le volet Agents de l'espace de travail, oubliez l'abonnement stocké et exécutez à nouveau S'inscrire avec Claude / ChatGPT / Grok — cela lance une VM jetable neuve, capture de nouveaux jetons et les stocke côté hôte. La fausse clé à l'intérieur de l'espace de travail ne change jamais.
« Échanger le jeton d'abonnement ? » continue d'apparaître, ou a été refusé par erreur
Cause. C'est l'autre mécanisme d'abonnement : lorsqu'un agent se connecte avec un véritable jeton à l'intérieur de la VM, le proxy le détecte et propose de le déplacer vers l'hôte afin que le véritable secret quitte l'invité. Le choix est mémorisé par espace de travail et par fournisseur.
Correction. Dans le volet Traçage de l'espace de travail, les lignes Échange du jeton d'abonnement Claude et Échange du jeton d'abonnement Codex affichent Actif ou Refusé avec un contrôle de réinitialisation — Oublier l'échange (redemander à la prochaine session) ou Réactiver l'invite. Réinitialisez pour être à nouveau interrogé à la prochaine session. Le consentement et les autorisations par session sont uniquement en mémoire et ne survivent pas à un redémarrage de l'application.
Erreurs TLS et de certificat à l'intérieur de la VM
« self-signed certificate » ou « unable to get local issuer certificate »
Cause. Tout le trafic HTTPS de l'invité est intercepté par le proxy MITM de l'hôte, qui resigne le trafic avec une autorité de certification racine propre à l'installation. Les outils à l'intérieur de la VM lui font confiance grâce aux variables d'environnement de bundle CA que Bromure définit pour node, python, go, rust, curl, deno et le SDK AWS, ainsi qu'au fichier CA installé dans le partage meta (bromure-ca.pem). Un outil qui ignore ces variables — ou un conteneur qui apporte son propre magasin de confiance — rejettera le certificat du proxy.
Correction.
- Pour la plupart des outils, aucune action n'est nécessaire. Si un outil spécifique échoue, pointez-le vers le bundle CA système/exporté plutôt que de désactiver la vérification ; le fichier CA est disponible à l'intérieur de l'invité et les variables standard de type
*_CA_BUNDLE/SSL_CERT_FILEsont déjà exportées. - Pour un conteneur Docker qui doit atteindre le réseau, utilisez la bascule Hériter des paramètres de proxy HTTP de la feuille Exécuter un nouveau conteneur afin que
http_proxy/https_proxyse propagent, et montez ou installez le CA là où les outils du conteneur le recherchent. - Si des erreurs de certificat n'apparaissent qu'après avoir supprimé ou renouvelé le CA (ci-dessous), relancez les sessions concernées afin que le nouveau CA soit réinstallé.
Renouveler l'autorité de certification racine
Cause / quand le faire. La clé privée du CA racine se trouve à ~/Library/Application Support/BromureAC/ca/key.pem (mode 0600) avec son certificat dans cert.pem. Vous pouvez vouloir la renouveler si vous soupçonnez que la clé a été exposée.
Correction. Quittez l'application, supprimez le répertoire ca/, et relancez — un CA neuf est généré et réinstallé dans les espaces de travail à leur prochain lancement. Les corps de trace déjà capturés ne sont pas affectés, mais tout invité qui avait épinglé l'ancien certificat devra faire à nouveau confiance au nouveau.
Blocages de chaîne d'approvisionnement
Lorsqu'un npm install, pip install ou similaire d'un agent échoue avec une erreur distinctive, c'est très probablement le pipeline de chaîne d'approvisionnement de l'hôte qui est intervenu. La politique, ses couches et le journal de sécurité sont documentés dans Protection de la chaîne d'approvisionnement et la référence Paramètres de chaîne d'approvisionnement.
Une installation a échoué avec un HTTP 451
Cause. Un 451 (« Unavailable For Legal Reasons ») est le blocage de chaîne d'approvisionnement de Bromure — choisi pour se distinguer d'un coup d'œil du 403 qu'utilisent les Garde-fous. Le gestionnaire de paquets affiche la raison telle quelle dans sa sortie d'erreur, par exemple :
Bromure Supply-Chain Security blocked this request: npm package [email protected]
published 4 hours ago — policy requires 2 days minimum
Correction. Lisez la raison. Les déclencheurs courants et leurs remèdes :
| Raison dans le message | Couche | Comment procéder |
|---|---|---|
| « published … ago — policy requires N days » | Barrière d'âge | Épinglez une version plus ancienne, ou ajoutez le paquet aux Paquets exemptés dans le volet Chaîne d'approvisionnement de l'espace de travail. |
| Une CVE / alerte au niveau de votre seuil ou au-dessus | OSV ou socket.dev | Choisissez une version corrigée, ou augmentez le seuil Bloquer à la gravité. |
| Signalé comme compromis / malware / typosquat | socket.dev | Traitez-le comme un signal réel — vérifiez le nom du paquet avant de passer outre. |
Lire le journal de sécurité pour la raison
Ouvrez Fenêtre → Journal de sécurité… et relancez l'installation. Les lignes sont codées par couleur : bleu pour les recherches sortantes, vert pour les verdicts propres, rouge pour les blocages et échecs, orange pour les scripts d'installation supprimés, et une ligne d'accentuation [supply-chain] à chaque fois qu'une politique est engagée. Une installation entièrement propre émet tout de même une ligne « inspecting pkg@ver » par artefact — c'est volontaire, de sorte qu'un journal silencieux signifie « tout est en cache », non « proxy contourné ».
Passer outre un blocage
Correction. Les couches de chaîne d'approvisionnement sont des bascules marche/arrêt par espace de travail, modifiées en direct (aucun redémarrage de VM nécessaire). Pour laisser passer un paquet spécifique, ajoutez soit une entrée d'exemption/liste d'autorisation dans le volet Chaîne d'approvisionnement, soit abaissez/désactivez la couche concernée pour cet espace de travail. L'enregistrement pousse le changement vers les sessions en cours immédiatement.
Chaque installation demande un consentement (hors ligne, ou socket.dev + Cargo)
Cause. Lorsque OSV ou socket.dev est activé mais ne peut produire de verdict — le réseau est coupé, ou l'écosystème n'est pas pris en charge — Bromure échoue en position fermée, retenant chaque paquet pour votre consentement plutôt que de l'autoriser silencieusement. Deux situations produisent une invite par paquet :
- Travail hors ligne avec OSV ou socket.dev activé : chaque paquet non mis en cache est retenu.
- socket.dev avec Cargo : socket.dev ne prend pas en charge Cargo, de sorte que chaque artefact
crates.ione donne aucun verdict.
Correction. Pour les périodes hors ligne, désactivez OSV et socket.dev — la barrière d'âge continue de fonctionner à partir des métadonnées déjà mises en cache, sans connectivité. Pour un travail Rust intensif, désactivez soit socket.dev, soit répondez aux invites (les autorisations sont indexées par package@version). Le filet de sécurité fondé sur l'heure de publication de PyPI est le seul contrôle qui échoue en position ouverte en cas de simple erreur réseau.
Faux positifs d'injection de prompt
Le détecteur d'injection de prompt analyse les segments de résultats d'outils renvoyés à l'agent et peut journaliser, demander ou bloquer. Son comportement et son réglage se trouvent dans Injection de prompt et la référence Paramètres d'injection de prompt.
Une requête légitime a été signalée ou bloquée
Cause. Le classificateur a noté un segment entrant au-dessus du seuil de l'espace de travail — de la documentation de sécurité, une page qui cite une attaque, ou un extrait qui se lit comme une instruction à l'agent peuvent tous avoir l'apparence d'une injection.
Correction.
- Vérifiez le journal de sécurité — la ligne locale porte un court aperçu de l'extrait signalé afin que vous puissiez juger s'il s'agissait d'une véritable tentative.
- Si c'était un faux positif et que les blocages vous gênent, changez le mode d'injection de prompt de l'espace de travail de Bloquer à Demander (vous décidez à chaque détection) ou Journaliser (enregistrer uniquement, ne jamais bloquer) dans le volet Injection de prompt.
- Les téléchargements de modèle et le comportement par bascule sont propres à chaque espace de travail, de sorte qu'un espace de travail de recherche bruyant peut fonctionner en mode Journaliser tandis qu'un espace de production reste sur Bloquer.
Les automatisations déclenchées par événement sont toutes bloquées
Cause. Les automatisations déclenchées par événement nécessitent le modèle PromptGuard. Sans lui, chaque exécution d'événement est bloquée avec « PromptGuard model not installed — event triggers require it (download in Settings). » C'est voulu, non un bogue.
Correction. Installez le modèle PromptGuard depuis le volet Injection de prompt (ou Préférences → Automatisation). Si une bascule de détecteur est activée mais que le modèle n'a pas pu se télécharger — par exemple, le disque était plein — l'espace de travail s'exécute sans protection et l'échec est journalisé ; retéléchargez une fois l'espace disponible.
Espace disque : où il passe et comment le récupérer
Ce qui consomme de l'espace
Le stockage se trouve sous ~/Library/Application Support/BromureAC/ (voir l'Annexe pour la carte complète). Les gros consommateurs, du plus grand au plus petit :
| Quoi | Où | Taille typique |
|---|---|---|
| L'image de base Ubuntu | base.img | 24 Go logiques, ~6–8 Go physiques |
| Disques système par espace de travail | profiles/<uuid>/disk.img | Clone en copie sur écriture de la base ; ne croît qu'au fur et à mesure des écritures de l'invité |
| Répertoires personnels par espace de travail | profiles/<uuid>/home.img | ext4 clairsemé, 64 Go apparents par défaut, alloués paresseusement |
| Instantanés de RAM de VM suspendues | profiles/<uuid>/vm.state | Environ la RAM allouée à l'espace de travail (2–32 Go) par espace de travail suspendu |
| Points de contrôle de disque / répertoire personnel | profiles/<uuid>/checkpoints/ | Espace réel à mesure qu'ils divergent du disque actif |
| Modèles d'inférence locaux | models/<org>--<name>/ | Plusieurs Go par modèle |
| Modèles de détecteur | Models/prompt-injection/, Models/claudemd-guard/ | ~300 Mo et ~600 Mo respectivement |
| Corps de trace | traces/ | Plafonné : 100 Mo par session, 5 Go au total |
Remarque : La carte Disque du tableau de bord privilégie les propres chiffres
dfde l'invité plutôt que l'allocation du clone de l'hôte, car un clone en copie sur écriture surestime l'utilisation — les blocs libérés à l'intérieur de l'invité restent matérialisés dans le clone.
Récupérer de l'espace
- Arrêtez les espaces de travail suspendus que vous n'utilisez pas. Un arrêt complet efface
vm.state; l'espace de travail démarrera à froid la prochaine fois. - Supprimez les modèles locaux inutilisés avec
bromure-cli model rm <id>(libère les poids à la fois de la nouvelle disposition et de l'ancien cache Hugging Face). - Réinitialisez un disque d'espace de travail surchargé avec Réinitialiser le disque (reclone depuis la base, conserve le répertoire personnel) ou supprimez les anciens points de contrôle depuis l'interface de retour arrière.
- Effacez les traces avec
bromure-cli trace clear— efface à la fois l'anneau en mémoire et les corps sur disque. - Supprimez un espace de travail entier dont vous n'avez plus besoin avec
bromure-cli workspaces rm <workspace>(supprime le disque et le répertoire personnel après confirmation). - Récupérez l'image de base avec
bromure-cli resetsi vous voulez repartir de zéro (les espaces de travail ne sont pas touchés, alors relancezinitensuite).
Accès à distance et client riche
La porte d'entrée d'accès à distance SSH optionnelle et le miroir du client riche sont traités dans Accès à distance. Les symptômes ci-dessous sont ceux qui bloquent une connexion.
Impossible de se connecter via SSH (port 2222)
Cause. La porte d'entrée distante est désactivée par défaut. C'est également un serveur embarqué (non le sshd système), de sorte qu'activer la connexion à distance de macOS n'a aucun effet sur lui, et il est automatiquement mis en pause pendant toute installation ou modification d'image de base.
Correction.
- Vérifiez l'état avec
bromure-cli remote status— il affiche si le serveur est ENABLED et en cours d'exécution, l'adresse de liaison et le port, les méthodes d'authentification, l'empreinte de la clé d'hôte, une chaîne de connexionssh -p <port> <user>@<host>prête à l'emploi, et la liste des clés autorisées. - Activez-le avec
bromure-cli remote enable(par défaut : port2222, liaison0.0.0.0, les deux méthodes d'authentification activées). Il génère une erreur si les deux méthodes d'authentification sont désactivées, si le port est inférieur à 1024, ou tant que l'image de base est absente ou en cours d'installation. - Ajoutez votre clé publique avec
bromure-cli remote key add <path-or-key>. Ajouter ou supprimer une clé redémarre l'écouteur et coupe les connexions actives — comportement attendu.
Non-concordance de clé d'hôte ou d'empreinte (TOFU)
Cause. Le client riche épingle la clé d'hôte de chaque hôte distant à la première connexion (confiance à la première utilisation), stockée dans ~/Library/Application Support/BromureAC/remote-client/known_hosts. L'épinglage se fait par point de terminaison (address:port), de sorte que modifier l'adresse ou le port d'un hôte enregistré invalide l'épinglage associé et redéclenche correctement l'invite de confiance. Une non-concordance sur un point de terminaison inchangé signifie que la clé de l'hôte distant a changé — ou que quelque chose intercepte la connexion.
Correction. Si vous avez légitimement reconstruit l'hôte distant, supprimez son épinglage et reconnectez-vous pour lui refaire confiance. Si vous ne vous attendiez pas à ce que la clé change, arrêtez-vous et enquêtez avant de l'accepter.
La grille distante ou le volet de navigateur ne se reflète pas
Cause. Un hôte distant sans interface — l'application est en cours d'exécution mais aucune fenêtre unifiée n'est ouverte — ne peut ni accepter ni servir de modifications de disposition de grille, bien que tout le reste soit reflété. Certaines opérations de worktree pilotées par invite (nouveau worktree, fusion, résolution) ne sont pas non plus disponibles depuis le client riche en v1, et l'aliasing de sous-réseau multi-hôte est une limitation de conception documentée, non un comportement livré : un hôte distant unique est la configuration prise en charge.
Correction. Ouvrez une fenêtre de session sur l'hôte distant afin qu'il dispose d'une fenêtre unifiée à refléter. Pour la création/fusion/résolution de worktree sur un hôte distant, utilisez le menu distant SSH/TUI plutôt que la barre d'outils du client riche.
Le tunnel à l'échelle du système nécessite une approbation
Cause. Le tunnel optionnel à l'échelle du système du client riche utilise un démon launchd privilégié enregistré via SMAppService. Son premier enregistrement fait apparaître une bascule d'approbation d'élément en arrière-plan.
Correction. Approuvez Bromure Agentic Coding sous Réglages Système → Général → Ouverture et extensions (l'application peut ouvrir ce volet pour vous). À travers le tunnel, un ping ICMP vers un invité distant reçoit une réponse locale et confirme le routage, non la vitalité de l'invité.
Signaler un bogue
Lorsque vous déposez un rapport sur bromure.io, incluez suffisamment d'éléments pour qu'un mainteneur puisse reproduire le problème :
- Versions de l'application et de l'image — la version de l'application (4.3.0) et la sortie de
bromure-cli info(le tampon de version de l'image de base, les tailles et le chemin). - Le journal stderr — lancez
bromure-clidepuis un terminal comme indiqué dans Capturer stderr, reproduisez le problème et joignez la sortie. AjoutezBROMURE_AC_DEBUG=1si le mainteneur demande plus de détails. - La fenêtre pertinente — pour les échecs de configuration, la Sortie console copiée depuis la fenêtre de configuration ; pour un comportement lié à la sécurité, le Journal de sécurité filtré.
- Ce que vous attendiez par rapport à ce qui s'est passé, et si l'espace de travail était Éteint, Suspendu ou En cours d'exécution.
N'incluez pas de véritables secrets — les enregistrements de trace et les lignes de journal les masquent déjà sous forme de courts aperçus, et l'application est conçue pour que de véritables identifiants n'entrent jamais dans une VM en premier lieu. Si votre Mac est inscrit auprès d'un espace de travail bromure.io, acheminez les rapports via l'administrateur de votre organisation ; l'état lié à l'inscription lui est visible, et non à Bromure directement. L'inscription est traitée dans Entreprise.