Journal des changements
Changelog
Toutes les modifications notables de Von Neumann Game seront documentées ici, avec une attention particulière aux changements qui peuvent impacter les frontends et les intégrations API.
2026-06-12
Added
- API v25 : ajout des warnings persistants de dégâts de mouvement avec
GET /api/probe/damage-warningsetPATCH /api/probe/damage-warnings/{damageWarningId}pour marquer un warning comme lu. - Mouvement : à partir de 5 containers additionnels, un saut peut casser un lien de container avec 10% de risque, puis +10 points par container supplémentaire jusqu’à 100%.
- Mouvement : le container perdu est tiré au sort dès l’initiation du saut, puis devient un container dérivant avec son contenu dans le secteur de départ en fin d’accélération ou dans le secteur d’arrivée en début de décélération.
- API v24 : ajout des recettes
electric_motor,battery_pack,linear_actuatoretmanny. - Craft : la fabrication d’une Manny crée désormais une vraie entité Manny stockée dans la sonde, avec l’encombrement et la capacité cargo standards.
Changed
- Craft : le calcul des composants manquants est désormais récursif, afin qu’une recette puisse embarquer plusieurs niveaux de sous-recettes dans son coût et sa durée.
- Interface : les écrans
Mannys & imprimanteetInventairesaffichent les nouveaux composants et calculent récursivement la disponibilité des ingrédients. - Interface : les warnings de dégâts non lus mettent l’onglet
Alertesen style warning et s’acquittent via l’API au lieu du stockage local. - Déploiement : le schéma initialise automatiquement la table
probe_damage_warningset ses index. - Les clients typés doivent accepter
apiVersion: 25, les nouveaux types d’itemselectric_motor,battery_packetlinear_actuator, la recette/sortiemanny, ainsi que les schémasProbeDamageWarning*.
Fixed
- Interface : les panneaux interactifs ouverts dans les listes de métriques conservent maintenant leur état lors des rafraîchissements automatiques.
2026-06-11
Changed
- Réécriture complète de la Web UI : l’ancien template monolithique a été remplacé par un shell commun
templates/main.html, des templates dédiés par page et des scripts JavaScript spécifiques par écran. - Les anciens panneaux console sont désormais accessibles comme pages web autonomes :
/,/sensors,/movement,/inventories,/mannies,/messaginget/alerts. - Les pages publiques
/about,/changelog,/statset/api-docsont été intégrées au même système de routes frontend, avec Swagger UI sur/api-docs. - Le sélecteur de langue persiste maintenant le choix dans un cookie, reste sur la route courante et recharge le dictionnaire i18n avec une URL versionnée.
- Le menu tutoriel du header ouvre les tutoriels intégrés; après une première connexion OAuth et le choix du pseudonyme, le joueur est redirigé vers
/?tutorial=context.
Removed
- Suppression de l’ancien template
templates/home.html, qui n’était plus utilisé depuis la migration vers les routes frontend dédiées.
2026-06-09
Added
- Ajout de la page publique
/stats, accessible depuis le pied de page, qui affiche les statistiques agrégées de l’univers depuisvar/stats.json. - Ajout du script
scripts/generate-stats.phppour générer le JSON de statistiques destiné à une tâche CRON quotidienne. - Les statistiques couvrent notamment les sondes, secteurs générés et visités, trous noirs, astéroïdes par ressource minable, Mannys perdus ou oubliés, containers détachés et distances extrêmes entre sondes.
2026-06-08
Added
- API v23 : ajout du détachement de containers additionnels par Manny, en mode dérivant (
drifting) ou caché sur astéroïde (hidden_on_asteroid), avec conservation du contenu et des règles de routing. - API : ajout de
POST /api/probe/mannies/{mannyId}/detach-storage-container,POST /api/probe/mannies/{mannyId}/inspect-asteroidetPOST /api/probe/mannies/{mannyId}/recover-storage-container; le salvage existant peut aussi récupérer un container détaché dérivant. - API : les containers cachés sur astéroïde peuvent être détectés lors du minage ou d’une inspection Manny via
artificialObjectDetected, sans exposer leur contenu.
Changed
- Interface : le temps restant d’un déplacement dans l’onglet
Sondese met maintenant à jour localement et rafraîchit les données à l’arrivée. - Interface : amélioration de l’onglet
Capteurs et radars, qui désactive désormais le boutonScannerquand la somme des coordonnées relatives est impaire. - Interface : dans
Mannys & imprimante, une Manny située dans un autre secteur afficheTrop éloignéedans son accordéon et ne conserve que la métriquePositionau dépliage. - Les clients typés doivent accepter
apiVersion: 23, les tâches Mannydetaching_storage_containeretinspecting_asteroid, ainsi que le type de secteurdetached_container.
Fixed
- API : lorsqu’une sonde revient dans le secteur d’une Manny
forgottenqui lui appartient encore, la Manny inactive est automatiquement remise à bord si une place de stockage est disponible, et l’objet de secteurforgottenest supprimé. - JS : une tentative de scan avec des coordonnées relatives invalides efface maintenant le résultat du scan précédent tout en conservant le message d’erreur existant.
- JS : la liste des Mannys est resynchronisée après le chargement du secteur courant de la sonde afin d’afficher correctement les Mannys trop éloignées.
2026-06-06
Added
- API v16 : ajout de la messagerie inter-sondes avec
POST /api/probe/messages,GET /api/probe/messagesetPATCH /api/probe/messages/{messageId}/read. - Un message peut être envoyé uniquement à une autre sonde présente dans le même secteur que la sonde émettrice.
- Les messages reçus exposent l’émetteur, le destinataire, le secteur relatif, le corps du message, le statut
unread/read,readAt,createdAtetupdatedAt. - API v18 : ajout de
GET /api/probe/messages/sentpour consulter les messages envoyés par la sonde courante avec la même pagination que les messages reçus. - Interface : ajout de l’onglet
MessagerieentreMouvementetAlertes, avec envoi à une sonde du secteur, liste des messages reçus et passage des messages non lus au statutread.
Changed
- API v17 :
GET /api/probe/messagesretourne par défaut les 50 derniers messages reçus et accepte les paramètres optionnelslimitetoffsetpour consulter l’historique. - La réponse de
GET /api/probe/messagesexpose désormais un objetpaginationaveclimit,offset,count,totalethasMore. - API v19 :
GET /api/probe/messages/sentn’expose plus l’état de lecture du message (status,readAt,updatedAt). - Interface : la vue
Messageriesépare maintenantMessages reçusetMessages envoyésen onglets de classeur. - Interface : l’onglet
Messages envoyésn’affiche plus de statutLu/Non lu. - Interface : les règles de stockage par container utilisent des listes à sélection multiple avec une aide contextualisée et empêchent un même type d’être choisi dans plusieurs règles du même container.
- API v20 : les objets détaillés de
/api/sectoret/api/probe/sectorexposent désormaismassUnitetradiusUnitquandmass/radiussont présents. - Interface : les masses et rayons des corps détectés affichent leur unité (
M☉,R☉,M🜨,R🜨,km,AU) et l’ongletCapteurs et radarsexplique ces unités. - Interface : le dictionnaire de traduction JS est désormais servi via un JSON versionné et cacheable au lieu d’être injecté inline dans le HTML.
- API v21 : ajout des recettes
micro_conductor,ceramic_insulator,crystal_substrate,dopant_matrixetintegrated_circuit, fabriquées via l’imprimante atomique. - Interface : l’
Imprimante 3D atomiqueest renomméeImprimante atomique, et les nouveaux composants de circuit sont affichés dans les inventaires, recettes et règles de stockage. - Craft : les coûts de deutérium des recettes sont vérifiés et consommés en ECE de cuve, afin que
0.13 ECEcorresponde à 13% d’une cuve pleine. - API v22 : ajout de
POST /api/probe/atomic-printer/craftpour lancer les recettes de l’imprimante atomique avec réservation automatique d’une Manny assistante. - Interface : l’onglet
MannysdevientMannys & imprimante; l’imprimante atomique y apparaît comme poste de fabrication et les Mannys réservées affichentAssistance à l’imprimante.
Breaking Changes
- Les clients typés doivent accepter
apiVersion: 22, les nouveaux schémasProbeMessage*, le champpaginationsurProbeMessagesResponseet les nouveaux types d’items de craft électronique. - Les recettes
atomic_3d_printerdoivent être lancées viaPOST /api/probe/atomic-printer/craft;POST /api/probe/mannies/{mannyId}/craftest réservé aux recettes fabriquées directement par une Manny. - Les clients de
GET /api/probe/messages/sentdoivent utiliserProbeSentMessagesResponse: les champsstatus,readAtetupdatedAtne sont plus présents sur les messages envoyés.
2026-06-05
Added
- Rédaction et intégration des tutoriels de premiers pas : contexte de la sonde, déplacement et utilisation des Mannys, avec illustrations agrandissables.
Changed
- API v15 : l’installation d’un waypoint-bookmark passe par
POST /api/probe/mannies/{mannyId}/install-bookmarket crée une tâche Mannyinstalling_waypoint_bookmarkde 10 secondes. - L’ancien endpoint instantané
/api/probe/waypoint-bookmarks/{itemId}/deployn’est plus exposé dans l’API publique. - L’interface Actions ne contient plus le formulaire “Poser un marque-page”; l’action est disponible dans Mannys > Attribuer une tâche à la Manny.
- L’ordre consomme un waypoint-bookmark en stock au lancement de la tâche, puis conserve la persistance existante des
waypointBookmarkssur l’objet ciblé.
Breaking Changes
- Les clients typés doivent accepter
apiVersion: 15et la nouvelle tâche Mannyinstalling_waypoint_bookmark.
2026-06-04
Added
- API v14 : ajout de la gestion des stocks par container (
probe-core+ containers supplémentaires individuels). - Ajout des endpoints
/api/probe/storage-containers,/api/probe/storage-containers/{containerId},/api/probe/storage-containers/{containerId}/ruleset/api/probe/storage-moves. - Ajout du script
scripts/migrate-storage-containers.phppour répartir les stocks existants selon la règle par défaut. - L’interface des sous-systèmes affiche les lignes d’inventaire par container et permet de filtrer l’inventaire par container.
- Ajout de l’accordéon “Gérer les règles de stockage par container”.
- L’interface d’inventaire ajoute des actions par ligne de container pour déplacer le stock via une Manny ou le jeter dans l’espace avec confirmation.
- Ajout de
CHANGELOG.mdcomme source de vérité versionnée pour les changements du projet. - Ajout de la route
/changelog, qui affiche ce changelog en HTML depuis le site. - Ajout de
config/gameplay.jsonetconfig/universe.jsonpour centraliser les curseurs de gameplay et de génération procédurale.
Changed
/api/probeconserve l’inventaire global, mais les items exposent maintenant leurcontaineret les ressources exposent leurs lignescontainers.- Le déplacement de stock entre containers passe par une tâche Manny
moving_stockage. /api/probe/storage-movesaccepte des lotsitemIds/targetMannyIds, et le jettison de ressources peut cibler uncontainerId.- L’imprimante 3D atomique reste dans la sonde et ne peut pas être déplacée; le deutérium reste dans sa cuve dédiée.
- Les fichiers
config/*-local.jsonsurchargent les configurations versionnées sans être suivis par Git.
Breaking Changes
- Les clients typés doivent accepter
apiVersion: 14, le champinventory.containers, les placements de stock par container et la nouvelle tâche Mannymoving_stockage.