Foxpile Companion
Foxpile Companion est le client desktop Windows associé à Foxpile. Il surveille les fichiers de sauvegarde de Foxhole, extrait les informations utiles, puis envoie des mises à jour signées à l'API afin d'alimenter une base de données exploitable par d'autres développeurs.


Client Windows
Le companion fonctionne comme une application locale pensée pour rester discrète pendant une session de jeu. Il détecte le processus Foxhole, observe le dossier de sauvegarde et réagit uniquement lorsque des fichiers pertinents sont modifiés.
L'application prend place dans la zone de notification Windows afin de ne pas gêner l'utilisateur pendant une session. Depuis ce point d'accès, le joueur peut vérifier l'état du companion, gérer la connexion Discord et garder un retour visuel sur les actions réalisées en arrière-plan.
Avant chaque envoi, les fichiers sont contrôlés et hashés afin de produire des métadonnées fiables. Cette étape permet de limiter les uploads inutiles, de garder une trace cohérente des changements et de transmettre seulement les informations attendues par l'écosystème Foxpile.
La surveillance locale est également pensée pour être robuste : le client distingue le lancement et l'arrêt du jeu, centralise les erreurs dans un système de logs et conserve l'état de connexion de manière persistante. Cela permet de relancer l'application sans perdre la configuration utilisateur, tout en gardant un comportement prévisible si Foxhole ou l'API ne sont pas disponibles.
API et modèle de confiance
L'application communique avec l'API Foxpile via des requêtes signées. Chaque mise à jour est associée à une identité de companion et à un secret dédié, ce qui permet à l'API de refuser les données qui ne proviennent pas d'un client autorisé.
Le lien entre le companion et l'utilisateur repose principalement sur l'identifiant Steam du joueur, récupérable depuis les fichiers du jeu. Lors de la première utilisation, l'API utilise ces informations pour identifier le joueur et récupérer les données publiques utiles, comme son pseudo, afin de créer une association fiable sans demander de configuration supplémentaire.
Discord reste une intégration complémentaire, utilisée pour débloquer davantage de fonctionnalités côté API. Le choix de Steam comme base d'identification simplifie l'utilisation du companion et permet aussi aux joueurs de pays où Discord n'est pas accessible de profiter de l'application.
La configuration repose sur des variables d'environnement, une configuration générée au moment du build et des valeurs de développement locales. Cette organisation rend le projet adaptable entre développement, test et production sans mélanger les secrets ni les paramètres d'exécution.
L'API sert ensuite de point d'entrée pour les développeurs souhaitant exploiter les données Foxpile. La documentation présente les routes disponibles, les mécanismes d'identification et les formats de réponse attendus, afin de faciliter l'intégration dans des outils externes, des tableaux de bord ou des services communautaires autour de Foxhole.



Distribution et mises à jour
Le build Windows génère une application autonome avec Node SEA, une interface système, un installeur et un updater séparé. L'objectif est de fournir un outil simple à installer, tout en conservant un processus de publication reproductible.
Les releases sont automatisées via GitHub Actions à partir des tags de version. Le pipeline vérifie la cohérence entre le tag et le package, construit les artefacts Windows puis publie les fichiers nécessaires à l'installation et aux futures mises à jour.