Politique de confidentialité
L'application Xenon s'exécute sur votre propre PC et y stocke ses données. Ce site Web est une entité distincte, soumise à des règles différentes. Cette page distingue les deux et précise ce que chacun envoie et stocke.
Dernière mise à jour : 27 septembre 2026
Résumé
- L'application Xenon ne suit pas votre utilisation. Il n'y a ni compte, ni profil, ni journal d'utilisation quittant votre PC. Deux compteurs existent. L'un est envoyé lorsque l'application vérifie les mises à jour et décrit l'installation elle-même : sa version, son système et son âge approximatif. L'autre ajoute 1 au nombre d'installations d'une création lorsque vous l'installez depuis le store. Aucun ne dit quoi que ce soit sur les widgets que vous ouvrez, ce que vous recherchez ou ce que vous faites avec le dashboard. Lors d'une nouvelle installation, les deux sont activés par défaut, et vous pouvez désactiver l'un ou l'autre dans Paramètres → Général → Mises à jour ; si vous utilisiez déjà Xenon avant la version qui en a ajouté un, il est resté désactivé pour vous. Aucun ne contient d'identifiant, donc aucun ne peut être rattaché à vous ni joint à l'autre.
- L’application n’est pas entièrement hors ligne. Elle vérifie les mises à jour et récupère une courte liste d’annonces par elle-même ; la météo, les pochettes d’albums et les services que vous connectez ne sont contactés que par les fonctionnalités qui les utilisent. Ces appels sont répertoriés ci-dessous.
- Ce site utilise Google Analytics pour voir quelles pages et téléchargements les utilisateurs consultent. Dans l'EEA, au Royaume-Uni et en Suisse, rien n'est stocké tant que vous n'avez pas accepté la bannière.
- Il compte également les vues de pages avec Cloudflare Web Analytics, qui ne définit aucun cookie et ne crée aucun profil. Il me permet uniquement de savoir combien de personnes ont accédé à une page.
- Appuyer sur un bouton de téléchargement ajoute 1 à un compteur sur mon propre serveur, sans cookie ni identifiant. Le lien de téléchargement pointe toujours directement vers GitHub, de sorte que ce compteur ne peut jamais se placer entre vous et le fichier.
Responsable du traitement et coordonnées
Xenon est un projet personnel d'un développeur, Marcello Mastroeni, dont le code source est disponible sur GitHub sous une licence non commerciale personnalisée, et je suis le responsable de traitement pour ce site web. Pour toute question concernant cette page, telle qu'une interrogation, une correction ou une demande relative à vos données, écrivez à marcellomastroeni4@gmail.com ou ouvrez un ticket sur GitHub.
Ce site Web (xenon-app.com)
Le site utilise Google Analytics 4 (identifiant de mesure G-LQ8Y8WZPQF) pour comprendre quelles pages sont lues, quels téléchargements sont cliqués et d'où viennent les visiteurs. Il s'agit de rapports agrégés sur le site. Il n'est pas connecté à votre copie de l'application, et il n'y a aucun moyen pour moi de lier une visite ici à une installation sur votre PC.
Ce que Analytics reçoit
- Les pages que vous consultez sur ce site et la page de référence.
- Clics que j'ai marqués comme significatifs : téléchargements, inscriptions à Discord, accès au catalogue et aux pages créateurs, liens GitHub.
- Localisation approximative (niveau pays ou ville, déduite par Google à partir de votre adresse IP ; l'adresse IP complète n'est pas stockée dans les rapports), type d'appareil, navigateur et langue.
- Les cookies nommés
_gaet_ga_*, utilisés pour distinguer un visiteur qui revient d'un nouveau visiteur. Ils sont conservés jusqu'à deux ans.
Cloudflare Web Analytics
En plus d'Analytics, le site charge Cloudflare Web Analytics, un compteur de pages vues sans cookies. Il ne définit aucun cookie, ne stocke aucun identifiant et ne peut pas vous suivre d'un site à l'autre ou d'une visite à l'autre ; il signale la page URL, le référent, le pays, le type d'appareil et les temps de chargement de la page de manière agrégée. Comme il n'identifie personne, il fonctionne sans bannière de consentement, et il est répertorié ici pour que vous sachiez qu'il est présent. Pourquoi les deux : Analytics ne compte que les visiteurs qui acceptent la bannière, donc celui-ci représente le total complet par rapport auquel ces chiffres sont lus.
Le compteur de téléchargements
Lorsque vous appuyez sur un bouton de téléchargement sur ce site, la page envoie également une note d'une ligne à mon propre serveur (le même hub de supporters auquel l'application se connecte) indiquant qu'un bouton de téléchargement a été appuyé et lequel (hero, footer et ainsi de suite). C'est tout le message : aucun cookie, aucun identifiant, aucune IP conservée, et rien qui puisse être associé à quoi que ce soit d'autre. Cela ajoute 1 à un compteur pour (jour, bouton) et la requête est ensuite supprimée.
Elle existe parce que cette étape unique m'était invisible. Cloudflare sait que la page a été consultée et GitHub sait qu'un téléchargement s'est terminé, mais aucun des deux ne peut voir l'action intermédiaire, qui est la seule chose indiquant si une page de téléchargement fonctionne réellement. Google Analytics pourrait le signaler, mais il ne compte que les personnes ayant accepté le bandeau, et une part importante de ce public le bloque entièrement, ce qui rendrait le nombre erroné dans un sens que je ne pouvais pas mesurer.
Le lien de téléchargement lui-même ne passe pas par mon serveur. Il pointe directement vers GitHub, exactement comme avant ; le compteur est une note distincte, de type « envoi et oubli », pour laquelle la page n'attend pas. Si mon serveur est hors ligne ou si vous le bloquez, le téléchargement fonctionne normalement et l'appui tout simplement n'est pas comptabilisé.
Consentement aux cookies
Le site utilise le Google Consent Mode. Si vous êtes dans le EEA, au Royaume-Uni ou en Suisse, chaque signal de stockage et de publicité démarre en mode refusé : tant que vous n'avez pas appuyé sur Accepter, aucun cookie n'est écrit et Analytics ne reçoit que des pings sans cookie et non identifiants. En dehors de ces régions, le mode par défaut est accordé, et appuyer sur Refuser le désactive. Le refus s'effectue en un clic, au même endroit et avec la même taille que l'acceptation.
Vous pouvez changer d’avis à tout moment. Ce bouton efface le choix enregistré et affiche à nouveau la bannière :
Bandeau de consentement indisponible. Effacez les données de votre navigateur pour le réinitialiser.Votre choix est mémorisé dans le stockage local de votre navigateur sous xenon.site.consent. Cette valeur ne quitte jamais votre appareil. La suppression des données de votre navigateur réinitialise ce paramètre.
Hébergement et polices
Le site est servi par GitHub Pages, qui traite la requête et votre adresse IP pour livrer la page et conserve des journaux de sécurité à durée de vie courte. Cela est techniquement nécessaire et se produit avant toute décision de consentement. L'en-tête de la page demande également aux API de GitHub le nombre d'étoiles du projet, une fois par session de navigateur, de sorte que GitHub voit également cette requête. Les polices du site sont servies depuis le site lui-même (/fonts/), de sorte que leur chargement ne contacte personne d'autre. La seule exception est la démo en direct, qui exécute la page dashboard de l'application elle-même et charge les polices de cette page depuis Google Fonts, qui voit alors la requête. Les captures d'écran de la communauté sont servies depuis Cloudflare R2 (assets.xenon-app.com).
L’application Xenon
L'application stocke vos données sur votre PC. Les paramètres, notes, tâches, événements, decks, mémoire IA et fonds téléversés sont tous enregistrés dans server/data/. L'application ne téléverse pas ce dossier nulle part, et il ne contient aucun SDK d'analyse, aucun rapporteur de plantage et aucun suivi comportemental. Les deux compteurs anonymes décrits ci-dessous sont les seuls rapports que l'application génère à son sujet, et aucun ne contient un identifiant d'aucune sorte : ce que le serveur conserve, ce sont des compteurs, jamais des lignes concernant une machine.
La recherche de fichiers locaux et le widget d'espace disque s'exécutent sur votre PC : vos expressions de recherche, les noms de fichiers, l'index des dossiers et les résultats du scan du disque sont calculés localement, et la liste des fichiers que vous ouvrez depuis la recherche (utilisée pour améliorer le classement de vos propres résultats) est stockée dans server/data/, comme tout le reste. Ce que vous transmettez à l'IA Xenon constitue l'exception. Avec un fournisseur d'IA cloud, la recherche Intelligente (Ctrl+I) envoie l'expression que vous tapez à ce fournisseur, et demander à l'IA de trouver un fichier ou d'expliquer votre disque lui transmet les résultats sur lesquels elle s'appuie pour répondre, tels que les noms de fichiers et les tailles des dossiers. L'interrupteur Cerveau complet pour la recherche et le nettoyage par IA (désactivé par défaut) envoie également les noms de vos applications installées, des dossiers indexés, des dossiers les plus utilisés et des fichiers que vous avez récemment ouverts depuis la recherche, mais jamais leur contenu.
Ce que l'application fait, c'est effectuer des appels réseau pour les fonctionnalités qui en ont besoin. Voici la liste et le moment où chacun se produit.
| Ce qu'il contacte | Quand | Pourquoi et ce qu'il envoie |
|---|---|---|
api.github.com |
Automatique, au lancement (mis en cache pendant 24 h) | Vérifie s'il existe une version plus récente. Il n'envoie aucun identifiant, mais comme pour toute requête HTTP, GitHub voit votre adresse IP. Il s'exécute sans que vous n'ayez à activer quoi que ce soit. |
xenon-app.com |
Lorsque vous ouvrez le catalogue communautaire ou la boutique | Téléchargez le catalogue public des thèmes communautaires, des widgets et des packs. Lecture seule, sans identifiant. |
xenon-app.com(annonces) |
Automatique, au maximum une fois par jour | Téléchargez la même liste courte d'annonces que tout le monde : une nouvelle version, quelque chose de nouveau dans le store, et l'occasionnelle note. Lecture seule, sans identifiant. Certaines annonces sont destinées à un sous-ensemble de personnes, comme celles qui exécutent un widget ou une version spécifique, et ce filtrage se fait sur votre PC : votre dashboard télécharge la liste complète et décide lui-même lesquelles s'appliquent. Rien concernant ce que vous avez installé n'est jamais envoyé pour déterminer ce qui vous est affiché, je ne peux donc ni vous cibler ni savoir qui a vu quoi. Vous pouvez désactiver les annonces depuis l'un d'entre eux. |
| Hub des supporters (réponses au sondage) |
Uniquement si vous touchez une réponse à un sondage affiché dans une annonce | Envoie uniquement l'option que vous avez choisie, et rien d'autre : aucune installation UUID, aucune adresse IP conservée, aucun compte, et pas même une heure. Le serveur ajoute 1 au compteur de cette option puis supprime la demande, si bien que personne, y compris moi, ne peut demander quelle réponse a été donnée par un PC particulier. Ne rien toucher n'envoie rien, et désactiver les annonces l'arrête complètement. |
| Hub des supporters (nombre d'installations) |
Lorsque vous installez quelque chose depuis le store et uniquement si cette option est activée | Envoie l'identifiant de la création que vous avez installée, et rien d'autre : aucune installation UUID, aucune adresse IP conservée, aucun compte. Le serveur ajoute 1 au compteur de cette création puis supprime la requête. Votre dashboard mémorise sur votre propre PC celles qu'il a déjà comptées, afin de signaler chaque création au plus une fois ; c'est pourquoi aucune donnée d'identification n'a besoin d'être envoyée pour éviter les double-comptages. La conséquence est que ce nombre signifie « installations signalées », et non « nombre de personnes qui la possèdent », et il est étiqueté ainsi partout où il est affiché. |
| Hub des supporters (Cloudflare Worker) |
Lorsque vous évaluez un article du catalogue, utilisez un code de supporter ou mettez à jour quelque chose que vous avez déjà débloqué | Votre PC conserve un UUID (install-id.json) aléatoire afin qu'un vote ne soit comptabilisé qu'une seule fois et qu'un code ne puisse pas être réutilisé indéfiniment. Cet UUID ne quitte jamais votre machine : ce qui est envoyé est un hachage à sens unique de celui-ci, et l'évaluation d'un contenu et le rachat d'un code utilisent des hachages différents du même UUID. C'est volontaire : avec une seule valeur partagée, un code de supporter (qui peut être lié à un compte Discord) et une note en étoiles seraient stockés dans la base de données sous le même identifiant, et je pourrais voir quelles créations un supporter nommé a évaluées. Avec deux valeurs, il n'y a rien pour les associer. Aucun des deux hachages n'est lié à votre matériel ou à votre nom ; supprimez le fichier et un nouveau UUID est généré. La mise à jour d'un élément que vous avez débloqué envoie ce même hachage, l'identifiant de la création et la version que vous possédez, mais aucun code : le hub ne répond qu'à un PC qu'il connaît déjà comme propriétaire. |
ipwho.is |
Uniquement si la localisation automatique de la météo est activée | Convertit votre adresse IP en ville approximative afin que le widget météo sache où vous vous trouvez. Définissez l'emplacement manuellement et cet appel ne se produira jamais. |
| APIs météo et qualité de l'air open-meteo, met.no, wttr.in |
Uniquement avec un widget météo sur votre dashboard | Envoie les coordonnées faisant l'objet de la prévision. Aucun identifiant. |
itunes.apple.com |
Pendant la lecture des médias | Recherche l’artwork de l’album par titre de piste. Aucun identifiant. |
| Services que vous connectez vous-même Spotify, Twitch, YouTube, Discord, Home Assistant, OBS, fournisseurs d'IA, flux boursiers/actualités/football |
Uniquement après avoir configuré cette intégration | Chacun communique avec son propre fournisseur conformément à la politique de confidentialité de ce dernier, en utilisant les identifiants que vous fournissez. Ils restent inactifs jusqu'à leur configuration. |
| Le service de notifications push de votre téléphone Apple, Google ou Mozilla, selon le navigateur du téléphone |
Uniquement après avoir activé les notifications sur un téléphone ou une tablette appairée | Permet à l'ordinateur de réveiller un téléphone fermé pour une action que vous avez configurée et attendez, comme la fin d'un compte à rebours. Le message est chiffré de bout en bout pour le navigateur de ce téléphone, de sorte que le service de notification le transmet sans pouvoir le lire ; il voit toutefois qu'un message a été envoyé à ce téléphone, et quand. Rien n'est configuré tant que vous n'avez pas appuyé sur le bouton du téléphone, et la suppression de l'appareil appairé met fin au processus. |
| Ping anonyme de version supporter hub |
Activé par défaut lors des installations à partir de la v4.8.0 ; désactivé lors des installations antérieures, sauf si vous l'avez activé | Version, système, ancienneté de l’installation et indicateur du premier jour de la semaine, envoyés au maximum une fois par jour au même hub des supporters que les lignes ci-dessus. Aucun identifiant de quelque type que ce soit. La liste complète figure dans la section ci-dessous. |
Les fonctionnalités d'IA locales (Ollama, Whisper) s'exécutent entièrement sur votre machine. Ce n'est pas le cas des fournisseurs d'IA cloud : si vous choisissez Gemini, OpenAI ou Anthropic, vos requêtes sont transmises à ce fournisseur selon ses conditions. Les réponses vocales fonctionnent différemment : avec tout fournisseur autre que Gemini ou OpenAI, qui disposent de leurs propres voix, le texte lu à voix haute est envoyé au service vocal en ligne Edge de Microsoft pour être converti en parole. L'application utilise le fournisseur d'IA de votre choix et n'envoie jamais une requête à un modèle cloud que vous n'avez pas sélectionné.
Le ping de version
Je n'ai aucune idée du nombre de personnes qui utilisent réellement Xenon. Les nombres de téléchargements sont du bruit, et je préfère savoir si les gens sont bloqués sur une ancienne version plutôt que de deviner. Il y a donc un interrupteur dans Paramètres → Général → Mises à jour, appelé Compter cette installation, de manière anonyme, qui envoie quelques champs lorsque l'application vérifie les mises à jour, au maximum une fois par jour. Voici la liste complète :
- la version que vous exécutez (p. ex.
4.11.0) ; - votre famille de système d’exploitation (p. ex.
win32), et non votre machine, son nom ou ses spécifications ; - l’ancienneté de cette installation, répartie en cinq plages : même jour, 1 à 7 jours, 8 à 30, 31 à 90, plus de 90 ;
- le mois au cours duquel cette installation a été exécutée pour la première fois (p. ex.
2026-07), ouunknown; - la version sur laquelle vous étiez auparavant, envoyée uniquement lors du premier ping après le changement ;
- deux drapeaux oui/non : s'il s'agit du premier ping de la semaine et du mois ;
- votre langue d’interface, parmi les onze livrées avec l’application.
C'est le payload complet. Ce qui n'est pas inclus : pas d'UUID d'installation (cet identifiant reste réservé aux notes et aux codes de supporters, et le mélanger ici me permettrait de corréler les deux, ce qui est exactement ce que je ne veux pas être en mesure de faire), aucune adresse IP conservée, aucun détail matériel, pas de fuseau horaire, et rien sur les widgets que vous utilisez, ce que vous recherchez ou ce que vous ouvrez. Le ping est une petite requête vers le hub des supporters, envoyée juste après la vérification de mise à jour que l'application effectue déjà.
Comptes hebdomadaires et mensuels
Le seul chiffre que je ne pouvais pas obtenir sans identifier les personnes était « combien d'installations différentes étaient actives cette semaine ». Normalement, cela nécessite un identifiant, afin que le serveur puisse distinguer deux pings provenant d'un même PC de deux pings provenant de deux PC différents. Ici, votre propre PC remplit ce rôle : il mémorise sur votre disque la dernière semaine et le dernier mois pour lesquels il a fait un rapport, et indique simplement « première fois cette semaine », une seule fois. Le serveur ajoute 1 et ne sait rien d'autre. Les compteurs hebdomadaires et mensuels sont exacts, et il n'y a toujours rien qui puisse vous identifier.
Comment les compteurs sont stockés
Côté serveur, il n'y a que des compteurs, pas de lignes concernant les machines. Et les champs ci-dessus sont comptés dans des tables distinctes, une par champ, jamais ensemble dans une seule ligne. C'est là que réside l'essentiel. Une seule ligne contenant la version et le système et l'âge et le mois de naissance et la langue pourrait facilement décrire une seule et même personne ; et comme la plupart de ces éléments restent identiques d'un jour à l'autre, les jours consécutifs pourraient être associés pour former l'historique d'une machine : un identifiant construit à partir des données, après avoir pris la peine de ne pas en envoyer un. Compter chaque champ séparément signifie que cette combinaison n'existe tout simplement pas dans la base de données : non cachée, non soumise à un contrôle d'accès, absente. Ce que je peux lire, c'est « N installations ont exécuté la version 4.11.0 aujourd'hui », « N sont nées en juillet » et « N ont plus de 90 jours », jamais lesquelles N et jamais le chevauchement.
Deux emplacements stockent une paire côte à côte, car c'est là que la paire est la question : combien d'installations sont passées d'une version à une autre, et combien d'installations nées un mois donné étaient encore actives un mois plus tard. Aucun des deux ne contient quoi que ce soit d'autre, et toute combinaison observée moins de cinq fois est regroupée dans « autre », y compris dans la console que seul moi peut voir.
Tout est supprimé après 400 jours. Aucune ligne par requête n'est conservée, il n'existe donc aucun jeu de données susceptible d'être transmis, saisi ou divulgué.
Modifications de la version v4.11.0
L'interrupteur lui-même n'a pas changé d'état pour quiconque : s'il était éteint, il est resté éteint ; s'il était allumé, il est resté allumé. Ce qui a changé, c'est ce que transporte un ping on, c'est pourquoi cette page a été modifiée dans la même version.
Une limite : les installations qui existaient déjà avant cette version signalent leur ancienneté et leur mois de création comme unknown, et continueront à le faire indéfiniment. L'application n'a jamais enregistré quand elles ont été lancées pour la première fois, et je préfère assumer un manque visible plutôt qu'un nombre supposé. Cette zone d'ombre est comptée et affichée comme une catégorie distincte, afin que je puisse toujours voir quelle partie de l'image est manquante.
Modifications de la version v4.8.0
Jusqu'à la version v4.7.1, cette option était désactivée jusqu'à ce que vous l'activiez. À partir de v4.8.0, elle est activée par défaut lors des nouvelles installations, car presque personne n'active ce type d'option et le comptage était donc inutile. Vous pouvez la désactiver à tout moment dans les Paramètres, et la désactivation prend effet immédiatement.
Si vous aviez déjà Xenon installé, rien n'a changé pour vous. La nouvelle valeur par défaut n'est lue que s'il n'existe pas encore de fichier de configuration, ce qui signifie une installation neuve. Si vous avez installé avant la v4.8.0 et que vous n'avez pas touché à l'interrupteur, il reste désactivé : on vous avait indiqué qu'il était désactivé sauf si vous choisissiez le contraire, et une mise à jour n'est pas le moment de réviser silencieusement ce choix. Si vous l'aviez activé, il reste activé. Dans tous les cas, l'application conserve ce que vos paramètres indiquent déjà.
Vos droits
En vertu du GDPR, vous pouvez demander l'accès à vos données personnelles, leur rectification ou leur effacement, et vous pouvez vous opposer au traitement. Pour ce site web, les voies pratiques sont les suivantes : appuyez sur Refuser (ou sur le bouton ci-dessus) pour arrêter Analytics, utilisez le module complémentaire de désactivation opt-out de Google, ou effacez les données de votre navigateur. Pour l'application, la désinstallation arrête tous les appels décrits ci-dessus, et la suppression de server/data/ supprime tout ce que l'application a stocké, y compris le UUID d'installation.
Vous avez également le droit de faire une réclamation auprès d'une autorité de contrôle ; en Italie, il s'agit du Garante per la protezione dei dati personali.
Modifications apportées à cette page
Si l’application effectue un appel réseau qui ne figure pas dans le tableau ci-dessus, le tableau est mis à jour dans la même version et les notes de version en font mention. La date en haut indique quand cette page a été modifiée pour la dernière fois.
