La seule promesse de Latent : rien n'est déclaré sûr sans preuve, et rien n'est supprimé sans chemin de retour.
Chaque élément que Latent suit porte l'un de trois badges indiquant ce qui se passe si vous le supprimez :
Trois lettres, trois sens — et rien d'autre. Il n'y a pas de quatrième état à l'écran. Un cache que le catalogue croit capable de revenir, mais que personne n'a prouvé pour votre dossier, n'est pas « probablement sans risque » : il est I, ambre, avec un verrou, jusqu'à ce qu'une mesure ou la documentation de l'éditeur lui-même en fasse un R. La lettre dit ce qui se passe si la ligne part ; la couleur le répète — vert signifie que Latent peut agir sur sa propre preuve, ambre que la décision vous revient, gris qu'elle ne revient à personne.
Où va une lettre. Les lettres notent ce qui part avec une suppression — un cache, un dossier de données, un paquet, le bundle d'une app listé sous l'app. L'unité que vous choisissez de supprimer (une ligne d'app dans Apps) ne porte pas de lettre ; ce sont ses parties qui en portent. Tout ce qui n'est qu'un état — en cours d'utilisation, retenu par une dépendance, en attente en quarantaine — s'écrit en gris à côté de la lettre, jamais comme une quatrième lettre.
« Sûr à supprimer » se mérite, ne se présume jamais. Latent utilise quatre types de preuves, de la plus forte à la plus faible :
| Preuve | Ce que ça signifie | Exemples |
|---|---|---|
| Identité au registre | Au moment de la suppression, l'artefact exact répond encore sur son registre — digests, révisions et noms de fichiers sont comparés, pas seulement les noms. | Modèles Ollama, dépôts Hugging Face, modèles LM Studio |
| Provenance enregistrée | L'index propre à l'outil a consigné l'origine de chaque entrée ; la suppression en bloc ne passe que si tout remonte à une source publique qui le sert encore. | Cache npm, modules Gradle |
| Contrat fournisseur | L'éditeur fournit sa propre commande de purge — l'outil lui-même déclare le cache jetable. Latent passe quand même par la Corbeille, pour que vous gardiez l'annulation. | pip (pip cache purge), uv (uv cache clean) |
| Documentation de l'éditeur | La documentation ou le code source de l'éditeur lui-même indique que l'outil retélécharge ou reconstruit ceci à la prochaine utilisation — lu sur la page de l'éditeur, jamais dans un blog ni par supposition. Une réinstallation manuelle ne compte pas. | Le cache de modèles compilés de Core ML (Apple), les wheels construits par pip, le cache média d'Adobe, les paquets du SDK Android que Gradle télécharge lui-même |
| Expérience observée | Le dossier est mis de côté, l'app relancée, et Latent observe s'il revient — puis remet l'original octet pour octet. La quarantaine fait de même sur sept jours pour tout ce que vous déverrouillez. Chaque observation devient une preuve enregistrée avec sa date. | Les caches de composants de Codex, les outils embarqués de LM Studio, le runtime d'agents de Claude Desktop ; tout ce que vous déverrouillez |
Certains dossiers sont notés pièce par pièce plutôt qu'en bloc : les symboles d'appareils de Xcode sont R pour un build qu'exécute encore un appareil jumelé à ce Mac et I pour le reste ; un dossier de poids Keras n'est R que tant que chaque fichier qu'il contient est un poids Keras Applications.
Quand un dépôt mélange contenu prouvable et improuvable, Latent ne supprime que la partie prouvée et vous dit exactement ce qu'il a conservé et pourquoi. Un fine-tune personnel posé à côté de modèles téléchargés reste en place, toujours.
Chaque ligne I porte un verrou. L'ouvrir est un acte de consentement délibéré : la ligne devient sélectionnable, la suppression est marquée comme forcée dans le journal, et la feuille de confirmation la signale en rouge. Le consentement a une portée limitée — une nouvelle analyse referme tous les verrous ouverts. Latent n'ouvre jamais un verrou à votre place, et les assistants IA connectés ne peuvent pas en ouvrir du tout. Les lignes P n'ont pas de verrou à ouvrir : Latent ne les propose tout simplement pas.
Parce qu'ils comptent tout ce qui ressemble à un cache. Le chiffre de Latent est plus petit à dessein : chaque octet qu'il contient porte une preuve — une réponse de registre, une origine enregistrée, un contrat fournisseur, ou une régénération observée. Les octets sans preuve sont quand même affichés ; c'est simplement à vous d'en décider, le verrou en main.
L'onglet Latent est l'action en un clic : le logo lui-même est le bouton, un anneau de progression l'entoure pendant l'exécution, et le total libéré s'affiche quand c'est terminé. Ce qu'il supprime franchit deux barres, pas une : la récupération doit déjà être prouvée, et l'élément doit être du grade dont vous ne remarqueriez même pas la perte — caches de paquets dont l'éditeur fournit sa propre commande de purge, caches HTTP de navigateurs, magasins de vignettes. Tout ce qu'il faudrait regagner (modèles téléchargés, chaînes d'outils, plugins que vous avez installés) reste hors d'Optimiser et attend dans Espace un clic délibéré. C'est délibérément la même liste blanche que celle à laquelle un assistant IA connecté est limité, pour qu'un clic ne puisse jamais aller plus loin qu'un assistant n'y est autorisé.
Optimiser ne touche jamais les lignes non vérifiées, vos propres fichiers ni les chemins protégés ; il n'ouvre jamais un verrou à votre place ; il ne désinstalle jamais d'apps ou de paquets, ne décharge pas de modèles et ne vide pas la Corbeille. Si certaines cibles sont tenues ouvertes par une app en cours d'exécution, Optimiser demande d'abord — une liste des apps bloquantes, chacune fermée proprement (les invites d'enregistrement de l'app apparaissent) seulement si vous la laissez cochée ; décochez-en une et ses fichiers sont simplement ignorés. Tout ce qui bouge va à la Corbeille sous un seul manifeste d'annulation, et les garde-fous se réexécutent au moment de la suppression. La feuille de confirmation liste aussi ce qui est délibérément laissé tranquille, pour que le chiffre affiché soit un plancher, pas une vantardise.
Espace est une seule liste de propriétaires — Xcode, Homebrew, Hugging Face, Chrome
et ainsi de suite — chacun avec une barre colorée selon ce qu'il contient : vert pour
le R prouvé, ambre pour le I. Dépliez un propriétaire et ses lignes arrivent R d'abord,
puis I, les plus grosses en premier dans chaque groupe. Chaque ligne affiche sa lettre,
son chemin (le dossier personnel en ~, le chemin complet au survol) et un
↗ qui la révèle dans le Finder. La barre d'en-tête du propriétaire porte la même
puce ☐ R qu'en haut de la liste — elle sélectionne les lignes prouvées de ce
propriétaire, et rien d'autre — et un bouton Déverrouiller N verrouillées
ci-dessous… qui ouvre tous les verrous en dessous en une seule étape délibérée.
Sous les propriétaires viennent vos propres dossiers — Documents, Téléchargements,
Photos — listés, jamais présélectionnés.
Les caches sont ce sur quoi Latent peut apporter des preuves ; l'espace qui vous appartient vraiment demande un autre contrat. Sous les propriétaires-outils, Espace liste six types de candidats qui vous appartiennent, sous un séparateur qui le dit, et chacun d'eux suit la même règle : listé, jamais présélectionné, jamais touché par Optimiser ni par un assistant.
.dmg/.pkg déjà utilisés, dans Téléchargements et sur
le Bureau) et téléchargements partiels abandonnés.node_modules, target
Rust, build/dist, virtualenvs dans vos dossiers de
projets. Revendiqués uniquement à côté de leur marqueur de projet
(package.json, Cargo.toml, …), et un virtualenv sans
fichier de requirements reste verrouillé — la liste des paquets mourrait avec
lui. Ils portent R, mais une reconstruction coûte du temps : ils n'entrent
donc jamais dans Optimiser.Apps a huit sources, chacune dans un onglet : Apps Mac, Homebrew, npm -g, Python (pip), Conda, Docker · Simulateurs, Reçus .pkg et Restes. Chaque ligne qui représente quelque chose de supprimable porte R, I ou P comme une ligne d'Espace ; la ligne de l'app elle-même, non — c'est l'unité que vous choisissez, et ce sont ses parties en dessous qui sont notées. La roue à gauche montre les apps par taille, et la barre de pied en dessous dit ce qu'elles contiennent toutes ensemble : les bundles eux-mêmes, puis ce qu'elles laissent derrière elles, par lettre.
Cliquez sur une app pour voir chaque fichier que possède son identifiant de bundle — bundle, caches, préférences, conteneurs, agents de lancement — R d'abord, puis I, les plus gros en premier. Le bundle lui-même est une ligne I (récupérer l'app, c'est une réinstallation, et elle vous revient). Les dossiers qu'Espace liste déjà comme dépôts sont repliés en une seule ligne Dépôts d'Espace : avec les noms des dépôts, une coche pour tous. Latent ne pré-coche que ce qu'il peut attribuer avec certitude ; deux types de lignes ne sont jamais pré-cochées :
Cocher la case de l'app elle-même sélectionne tout ce qui est en dessous — après une question si une partie contient vos données, et votre réponse est retenue pour la session. Une désinstallation est un seul manifeste : une annulation restaure le tout. Si macOS exige des droits d'administrateur pour le bundle, Latent confie la tâche au Finder — vous verrez l'invite d'authentification standard. Reçus .pkg liste les restes d'installateurs dans des emplacements appartenant à l'administrateur et n'y supprime rien : il montre ce qui reste, exécute le désinstalleur de l'éditeur quand le reçu en nomme un, et sinon révèle les fichiers pour que vous les supprimiez dans le Finder. Restes liste les données dont l'app a disparu — tout en I, cochées par vous.
Docker garde images, conteneurs, volumes et cache de build dans un seul disque
VM opaque : une suppression au niveau fichier serait une réinitialisation
d'usine — Latent liste ce disque comme vos données et ne le présélectionne jamais.
Ce que le volet Docker propose à la place, c'est la suppression par Docker
lui-même d'éléments individuels : une image, ou le cache de build. Cette
suppression est irréversible — elle ne passe pas par la Corbeille et il n'y
a pas d'annulation — elle a donc une feuille de confirmation qui le dit en ces
termes, et Latent écrit l'enregistrement avant d'exécuter la commande :
ce qui est parti, sa taille, et la ligne docker pull exacte qui le
ramène. Les images utilisées par un conteneur sont refusées, et les volumes ne
sont jamais listés — un volume, c'est la base de données de quelqu'un.
Les runtimes de simulateur iOS fonctionnent de la même façon et pour la même
raison : un runtime est une image disque Apple signée, montée à chaud et suivie
dans le registre d'Apple, donc seul simctl peut le supprimer. Même
contrat — la feuille dit que c'est irréversible, l'enregistrement conserve
xcodebuild -downloadPlatform iOS, un runtime avec un simulateur
démarré est refusé, et celui livré avec Xcode n'est jamais proposé. Les lignes
parlent les trois mêmes lettres que partout ailleurs : un runtime qu'Apple peut
retélécharger est R, celui qu'Apple marque comme non supprimable est P, une image
adossée à un registre est R et une couche orpheline est I. « En cours d'utilisation »
est un état écrit en gris à côté de la lettre, et le bouton attend que le simulateur
ou le conteneur ait disparu.
Quatre des sources gèrent ce que brew, npm -g,
pip --user et conda ont installé — ce qui s'accumule en
silence pendant des années. Les liens symboliques d'un keg et les fichiers éparpillés
d'un wheel feraient d'un passage par la Corbeille un mensonge : la suppression
exécute donc la désinstallation propre à l'éditeur, et le manifeste d'annulation
enregistre à la place la commande de réinstallation exacte. La même règle de preuve
s'applique : avant toute suppression, Latent vérifie que le registre
(formulae.brew.sh / npm / PyPI) sert encore ce nom et cette version — pas de
réponse, pas de suppression. Chaque ligne de paquet porte une lettre : R quand le
gestionnaire peut le réinstaller ; R mais retenu quand un autre paquet en dépend (les
dépendants sont nommés, et cliquer sur l'un d'eux vous y mène) ; I quand personne
n'a pu le prouver ou que vous l'avez épinglé vous-même ; P quand c'est le corps même
du gestionnaire — pip et setuptools, node et npm, l'installation conda, tout ce qui
est hors de votre dossier personnel ou appartient à un autre compte. Un user-site
Python dont l'interpréteur a disparu (le classique reliquat
~/Library/Python/3.x) est proposé comme un déplacement du dossier
entier vers la Corbeille, avec une annulation normale.
Pas de boutons de purge, pas de scores de santé — macOS compresse et pagine déjà
la mémoire inactive, donc « libérer la RAM » revient surtout à payer pour la
relire. Ce qui est réel, c'est une app oubliée qui retient des gigaoctets : la
carte Mémoire des apps liste donc vos propres apps par empreinte réelle, avec un
bouton Quitter qui est exactement Cmd-Q — l'app affiche sa propre invite
d'enregistrement, et rien n'est jamais tué de force. Les processus système ne sont
jamais listés. L'onglet montre aussi ce que fait la mémoire unifiée et quels
démons de modèles (Ollama, LM Studio, llama.cpp, ComfyUI…) gardent des poids
résidents. Chaque bouton exécute la commande propre à l'éditeur —
ollama stop, lms unload --all, le /free de
ComfyUI, le déchargement du routeur de llama.cpp — pour que les modèles se
rechargent simplement à la prochaine utilisation. Latent ne tue jamais rien de
force. La roue ne montre que vos apps ; la part du système, le swap et la compression
sont dans les petits anneaux en dessous. Les graphiques en direct, ici et dans Vue
d'ensemble, commencent à échantillonner dès l'ouverture de Latent : passer à l'onglet
montre donc un historique, pas un graphique vide.
Quelques suppressions se voient proposer une voie plus sûre que la Corbeille — une quarantaine de 7 jours — mais seulement là où la perte serait opaque ou difficile à inverser : éléments protégés et dépôts « vos données » illisibles. Tout le reste (caches non vérifiés, vos propres fichiers listés) va directement à la Corbeille, où la ligne Récupération énonce déjà le risque. C'est une recommandation, jamais une imposition. Pendant la fenêtre, la restauration se fait en un clic depuis l'onglet Récupération. À l'expiration, l'élément poursuit vers la Corbeille — et Latent consigne si l'outil propriétaire a recréé le chemin, construisant la preuve que l'affirmation n'avait jamais eue. Vous préférez la voie directe ? Choisissez « Directement à la Corbeille » dans la feuille de confirmation ; votre choix l'emporte.
Tout ce qui peut revenir vit dans une seule table triable, avec la date de suppression :
Les lignes vertes — une commande de retéléchargement enregistrée, ou un dépôt vérifié que l'outil propriétaire reconstruit de lui-même — peuvent aussi être vidées directement depuis Récupération — une ligne ou toutes à la fois, derrière une confirmation explicite sans annulation — parce que leur chemin de retour survit aux octets. Les lignes qui seraient perdues pour de bon n'ont jamais ce bouton ; le Finder garde cette décision.
Les lignes sont groupées par étape — quarantaine, Corbeille, disparu — les plus récentes d'abord, avec la date d'entrée dans chaque étape dans la colonne de celle-ci ; triez par nom, source ou taille, filtrez par étape, cherchez par nom, source ou commande. Chaque ligne porte aussi la lettre avec laquelle elle a été notée au moment de sa suppression — R ou I — parce que le chemin du retour en dépend. Ce dernier groupe est tout l'enjeu : le journal survit à la Corbeille, donc vider la Corbeille ne vous coûte rien que vous ne puissiez délibérément récupérer. Les commandes ne s'exécutent que sous des formes étroites et validées ; tout le reste est affiché pour que vous le copiiez.
Autres éléments dans la Corbeille. Ce que le Finder a mis dans la Corbeille — et non Latent — est listé sous son propre titre, en lecture seule, avec un bouton Remettre qui le renvoie à l'endroit que le Finder a enregistré quand il existe. Latent ne vide ni ne jette jamais ces éléments ; il vous laisse seulement les voir à côté de ses propres enregistrements.
Latent déplace les choses vers la Corbeille et ne la vide jamais à votre insu. Il ne touche à rien qu'il n'y ait pas mis lui-même, et ne jette rien qui n'ait pas de chemin de retour. La carte Corbeille de Vue d'ensemble montre ce qu'elle contient et un bouton l'ouvre dans le Finder.
Deux endroits proposent toutefois d'achever le travail. Récupération vide les lignes une par une, ou toutes les sûres d'un coup — « sûre » voulant dire que la ligne porte encore une commande de récupération enregistrée, ou la preuve vérifiée que l'outil la reconstruit. Et Optimiser le propose juste après une exécution, pour cette exécution seulement. Optimiser ne supprime que des éléments à sûreté prouvée : chaque ligne déplacée se retélécharge ou se régénère d'elle-même. Vous renvoyer au Finder pour récupérer l'espace, ce serait l'app se dédisant d'une décision qu'elle avait déjà assumée. Le bouton annonce le nombre et la taille, et demande une fois.
Tout le reste dans la Corbeille — y compris ce que vous avez choisi vous-même dans Space — vous revient, dans Récupération ou dans le Finder.
Les suppressions vont à la Corbeille, jamais droit à l'oubli, et chaque exécution écrit un manifeste d'annulation qui restaure exactement ce qui a bougé. Avant qu'un nettoyage d'Espace ne déplace quoi que ce soit, quatre garde-fous s'exécutent : l'outil propriétaire ne tourne pas, aucun binaire en cours d'exécution ne vit dans la cible, aucun fichier à l'intérieur n'est tenu ouvert par un processus, et rien n'a changé dans les 10 dernières minutes. Les garde-fous revérifient au moment de la suppression, pas seulement à la planification. Le désinstalleur d'Apps exécute sa propre paire — l'app ne doit pas tourner, et aucun fichier dans la cible ne doit être tenu ouvert.
Latent embarque un serveur MCP : tout assistant compatible MCP peut lire l'état de votre disque et proposer des nettoyages. Le serveur est le binaire de l'app lui-même :
/Applications/Latent.app/Contents/MacOS/Latent --mode mcpLatent peut se brancher lui-même sur tous les assistants de ce Mac. Collez ceci dans le Terminal :
/Applications/Latent.app/Contents/MacOS/Latent --mode mcp-installIl n'écrit que là où le client existe vraiment : il lance le mcp add du client quand il y en a un (Claude Code, Codex, Gemini, Grok) et modifie la config JSON sinon (Cursor, Claude Desktop, VS Code, Windsurf). Les configs JSON qu'il modifie sont d'abord copiées en .bak (un client doté de sa propre CLI gère la sienne). Aucune config n'est inventée pour un client absent, et celui qui connaît déjà Latent est laissé tel quel. Ajoutez --dry-run pour voir ce qu'il ferait.
Ou branchez un client à la main :
claude mcp add latent -- /Applications/Latent.app/Contents/MacOS/Latent --mode mcpcodex mcp add latent -- /Applications/Latent.app/Contents/MacOS/Latent --mode mcpgemini mcp add latent /Applications/Latent.app/Contents/MacOS/Latent --mode mcpgrok mcp add latent /Applications/Latent.app/Contents/MacOS/Latent -- --mode mcpLe -- compte : il transmet --mode mcp à Latent au lieu de
laisser Grok le lire comme l'un de ses propres drapeaux. Grok peut aussi vérifier
son côté du câblage pour vous — grok mcp doctor indique si le serveur
démarre, si la poignée de main aboutit et combien d'outils il a trouvés.
Ajoutez ceci dans la section des serveurs MCP du client — ~/.cursor/mcp.json
pour Cursor, claude_desktop_config.json pour Claude Desktop,
.vscode/mcp.json pour VS Code (VS Code l'imbrique sous
"servers" au lieu de "mcpServers") :
{
"mcpServers": {
"latent": {
"command": "/Applications/Latent.app/Contents/MacOS/Latent",
"args": ["--mode", "mcp"]
}
}
}Le transport est du simple stdio — pas de port, pas de démon, rien à maintenir
en marche ; le client lance le serveur à la demande. Les deux générations du
protocole sont servies : l'actuelle (2026-07-28, avec server/discover et
une version sur chaque requête) et l'ancienne poignée de main, de sorte que tout
client depuis 2024 se connecte.
Le serveur propose six outils, et vous ne les appelez jamais par leur nom — vous demandez avec vos propres mots et l'assistant choisit :
latent_overview — « où est passé mon disque ? »
Totaux par propriétaire et par niveau.latent_items — « que pourrais-je libérer au-dessus de
500 MB ? » Éléments individuels avec leur taille, leur niveau et leur
preuve.latent_clean — « vide les caches de téléchargement de pip
et npm ». C'est l'outil qui déplace les choses vers la Corbeille, et il prend
des clés d'éléments que l'assistant a obtenues de latent_items —
jamais un dossier que vous auriez nommé en passant.latent_free — « maintenant, rends-moi vraiment la
place ». Vide de la Corbeille uniquement ce que Latent y a mis, pour que
le chiffre du disque bouge vraiment. Celui-ci ne s'annule pas, et le panneau
nomme ce qui ne reviendra pas avant que vous approuviez.latent_duplicates — « des poids de modèles en
double ? »latent_memory — « qu'est-ce qui retient la RAM en ce
moment ? » Lecture seule ; quitter une app n'est jamais du ressort de
l'assistant.La plupart de ce qui remplit le disque d'un développeur n'est pas dangereux à supprimer. C'est seulement coûteux à récupérer, et jusqu'où vous acceptez ce coût est une question à laquelle vous seul pouvez répondre. Chaque ligne que lit l'assistant porte donc un niveau, et il devrait vous montrer les quatre totaux avant de proposer quoi que ce soit :
Vous dites jusqu'où aller, l'assistant transmet ce nombre, et le plan qu'il reçoit indique le niveau de chaque ligne : vous pouvez vérifier, avant d'accepter, qu'il s'en est tenu à votre choix. Il ne peut pas relever le plafond lui-même : le serveur s'arrête à 3, quoi qu'il demande.
Un assistant voit des chemins, des tailles, des niveaux et des étiquettes de preuve — jamais le contenu des fichiers. Mais un chemin est une information : si votre assistant tourne dans le cloud, les noms des dossiers sous votre dossier personnel voyagent jusqu'à lui, comme n'importe quel fichier que vous collez dans une conversation. Un modèle local les garde sur la machine. Latent lui-même n'envoie rien nulle part ; il répond au client qui l'a lancé, par un tube, et c'est ce client qui décide où va la réponse.
Les pouvoirs de l'assistant sont strictement plus petits que les vôtres : par défaut, il ne peut toucher que les éléments vérifiés marqués R (la même liste blanche qu'Optimiser en un clic), et il ne va plus loin que si vous dites jusqu'où (voir Jusqu'où aller). Une règle est absolue : un assistant ne peut supprimer rien qu'il ne vous ait montré et que vous n'ayez accepté. Latent détermine lui-même les éléments couverts par une demande, remet cette liste exacte à l'assistant, puis n'agit que sur elle : une seule fois, dans un délai de quelques minutes, en refusant tout élément modifié entre-temps. Pas de réponse veut dire pas de suppression. Les assistants ne peuvent jamais ouvrir un verrou, jamais atteindre vos propres fichiers, et ne voient jamais le contenu des fichiers — seulement les tailles, les chemins et les étiquettes de preuve. Chaque élément que l'assistant ne peut pas prendre dit pourquoi dans la liste elle-même — non prouvé, coûte un vrai temps de reconstruction, vos propres fichiers, protégé — pour qu'il n'ait jamais à deviner, et la vue d'ensemble indique à la fois le chiffre qu'il peut déplacer et le total R prouvé, plus grand, que l'app affiche.
Sans licence, Latent est un visualiseur complet : analysez aussi souvent que vous voulez, explorez les roues et les anneaux, suivez la croissance dans le temps, lisez le journal. Rien n'expire. C'est la suppression de fichiers que la licence déverrouille — et la récupération (annulation, restauration depuis la quarantaine) fonctionne toujours, dans tous les cas, parce que la seule chose que cette app ne fera jamais, c'est prendre vos fichiers en otage.
Barre des menus → Latent → Saisir la licence…, collez votre clé, c'est fait. Une clé couvre plusieurs Mac (une clé bêta s'active sur 2 au maximum). L'analyse n'a jamais eu besoin de la clé ; la suppression se déverrouille dès que la clé arrive. Pas de compte, pas d'e-mail, rien d'autre où se connecter. Sous le capot, la clé est échangée contre un jeton de licence signé par le serveur pour ce Mac ; l'app vérifie la signature elle-même et rafraîchit le jeton au lancement, de sorte qu'un fichier de réglages copié ne peut pas déverrouiller un second Mac, et qu'un Mac hors ligne continue de fonctionner pendant des semaines avant de demander à revoir le serveur. Sans licence, chaque feuille de confirmation montre quand même ce qu'elle ferait et propose Obtenir une licence… à la place du bouton.
Une clé achetée s'active sur 3 Mac au maximum. Si vous en vendez ou en retirez un, ouvrez-y Latent → Saisir la licence… et appuyez sur Libérer — la place revient aussitôt à votre clé et vous pouvez l'utiliser ailleurs. Rien n'est supprimé sur ce Mac, et vous pouvez le réactiver à tout moment.
Si un achat est remboursé ou fait l'objet d'une rétrofacturation, la clé cesse de fonctionner pour la suppression au prochain lancement de l'app. La récupération ne cesse jamais de fonctionner. L'annulation, la restauration depuis la quarantaine et Remettre sont entièrement en dehors de la licence — un remboursement peut retirer le produit, mais il ne peut jamais laisser vos fichiers en plan.
Latent est signée avec un Developer ID et notarisée par Apple, et le ticket est agrafé à l'image disque : macOS le vérifie à la première ouverture, même hors ligne. Si le fichier avait été modifié entre notre compilation et votre Mac, il ne s'ouvrirait pas.
Pour le vérifier vous-même, après avoir déplacé l'app dans Applications :
spctl -a -vv /Applications/Latent.appaccepted
source=Notarized Developer ID
origin=Developer ID Application: FatTail Labs (BUS4S7XFQV)
L'identifiant d'équipe BUS4S7XFQV est le nôtre et ne peut être falsifié ; c'est ce qu'une somme de contrôle sur cette page ne pourrait pas vous donner, car quiconque pourrait remplacer le téléchargement remplacerait aussi la somme à côté.
Les mises à jour subissent le même test. Avant de remplacer quoi que ce soit, Latent vérifie la signature, contrôle l'identifiant d'équipe et interroge Gatekeeper. Si l'un échoue, la mise à jour s'arrête et votre copie est conservée.
Latent, c’est un bundle d’app et un dossier. Pour le supprimer, quittez Latent (l’icône de la barre des menus part avec lui) et glissez Latent.app dans la Corbeille. Il n’installe ni assistant, ni élément d’ouverture, ni extension du noyau, et ne conserve aucun mot de passe.
Vos enregistrements vivent dans ~/.latent : enregistrements d’annulation, dossier de quarantaine (éléments encore en période d’observation), liste d’exclusions et journal d’activité. Laissez-le si vous pourriez réinstaller — ce sont les chemins du retour. Supprimez-le seulement quand vous en avez fini pour de bon : ce qui est encore en quarantaine part avec lui, alors restaurez-le ou videz-le d’abord depuis l’onglet Récupération.
Latent se liste lui-même dans Apps en P — il ne se supprime jamais de l’intérieur.
Dans l'app : Aide → Envoyer des commentaires…. Le message part avec la version de l'app et de macOS ; le journal d'activité n'est joint que si vous cochez sa case, le nom de votre dossier de départ étant retiré d'abord. Rien n'est jamais envoyé en arrière-plan — seul ce bouton envoie. Ou écrivez à fattaillabs.ceo@gmail.com — nous lisons tout.