✔ normal movement is accepted without signal (322.8311ms)
✔ player character walk and sprint limits are accepted (311.9024ms)
✔ player character impossible displacement remains observe-only (294.2406ms)
✔ jump and falling context do not create fly signal (265.7061ms)
✔ unsupported persistent vertical hover creates observe-only fly signal (261.0644ms)
✔ impossible speed creates observation signal, never ban (250.035ms)
✔ non-finite position is rejected safely (268.6626ms)
✔ action rate is distinct from service rate limit (293.2582ms)
✔ risk state accumulates without automatic ban (339.4832ms)
✔ profile exposes recent timeline and configured observe mode (271.1417ms)
✔ authorized teleport opens a bounded grace window (330.2054ms)
✔ reconnect resets movement baseline without accusation (361.9522ms)
[astra] Astra City backend sur http://127.0.0.1:49237 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49237 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ santé : /health et /api/health répondent avec version et base (317.4626ms)
✔ statut public : maintenance, version minimale du launcher, fonctionnalités (4.4563ms)
[SECURITY] requête refusée requestId=req_61fb00ec579e status=403 method=POST path=/api/admin/maintenance playerId=usr_9e343d7052b0 ip=127.0.0.1
[SERVER] maintenance mise à jour enabled=true actor=usr_63baf2ed2e05
[SERVER] maintenance mise à jour enabled=false actor=usr_63baf2ed2e05
[SERVER] maintenance mise à jour enabled=true actor=usr_63baf2ed2e05
[SERVER] maintenance mise à jour enabled=false actor=usr_63baf2ed2e05
✔ maintenance : seul un admin la déclenche ; les tickets joueurs sont refusés, pas ceux des admins (197.6187ms)
[SECURITY] requête refusée requestId=req_c9060485f0a0 status=403 method=POST path=/api/admin/releases playerId=usr_9e343d7052b0 ip=127.0.0.1
[UPDATE] release publiée id=rel_92d1935a0d8a channel=beta platform=win64 version=0.1.0 build=100 actor=usr_63baf2ed2e05
[UPDATE] release publiée id=rel_95500877b89d channel=beta platform=win64 version=0.1.1 build=101 actor=usr_63baf2ed2e05
[UPDATE] release retirée id=rel_95500877b89d actor=usr_63baf2ed2e05
✔ releases : publication admin validée, manifeste launcher, compatibilité, retrait (200.3172ms)
[SECURITY] requête refusée requestId=req_3e662e42f857 status=403 method=POST path=/api/admin/news playerId=usr_9e343d7052b0 ip=127.0.0.1
✔ actualités : publiées par un admin, lues sans compte, liens https seulement (59.8464ms)
[TELEMETRY] retour joueur reçu id=fb_a9f0462d0b3b kind=BUG playerId=usr_9e343d7052b0
[SECURITY] requête refusée requestId=req_b4120ec19add status=403 method=GET path=/api/admin/feedback playerId=usr_9e343d7052b0 ip=127.0.0.1
✔ feedback : compte requis, contexte filtré, retours lisibles par les admins seulement (77.9096ms)
[CRASH] crash reçu id=crash_d3310dcda4e2 fingerprint=472e838aad3f078f686043c4 version=0.1.0 build=100 platform=win64 map=City
[CRASH] crash reçu id=crash_b7808c7dd3cf fingerprint=472e838aad3f078f686043c4 version=0.1.0 build=100 platform=win64 map=City
✔ crash : accepté sans session, chemins personnels effacés, regroupé par empreinte (62.2771ms)
✔ télémétrie : liste blanche d’événements, statistiques admin (92.8728ms)
[SECURITY] requête refusée requestId=req_0d64b3f84d2e status=403 method=POST path=/api/game/join-ticket/verify ip=127.0.0.1
[SECURITY] requête refusée requestId=req_c7f762857d9a status=403 method=POST path=/api/game/join-ticket/verify playerId=usr_9e343d7052b0 ip=127.0.0.1
[GAME] joueur admis sur le serveur de jeu playerId=usr_9e343d7052b0
✔ ticket serveur de jeu : court, usage unique, vérifié seulement par l’autorité monde (131.5118ms)
✔ session : rotation par refresh, ancien jeton révoqué, session expirée refusée (188.1892ms)
[SECURITY] requête refusée requestId=req_90cc6d926e36 status=403 method=POST path=/api/providers playerId=usr_9e343d7052b0 ip=127.0.0.1
[SECURITY] requête refusée requestId=req_094b3be02c07 status=403 method=POST path=/api/providers playerId=usr_9e343d7052b0 ip=127.0.0.1
[SECURITY] requête refusée requestId=req_2970ff31108b status=403 method=POST path=/api/providers playerId=usr_9e343d7052b0 ip=127.0.0.1
✔ connexions fournisseur : URL libre et CLI serveur interdites aux joueurs hors développement (38.2795ms)
[ORCHESTRATOR] orchestrateur hébergé créé agentId=agent_1ebbb2f59ad6
[AGENT] équipe bêta installée playerId=usr_beffd08c28fa agents=7
[AI] serveur de modèles hébergé indisponible playerId=usr_051b8433f8e3 error="HTTP 503 : {}"
✔ IA hébergée : un nouveau joueur reçoit son équipe sans clé, sans abonnement, une seule fois (838.8516ms)
✔ chien de garde : une mission muette passe en FAILED/TIMEOUT avec événement, puis peut être relancée (31.019ms)
✔ WebSocket : les signaux de sécurité (IP, clés de limitation) ne sont jamais diffusés aux joueurs (353.9318ms)
✔ configuration : la production refuse localhost, http, workspace = code serveur et jeton monde absent (0.6607ms)
[SECURITY] requête refusée requestId=brute-9-abcdef status=429 method=POST path=/api/auth/login ip=127.0.0.1
[SECURITY] requête refusée requestId=brute-10-abcdef status=429 method=POST path=/api/auth/login ip=127.0.0.1
[SECURITY] requête refusée requestId=brute-11-abcdef status=429 method=POST path=/api/auth/login ip=127.0.0.1
[SECURITY] requête refusée requestId=brute-12-abcdef status=429 method=POST path=/api/auth/login ip=127.0.0.1
[SECURITY] requête refusée requestId=brute-13-abcdef status=429 method=POST path=/api/auth/login ip=127.0.0.1
[SECURITY] requête refusée requestId=brute-14-abcdef status=429 method=POST path=/api/auth/login ip=127.0.0.1
[SECURITY] requête refusée requestId=brute-15-abcdef status=429 method=POST path=/api/auth/login ip=127.0.0.1
[SECURITY] requête refusée requestId=brute-16-abcdef status=429 method=POST path=/api/auth/login ip=127.0.0.1
[SECURITY] requête refusée requestId=brute-17-abcdef status=429 method=POST path=/api/auth/login ip=127.0.0.1
[SECURITY] requête refusée requestId=brute-18-abcdef status=429 method=POST path=/api/auth/login ip=127.0.0.1
[SECURITY] requête refusée requestId=brute-19-abcdef status=429 method=POST path=/api/auth/login ip=127.0.0.1
[SECURITY] requête refusée requestId=brute-20-abcdef status=429 method=POST path=/api/auth/login ip=127.0.0.1
[SECURITY] requête refusée requestId=brute-21-abcdef status=429 method=POST path=/api/auth/login ip=127.0.0.1
✔ charge utile : JSON invalide 400, corps énorme 413, connexion par compte limitée (433.2598ms)
[astra] Astra City backend sur http://127.0.0.1:49238 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49238 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[SECURITY] requête refusée requestId=req_a99eec39f906 status=403 method=POST path=/api/auth/bootstrap ip=127.0.0.1
[SECURITY] requête refusée requestId=req_ce9f4b55c01e status=403 method=POST path=/api/auth/bootstrap ip=127.0.0.1
[SECURITY] requête refusée requestId=req_c460ac786518 status=403 method=POST path=/api/auth/bootstrap ip=127.0.0.1
✔ bootstrap HTTP fermé : secret non configuré → 403 pour un secret vide ou quelconque (112.8358ms)
✔ bootstrap HTTP fermé : le tout premier inscrit est un PLAYER, jamais un SUPER_ADMIN (69.248ms)
[astra] Astra City backend sur http://127.0.0.1:49233 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49233 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[SECURITY] requête refusée requestId=req_5250721a0976 status=403 method=POST path=/api/auth/bootstrap ip=127.0.0.1
✔ bootstrap HTTP : secret invalide → 403, aucun compte créé (54.7284ms)
[SECURITY] requête refusée requestId=req_ece701a353fd status=403 method=GET path=/api/admin/audit playerId=usr_df22d6b3c15e ip=127.0.0.1
[SECURITY] requête refusée requestId=req_e01dda507c4c status=429 method=POST path=/api/auth/bootstrap ip=127.0.0.1
✔ bootstrap HTTP : secret valide → SUPER_ADMIN ; inscription publique → PLAYER ; rejeu → 409 ; rate limit (230.1888ms)
[astra] Astra City backend sur http://127.0.0.1:49249 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49249 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49267 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49267 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L5-01 migration 011 non destructive ; libellé V2 conservé (306.9898ms)
✔ L5-02 métiers versionnés : enregistrement idempotent, exigences immuables, cycle de vie (1625.8205ms)
[astra] Astra City backend sur http://127.0.0.1:49316 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49316 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L5-03 éligibilité déterministe : NOT_ELIGIBLE (écart exact), NEARLY_ELIGIBLE, ELIGIBLE, porte de confiance (12578.6747ms)
[astra] Astra City backend sur http://127.0.0.1:49385 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49385 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L5-04 écarts et objectifs d’apprentissage, sans inscription automatique (5672.677ms)
[astra] Astra City backend sur http://127.0.0.1:63788 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63788 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L5-05 Milo NON ÉLIGIBLE : candidature rejetée avec instantané, aucun emploi, poste intact (5443.513ms)
[astra] Astra City backend sur http://127.0.0.1:63866 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63866 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L5-06 agent éligible : cycle complet de candidature, embauche, poste occupé, états séparés (5506.063ms)
[astra] Astra City backend sur http://127.0.0.1:63903 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63903 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L5-07 idempotence : double candidature, double acceptation, double embauche, rejeu d’événement (4763.5016ms)
[astra] Astra City backend sur http://127.0.0.1:55849 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=55849 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✖ L5-08 concurrence RÉELLE : deux processus acceptent le même poste, un seul emploi (6907.9055ms)
[astra] Astra City backend sur http://127.0.0.1:55861 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=55861 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L5-09 garde-fous base : double occupation impossible, historique non supprimable et figé (4342.7677ms)
[astra] Astra City backend sur http://127.0.0.1:59590 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=59590 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:59594 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=59594 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L5-10 reprise après redémarrage : OFFERED puis ACCEPTED non finalisée, aucune double embauche (6642.0848ms)
[SECURITY] requête refusée requestId=req_acac453eae20 status=403 method=POST path=/api/admin/positions playerId=usr_39b156104dca ip=127.0.0.1
[SECURITY] requête refusée requestId=req_71a2e4a1664f status=403 method=POST path=/api/admin/careers/register playerId=usr_39b156104dca ip=127.0.0.1
[SECURITY] requête refusée requestId=req_952959e946c2 status=403 method=POST path=/api/admin/employments/exception playerId=usr_39b156104dca ip=127.0.0.1
[astra] Astra City backend sur http://127.0.0.1:63060 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63060 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L5-11 autorisations : propriétaire, administrateur, exception auditée, aucune route « force job » (1736.9555ms)
[astra] Astra City backend sur http://127.0.0.1:63076 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63076 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L5-12 expérience : mission réelle réussie → WorkExperienceEvent avec preuve, rejouer ne double rien (5782.7505ms)
[astra] Astra City backend sur http://127.0.0.1:63091 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63091 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:63105 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63105 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L5-13 panne fournisseur ou mission non pertinente : aucune expérience, aucune pénalité de carrière (10788.2656ms)
[astra] Astra City backend sur http://127.0.0.1:63122 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63122 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L5-14 aperçu de promotion : NOT_READY avec écarts explicites, rien n’est appliqué (5798.4068ms)
[astra] Astra City backend sur http://127.0.0.1:63135 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63135 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L5-15 Mission Control : aperçu carrière non décisionnel, routage V2 identique (4006.1707ms)
✔ L5-16 compatibilité : agent historique sans emploi, libellé V2 affiché, carrière explicable (1263.7616ms)
ℹ Error: Test "L5-08 concurrence RÉELLE : deux processus acceptent le même poste, un seul emploi" at astra\test\career.test.js:216:1 generated asynchronous activity after the test ended. This activity created the error "SyntaxError: Unexpected end of JSON input" and would have caused the test to fail, but instead triggered an uncaughtException event.
[astra] Astra City backend sur http://127.0.0.1:49239 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49239 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ les secrets sont chiffrés (AES-GCM) et infalsifiables (13.9517ms)
✔ mots de passe hachés (scrypt) (152.5067ms)
[SECURITY] requête refusée requestId=req_2a332b842bb4 status=403 method=GET path=/api/admin/audit playerId=usr_53a26ec50a49 ip=127.0.0.1
✔ inscription, connexion, rôles et session (460.6475ms)
✔ mission refusée sans droit d’accès (EntitlementService) (89.0927ms)
[AUTH] ticket launcher échangé requestId=req_d9416295c308 playerId=usr_53a26ec50a49
✔ ticket launcher : échange sans mot de passe, usage unique, expiration et isolation du compte (175.863ms)
✔ machine à états des agents (53.911ms)
✔ bac à sable des outils : pas de secrets, pas de sortie du dépôt (4.8937ms)
✔ temps réel : authentification obligatoire et snapshot (75.1328ms)
✔ audit : une référence non consultée est signalée, une lecture réelle est vérifiée (116.5139ms)
✔ audit : formats de référence avec crochets et lignes isolées (91.8789ms)
✖ Practice et Exam : même résultat depuis la racine, depuis astra/ et depuis un répertoire étranger (200.1307ms)
✔ Exam : le moteur d’examen n’utilise plus de chemin relatif au répertoire courant (1.2668ms)
[astra] Astra City backend sur http://127.0.0.1:49235 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49235 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✖ synthetic complex decomposition executes children through the production lifecycle (15671.9004ms)
[astra] Astra City backend sur http://127.0.0.1:49243 (espace de travail des agents : C:\Users\jerom\AppData\Local\Temp\astra-devchain-MDHaXY\ws)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49243 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ 0. un verdict de recette n'est jamais perdu, jamais inventé (2.908ms)
✔ A. seules les commandes autorisées sont exécutables (2.0713ms)
✔ B. les commandes sont extraites des critères du plan (0.6023ms)
✔ C. les tests dérivés ciblent les fichiers réellement présents (10.2847ms)
[astra] Astra City backend sur http://127.0.0.1:49279 (espace de travail des agents : C:\Users\jerom\AppData\Local\Temp\astra-devchain-MDHaXY\ws)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49279 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49282 (espace de travail des agents : C:\Users\jerom\AppData\Local\Temp\astra-devchain-MDHaXY\ws)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49282 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ D. le cycle complet produit un vrai commit, de vrais tests et une recette persistée (3535.7861ms)
[astra] Astra City backend sur http://127.0.0.1:49289 (espace de travail des agents : C:\Users\jerom\AppData\Local\Temp\astra-devchain-MDHaXY\ws)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49289 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49293 (espace de travail des agents : C:\Users\jerom\AppData\Local\Temp\astra-devchain-MDHaXY\ws)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49293 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49296 (espace de travail des agents : C:\Users\jerom\AppData\Local\Temp\astra-devchain-MDHaXY\ws)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49296 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ E. reprendre après recette ne refait ni écriture, ni test, ni recette (416.0667ms)
✔ F. la base refuse une recette dont le relecteur est le développeur (1961.8069ms)
✔ G. un plan figé est relu tel quel (1376.3404ms)
✔ H. sans job à recetter → BLOCKED tracé, jamais un PASS fabriqué (1499.0067ms)
✔ I. le relecteur provisionné est distinct, sans droit d'écriture, et hors routage (1914.0153ms)
[astra] Astra City backend sur http://127.0.0.1:49312 (espace de travail des agents : C:\Users\jerom\AppData\Local\Temp\astra-devchain-MDHaXY\ws)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49312 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49339 (espace de travail des agents : C:\Users\jerom\AppData\Local\Temp\astra-devchain-MDHaXY\ws)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49339 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ J. un test en échec interdit le commit — la preuve figée ne ment jamais (3445.7076ms)
✔ L. un plan sans critères d'acceptation ne rend pas la chaîne aveugle (1949.1438ms)
✔ K. la mission décomposée traverse la chaîne autonome sans passer par le rapport (4154.8627ms)
[astra] Astra City backend sur http://127.0.0.1:49252 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49252 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49269 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49269 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49278 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49278 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49283 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49283 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49290 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49290 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49295 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49295 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49307 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49307 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49314 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49314 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49340 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49340 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49360 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49360 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49386 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49386 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49408 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49408 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49426 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49426 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:63789 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63789 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:63811 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63811 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:63864 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63864 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:63873 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63873 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:63882 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63882 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:63902 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63902 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:51613 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=51613 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L2-01 migration 008 non destructive (V2 + lot 1 intacts) (309.0454ms)
✔ L2-02 Course Pack : chargement et empreinte SHA-256 déterministe (36.9743ms)
✖ L2-03 validation stricte du manifeste et du contenu (données non fiables) (56.6696ms)
✔ L2-04 registre : enregistrement idempotent, conflit de contenu, activation et types non exécutables (1574.5834ms)
✔ L2-05 immuabilité d’une version publiée (1692.6857ms)
✔ L2-06 une inscription reste sur sa version même si une nouvelle version est activée (2440.2339ms)
✔ L2-07 inscription : idempotente, propriété, prérequis (1879.5043ms)
✔ L2-08 séparation étudiant / professeur / correcteur (1721.4202ms)
✔ L2-09 machine à états : transitions validées, persistées, journalisées (2509.222ms)
✔ L2-10 formation complète : artefacts hashés, points de reprise, aucune compétence ni certification (2213.0535ms)
✔ L2-11 panne fournisseur : état bloqué, codes distingués, bon acteur, rien de perdu (15816.1623ms)
✔ L2-12 reprise au bon point : aucun travail perdu, aucune activité réexécutée (3909.5137ms)
✔ L2-13 idempotence : double démarrage, double reprise, rejeu d’événement (1557.8556ms)
✔ L2-14 budget pédagogique : paliers 70/85/95, pause propre, artefacts conservés (1387.3497ms)
[astra] Astra City backend sur http://127.0.0.1:51614 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=51614 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:51617 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=51617 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L2-15 persistance après redémarrage : pause propre, reprise sans recommencer (1400.2336ms)
[SECURITY] requête refusée requestId=req_e30d12a77dc2 status=403 method=POST path=/api/admin/courses/register playerId=usr_5983294ed959 ip=127.0.0.1
[astra] Astra City backend sur http://127.0.0.1:51631 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=51631 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L2-16 API : cours, inscriptions, formation, propriété, registre réservé aux admins (1605.4027ms)
✔ L2-17 Mission Control inchangé ; aucune compétence modifiée par l’Université (1245.8272ms)
[astra] Astra City backend sur http://127.0.0.1:49242 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49242 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ A. une lecture réelle crée une preuve vérifiée, avec provenance complète (84.4786ms)
✔ B. un identifiant de preuve se résout vers l’observation persistée exacte (4.1532ms)
✔ C. un identifiant de preuve fabriqué échoue (2.3854ms)
✔ D. une référence chemin:ligne fabriquée échoue toujours (2.0554ms)
✔ E. un fichier qui existe mais n’a jamais été observé ne devient PAS vérifié (1.1905ms)
✔ I. une empreinte divergente échoue (le fichier a changé après l’observation) (16.6435ms)
✔ K. une citation par identifiant ne fait pas planter l’audit (pas de nom de fichier) (1.6341ms)
✔ L. une preuve héritée reste résoluble en chemin:ligne (forme historique) (1.1146ms)
✔ G. une reprise (point de contrôle) conserve l’identité des preuves (1.5835ms)
✔ H. une preuve ne traverse pas une tâche non autorisée (1.2024ms)
✔ F. la preuve héritée de RECONNAISSANCE est utilisable par PLAN (1.1795ms)
✔ J. les garanties anti-hallucination existantes restent intactes (0.9759ms)
✔ persistance : une preuve est écrite en base, cloisonnée par mission, et relisible (90.9737ms)
[astra] Astra City backend sur http://127.0.0.1:49244 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49244 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49280 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49280 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ LOT3-14 gouvernance désactivée (défaut) : la mission tourne comme en V2, sans trace de pool (5035.5508ms)
[astra] Astra City backend sur http://127.0.0.1:49286 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49286 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ LOT3-15 gouvernance active sans worker : la mission est BLOQUÉE avec le motif, jamais exécutée (1718.7168ms)
✔ LOT3-16 gouvernance active avec un worker : runtime substitué, place réservée puis rendue (4140.2776ms)
✔ C-00 deux budgets distincts, centralisés (1128.8952ms)
✔ C-01 PRACTICE : tsc hors budget → aucune note, aucune progression, soumission conservée ; reprise → vraie note (3267.4975ms)
✔ C-02 PRACTICE : une vraie erreur TypeScript reste un échec de l’étudiant (discriminant) (2451.8983ms)
✔ C-03 EXAM : tsc hors budget → pas de FAILED, pas de tentative consommée, pas de délai ; reprise → PASSED (6907.357ms)
✔ C-04 EXAM : une vraie erreur TypeScript donne FAILED et déclenche le délai (règles existantes) (4160.938ms)
✔ C-05 redémarrage après blocage : reprise sur une nouvelle instance, invariants 1/1/1 (4535.5168ms)
node:internal/modules/esm/load:193
    throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);
          ^

Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
    at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:193:11)
    at defaultLoadSync (node:internal/modules/esm/load:146:3)
    at #loadAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:802:12)
    at #loadSync (node:internal/modules/esm/loader:834:53)
    at ModuleLoader.load (node:internal/modules/esm/loader:783:26)
    at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:494:31)
    at #getOrCreateModuleJobAfterResolve (node:internal/modules/esm/loader:560:36)
    at afterResolve (node:internal/modules/esm/loader:607:52)
    at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:613:12)
    at ModuleJob.syncLink (node:internal/modules/esm/module_job:163:33) {
  code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME'
}

Node.js v24.19.0
✖ C-06 crash réel (SIGKILL) pendant la notation Practice : reprise, une seule évaluation, une seule progression (1504.3862ms)
✔ C-07 le code de l’étudiant garde son propre budget : boucle infinie = échec imputable à la solution (5970.2502ms)
✖ C:\Astra\worktrees\public-beta-readiness\astra\test\grading-timeout.test.js (3.9514ms)
✔ URI : aller-retour site/room/row/rack/node (5.0098ms)
✔ URI : un caractèrepiège ne peut pas créer de segment (0.4764ms)
✔ masquage : MAC et IP ne sortent jamais en clair (0.8952ms)
✔ états : une sonde réussie achève la découverte (0.4049ms)
✔ dénylist : les noms de secrets sont refusés (1.0247ms)
✔ parseBlocks : un champ va dans le bloc englobant, pas le précédent (1.122ms)
✔ parseKeyValue : accepte « : » et « = », normalise les clés (0.8039ms)
✔ bytesOf : unités SI et binaires, jamais de valeur inventée (1.1801ms)
✔ normalisation : aucun composant sans fait réel (3.6559ms)
✔ normalisation : la RAM n'est instanciée que si les DIMM sont énumérés (1.2358ms)
✔ normalisation : un secret dans les faits est écrasé avant écriture (0.6867ms)
✔ normalisation : les adresses sont masquées dans les faits ET dans les composants (1.2366ms)
✔ masquage : idempotent, un fait déjà masqué ne perd pas sa famille (0.2515ms)
✔ assertNoSecrets refuse un inventaire qui fuit un secret (0.5564ms)
✔ presentNode : lit une ligne SQL et renvoie UNKNOWN plutôt que de combler (0.5478ms)
✔ registre : les quatre sources sont enregistrées, aucune n'est active par défaut (0.3548ms)
✔ canUse refuse une source non configurée plutôt que d'inventer (1.3832ms)
✔ service : la disposition physique est créée une seule fois (365.137ms)
✔ service : seul un administrateur peut brancher une source (371.4574ms)
✖ service : découverte réelle de la machine locale (349.7796ms)
✔ service : aucun secret n'atteint la base ni l'API (327.438ms)
✔ service : un redécouverte ne duplique ni composants ni incidents (358.7558ms)
✔ service : un hôte injoignable passe OFFLINE, jamais ONLINE (594.3293ms)
✔ service : l'emplacement physique est unique, le même nom reste libre ailleurs (383.793ms)
✖ service : l'arborescence destinée à Unreal est cohérente (407.4086ms)
✖ datacenter : le snapshot ne mélange pas les machines de deux comptes (638.4601ms)
✖ service : les événements sont émis pour les changements réels (484.3529ms)
✖ seuils : une métrique jamais lue reste NON MESURÉE, jamais saine (438.1792ms)
✖ seuils : franchir puis rejoindre les bornes ouvre et referme un incident unique (791.8746ms)
✖ seuils : un avertissement qui devient critique est suivi, pas planté (427.5663ms)
✖ seuils : deux métriques hors bornes = deux incidents, pas un seul partagé (474.7082ms)
✖ seuils : un seuil de composant n'emprunte pas la mesure de l'hôte (425.1252ms)
✖ collecte périodique : la source est sondée, et sa cadence est réellement respectée (520.0024ms)
✔ collecte périodique : une source devenu impossible à sonder est ignorée, pas déclarée morte (512.5103ms)
✔ collecte périodique : une source configurée qui ne répond plus est un échec, pas un silence (490.5525ms)
✔ émissions : sans wattmétrie, le total reste inconnu — jamais zéro (443.3146ms)
✖ émissions : la puissance nominale n'est jamais comptée comme une consommation (410.2855ms)
✖ émissions : le facteur réseau, s'il est déclaré, s'applique aux watts mesurés (372.0771ms)
✖ seuils : retirer un seuil emporte l'incident qu'il avait ouvert (487.9598ms)
✖ seuils : un seuil ne peut pas viser le composant d'un autre hôte (1030.9401ms)
✖ seuils : un joueur ne pose pas de seuil, et un seuil incohérent est refusé (400.9631ms)
✔ plateforme : la charge macOS est lue en virgule décimale, pas écrasée à 0 (1.564ms)
✔ plateforme : un sysctl absent ne fabrique pas de charge (0.3115ms)
✖ intégration : la machine réelle expose un inventaire non vide et sourcé (32.5843ms)
[astra] Astra City backend sur http://127.0.0.1:49246 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49246 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ les doublures d’escalade sont classées « local » (coût nul) (123.2782ms)
✔ unité en échec de capacité → UNE escalade locale, qui réussit (23379.6212ms)
✔ si le modèle escaladé échoue aussi : la mission reste BLOQUÉE, sans reboucle (2803.914ms)
✔ la base refuse une escalade cloud, une rétrogradation, ou deux escalades (6.423ms)
✔ le fournisseur Ollama demande une libération rapide du modèle (keep_alive) (9.5806ms)
✔ l'arbitrage de résidence libère le modèle principal avant l'escalade (2.5259ms)
✔ le contexte local est bornable : sur un gros modèle, 32768 tue la machine (0.7245ms)
✔ router preview local ne consomme rien et ne crée ni mission ni donnée (4.107ms)
✔ versioning, sélection déterministe et questions confidentielles (38.3132ms)
✔ échec puis réussite déterministe et certification idempotente (6556.8526ms)
✔ provider bloqué, autorité et révocation restent explicites (50.5361ms)
✔ fresh database reaches latest worker_stats schema (303.0829ms)
✔ legacy worker_stats drift is repaired without losing rows (275.8075ms)
[astra] Astra City backend sur http://127.0.0.1:49315 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49315 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ LOT1-01 migration 013 strictement additive : `agents` et les métiers V2 sont intacts (296.1523ms)
✔ LOT1-02 migration 013 rejouable deux fois sans effet de bord (269.7472ms)
✔ LOT1-03 couche canonique : l’état stocké V2 devient l’état d’affichage, et inversement (0.4565ms)
✔ LOT1-04 `isAssignable` inchangé : seul AVAILABLE est assignable, les états ajoutés ne le sont pas (1.1789ms)
✔ LOT1-05 catégories d’état et dénombrement cohérents (0.4674ms)
✔ LOT1-06 catalogue : 9 départements, tous peuplés et avec un responsable, tous les bâtiments et métiers existent (0.8512ms)
✔ LOT1-07 honnêteté des outils : la partition disponible / en attente est exacte et sans trou (0.688ms)
✔ LOT1-08 les compétences d’un rôle viennent du métier et existent toutes au catalogue (0.8555ms)
✔ LOT1-09 provision idempotente : un agent fondateur par rôle, un seul ensemble, aucun doublon (2554.529ms)
✔ LOT1-10 honnêteté : un agent provisionné n’est ni exécutable ni disponible (3217.7132ms)
✔ LOT1-11 performance : aucun taux inventé, null tant qu’aucune mission n’est mesurée (2779.7057ms)
✔ LOT1-12 historique d’états en ajout seul, alimenté par le bus d’événements (1404.7339ms)
✔ LOT1-13 rattachement des agents V2 par libellé de département, sans les modifier (850.4143ms)
✔ LOT1-14 statisticien : les faits par département, jamais de causalité affirmée (2776.588ms)
[SECURITY] requête refusée requestId=req_ff7ff7b3cf3b status=403 method=POST path=/api/organization/provision playerId=usr_849bb6f0dcb7 ip=127.0.0.1
[SECURITY] requête refusée requestId=req_60d9efd13dd3 status=403 method=PUT path=/api/organization/agents/x/enabled playerId=usr_849bb6f0dcb7 ip=127.0.0.1
[astra] Astra City backend sur http://127.0.0.1:49362 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49362 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ LOT1-15 API : organisation, provision administrateur, refus d’une écriture non autorisée (4195.759ms)
✔ LOT1-16 API : le journal d’organisation est consultable, croît et reste immuable (3912.9863ms)
[astra] Astra City backend sur http://127.0.0.1:49250 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49250 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49266 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49266 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ physical arrival v1: validation, reconnect and exactly-once duplicate handling (1412.0858ms)
✔ headless simulation arrives deterministically for all supported activity destinations (1940.0755ms)
[astra] Astra City backend sur http://127.0.0.1:49253 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49253 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49268 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49268 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ BRIDGE-01 mission EXPERT sans runtime EXPERT : bloquée directement, ni enfant ni unité, aucun travail exécuté (1477.4949ms)
[astra] Astra City backend sur http://127.0.0.1:49407 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49407 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ BRIDGE-02 mission COMPLEX, runtime SIMPLE seul : PLAN jamais direct, unités bornées routées normalement, assemblage déterministe (20498.4288ms)
[astra] Astra City backend sur http://127.0.0.1:55844 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=55844 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ BRIDGE-03 retry d’une mission bloquée : les tâches DONE sont intactes, aucun doublon d’étape, d’unité ni d’assemblage (18639.8043ms)
✔ BRIDGE-04 reprise : PLAN dont toutes les unités sont DONE mais non assemblé (arrêt entre deux écritures) → assemblé une fois, rien de dupliqué (19409.2504ms)
✔ TS-101 seed immuable et hidden tests séparés (2.4941ms)
✔ sandbox AST bloque les primitives dangereuses (11.7099ms)
✔ sandbox hostile : filesystem, environnement, réseau, child-process, boucle et sortie (475.352ms)
✔ soumission persistée avant évaluation, tsc réel, hidden non transmis, progression idempotente (1803.8809ms)
✔ erreur TypeScript et hidden test échoué restent des résultats pédagogiques (2504.2164ms)
✔ P-01 codes réseau et délais (objets d’erreur) (1.3141ms)
✔ P-02 « fetch failed » : la cause décide (1.8586ms)
[astra] Astra City backend sur http://127.0.0.1:49271 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49271 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ P-03 erreurs RÉELLES de Node : port fermé, connexion coupée, port interdit (64.6841ms)
✔ P-04 messages fournisseurs / CLI, et vraie erreur d’exécution (2.3133ms)
[astra] Astra City backend sur http://127.0.0.1:49277 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49277 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ P-05 vrai fournisseur Ollama vers un port fermé, via le Provider Gateway : NETWORK_ERROR (1289.2587ms)
[astra] Astra City backend sur http://127.0.0.1:49299 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49299 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ P-06 MISSION + panne réseau réelle → PROVIDER_BLOCKED NETWORK_ERROR, aucun échec de l’agent (7616.5418ms)
✔ P-07 UNIVERSITÉ + même panne réseau réelle → PROVIDER_BLOCKED NETWORK_ERROR, aucun échec de l’étudiant (1987.9922ms)
[astra] Astra City backend sur http://127.0.0.1:49270 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49270 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ A. « Node.js » (et autres technologies avec un point) ne deviennent jamais des fichiers (136.591ms)
✔ 21. timeout du relecteur → PROVIDER_BLOCKED (jamais FAILED ni ESCALATION_REQUIRED) (2450.8606ms)
✔ 22. l’échec du relecteur n’affecte pas l’exécutant (stats, tentatives, statut, escalade) (421.4276ms)
✔ 24. le MissionArtifact existe avant le lancement de la relecture (1.1335ms)
✔ 23 + 25. reprise depuis AFTER_AUDIT : aucun nouvel appel d’exécution, RESUMING → REVIEW → COMPLETED (1520.6114ms)
✔ B + C. SESSION_LIMIT de l’EXÉCUTANT → PROVIDER_BLOCKED (agent bloqué) puis reprise de son travail (3872.6123ms)
✔ D. une correction ne redéclenche aucun appel d’outil (aucun outil fourni) (2906.7418ms)
✔ E. le budget arrête proprement l’exploration et un livrable est quand même produit (2650.8615ms)
✔ MCP : le serveur MCP refuse les appels au-delà de 95 % du budget (833.8033ms)
✔ F. exclusions : validation/, journaux, Saved/, caches, CLAUDE.md sont hors analyse (798.4767ms)
✔ I. le contrat de preuve appliqué par checkDeliverable est écrit dans le prompt (3287.7698ms)
✔ G + H. un livrable tronqué est refusé ; cycle borné sans boucle (3251.9337ms)
[astra] Astra City backend sur http://127.0.0.1:49275 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49275 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ classification heuristique et niveaux de modèles (78.0558ms)
✔ mission complexe BLOQUÉE s’il n’existe qu’un petit modèle (pas de repli) (212.4287ms)
✔ échec après révision → escalade vers un runtime supérieur avec dossier de passation (5324.8445ms)
✔ Agent et runtime découplés : Nova change de moteur sans perdre son identité (13.5751ms)
✔ la qualification est bornée par le parc local (un EXPERT non servi ne rend pas la mission inroutable) (206.8309ms)
[astra] Astra City backend sur http://127.0.0.1:49297 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49297 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ LOT3-01 migration 017 additive : agents et agent_runtimes intouchés (242.0088ms)
✔ LOT3-02 la base refuse une récurrence sans date de départ (636.784ms)
✔ LOT3-03 LIVE est refusé bruyamment, jamais exécuté en PAPER (1021.9338ms)
✔ LOT3-04 la file sert la priorité la plus haute, puis la plus ancienne (616.2448ms)
✔ LOT3-05 le plafond de concurrence retient les missions et l’attente est tracée (780.0084ms)
✔ LOT3-06 reap libère la place d’une mission terminée et la file avance (821.4109ms)
✔ LOT3-07 le graphe de tâches respecte les dépendances et l’ordre (783.0957ms)
✔ LOT3-08 une dépendance inexistante bloque la tâche au lieu de la laisser filer (707.2048ms)
✔ LOT3-09 une mission planifiée attend son heure, puis devient éligible (667.7731ms)
✔ LOT3-10 la récurrence quotidienne et hebdomadaire avance d’un pas, l’inconnue est refusée (1403.6578ms)
[SECURITY] requête refusée requestId=req_6fb2ba1a62b8 status=403 method=PUT path=/api/scheduler/settings playerId=usr_bee4acad671b ip=127.0.0.1
[astra] Astra City backend sur http://127.0.0.1:49308 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49308 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ LOT3-11 API : réglages réservés à l’administrateur, file et timeline lisibles (1709.4072ms)
[astra] Astra City backend sur http://127.0.0.1:49313 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49313 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ LOT3-12 POST /api/missions répond sans attendre la fin du pipeline (1810.6626ms)
✔ LOT3-13 après close, aucune boucle de file ne touche la base (5002.8397ms)
✔ capability sensible : refus et événement serveur (279.6982ms)
✔ launch ticket à usage unique (294.0614ms)
✔ 01 capability ADMIN refusée (269.2427ms)
✔ 02 capability INFRA_WRITE refusée (263.1356ms)
✔ 03 capability FINANCE_EXECUTE refusée (0.294ms)
✔ 04 événement capability contient l’acteur (652.2093ms)
✔ 05 launch ticket valide (257.2699ms)
✔ 06 launch ticket one-shot (267.1052ms)
✔ 07 launch ticket cross-user refusé (258.3302ms)
✔ 08 launch ticket expiré refusé (268.572ms)
✔ 09 rate limit déclenche un événement (271.1523ms)
✔ 10 utilisateur public ne contient pas le hash (0.5201ms)
✔ 11 hasRole ne promeut jamais un payload inconnu (0.2119ms)
✔ 12 rôle client non utilisé par publicUser (0.1424ms)
✔ 13 session inconnue refusée (269.5221ms)
✔ 14 session logout révoque le token (471.6227ms)
✔ 15 event security ne stocke pas le token (344.8832ms)
✔ 16 event permission denied est journalisé (332.4519ms)
✔ 17 bootstrap SUPER_ADMIN initial contrôlé par secret (408.4656ms)
✔ 18 bootstrap replay refusé (388.7885ms)
✔ 19 bootstrap secret invalide refusé (275.3208ms)
✔ 20 inscription publique reste PLAYER (352.4867ms)
✔ 21 RBAC fail closed pour utilisateur absent ou rôle inconnu (0.5092ms)
✔ 22 bootstrap concurrent : exactement un succès (638.6903ms)
[SECURITY] requête refusée requestId=req_c0e0d1144992 status=403 method=GET path=/api/admin/security/events playerId=usr_8dbd2a9b00db ip=127.0.0.1
✔ HTTP réel en mémoire : PLAYER refuse les security events (12.3398ms)
✔ HTTP réel en mémoire : ADMIN accède aux security events (3.6938ms)
✔ HTTP réel en mémoire : token invalide refuse une route protégée (8.1827ms)
✔ IDOR agent cross-user refusé et réponse uniforme (50.5403ms)
✔ IDOR mission cross-user refusé (3.8128ms)
[astra] Astra City backend sur http://127.0.0.1:49288 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49288 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49333 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49333 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:49384 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49384 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ annulation d’une mission bloquée puis fermeture immédiate : pas d’écriture tardive, agent libéré (13184.6352ms)
[astra] Astra City backend sur http://127.0.0.1:63794 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63794 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ ordre de fermeture : le poll Velko en vol et la libération d’agent se terminent AVANT la fermeture de la base (11753.0764ms)
[astra] Astra City backend sur http://127.0.0.1:63790 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63790 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
[astra] Astra City backend sur http://127.0.0.1:63862 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63862 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ L1-01 migration 007 non destructive (651.2834ms)
✔ L1-02 registre idempotent, ajout de compétence sans code (1093.1347ms)
✔ L1-03 alias (1075.2ms)
✔ L1-04 normalisation des besoins de mission (1604.1075ms)
✔ L1-05 toute progression passe par un événement (même transaction) (1200.0287ms)
✔ L1-06 registre en ajout seul, contrainte previous + delta = new (1189.2397ms)
✔ L1-07 sans source ni preuve : aucune progression (1268.7867ms)
✔ L1-08 rendements décroissants et somme bornée (2778.0025ms)
✔ L1-09 plafond de contenu (1275.8145ms)
✔ L1-10 explication reconstruit exactement le score (1477.4267ms)
✔ L1-11 confiance selon le type de preuve, jamais abaissée par un gain (1677.9678ms)
✔ L1-12 score ≠ certification (1330.8674ms)
✔ L1-13 changer le runtime ne modifie ni score, ni confiance, ni événements (1681.928ms)
✖ L1-14 backfill déterministe, idempotent, non destructif, conforme à la table (1658.5007ms)
✔ L1-15 Mission Control inchangé : candidats identiques avant / après backfill (2093.4256ms)
✔ L1-16 seuils de niveau lus depuis les réglages (963.573ms)
[SECURITY] requête refusée requestId=req_d81ae3ab1e15 status=403 method=POST path=/api/admin/skills/import playerId=usr_d1e5cfdec380 ip=127.0.0.1
✔ L1-17 API : lecture, explication, import audité, pas d’écriture directe (1806.4929ms)
✖ C:\Astra\worktrees\public-beta-readiness\astra\test\skills.test.js (6.8597ms)
✔ Velko Gateway UNCONFIGURED ne démarre aucun poll (38.8592ms)
✔ Velko Gateway CONFIGURED poll et persiste les événements (30.1962ms)
✔ Velko Gateway ne lance jamais deux polls simultanés (92.5149ms)
✔ close pendant une requête draine le poll sans écrire après fermeture (31.0562ms)
✔ échec HTTP : le cycle suivant reste possible (30.8946ms)
[astra] Astra City backend sur http://127.0.0.1:49378 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49378 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ LOT2-01 migration 015 strictement additive : `agents` et `agent_runtimes` intacts (597.1171ms)
✔ LOT2-02 migration 015 rejouable deux fois sans effet de bord (278.7276ms)
✔ LOT2-03 découverte : un worker par modèle réellement listé, et rien d’autre (1175.8241ms)
✔ LOT2-04 découverte : une connexion morte ne laisse aucun worker en ligne (629.0098ms)
✔ LOT2-05 honnêteté : ce que le fournisseur ne publie pas reste inconnu, pas deviné (727.2219ms)
✔ LOT2-06 sélection : le bon worker pour le niveau demandé, avec la justification (744.1976ms)
✔ LOT2-07 honnêteté : aucun worker ne convient → refus motivé, jamais un choix par défaut (954.0643ms)
✔ LOT2-08 mémoire : un modèle plus grand que la RAM disponible est refusé, pas espéré (825.5593ms)
✔ LOT2-09 mémoire non mesurée : le worker reste sélectionnable, mais la garantie est absente (693.8418ms)
✔ LOT2-10 mode LOCAL_ONLY : le fournisseur distant est structurellement interdit (1117.2433ms)
✔ LOT2-11 outils et contexte exigés : un modèle qui ne sait pas est écarté avec son motif (680.8687ms)
✔ LOT2-12 réservation : la place est réellement occupée, puis libérée (741.5715ms)
✔ LOT2-13 réservation expirée : la place revient, sinon la capacité fuit (759.9169ms)
✔ LOT2-14 performance : les statistiques viennent des mesures, jamais de constantes (723.4223ms)
[SECURITY] requête refusée requestId=req_0fb5c9f05a39 status=403 method=POST path=/api/workers/wk_a1abe868c575/observe playerId=usr_5db39e30138b ip=127.0.0.1
[astra] Astra City backend sur http://127.0.0.1:49404 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49404 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ LOT2-26 les mesures du sélecteur ne se déclarent pas par l’API (2397.2049ms)
[SECURITY] requête refusée requestId=req_d7be83f8e725 status=403 method=POST path=/api/workers/select playerId=usr_cf6d7e6a20a0 ip=127.0.0.1
[astra] Astra City backend sur http://127.0.0.1:49420 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=49420 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ LOT2-27 réserver engage une capacité réelle : c’est une action d’administrateur (1879.1728ms)
[astra] Astra City backend sur http://127.0.0.1:63874 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63874 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ LOT2-28 la fenêtre de détention est bornée des deux côtés (2060.5668ms)
✔ LOT2-21 un appel réel alimente les statistiques du worker (1189.9929ms)
✔ LOT2-22 un appel en échec compte comme un échec, avec sa durée, sans jeton (834.9786ms)
✔ LOT2-23 un observateur en panne n’empêche pas l’agent de travailler (724.3416ms)
✔ LOT2-24 un appel sur une worker jamais découvert n’invente rien (775.4605ms)
✔ LOT2-25 observer ne change ni le routage ni la place réservée (658.2427ms)
✔ LOT2-15 le choix est guidé par la fiabilité et la latence mesurées (754.0883ms)
✔ LOT2-15b les mesures décident entre deux workers équivalents, et le choix suit les mesures (720.1244ms)
✔ LOT2-16 quota : épuisé, le sélecteur refuse même un worker parfait (635.9839ms)
✔ LOT2-17 le pool ne remplace pas `agent_runtimes` : les deux coexistent (924.2532ms)
[SECURITY] requête refusée requestId=req_cc398561b31e status=403 method=POST path=/api/workers/discover playerId=usr_ac32114cc677 ip=127.0.0.1
[SECURITY] requête refusée requestId=req_52427f045075 status=403 method=PUT path=/api/workers/settings playerId=usr_ac32114cc677 ip=127.0.0.1
[astra] Astra City backend sur http://127.0.0.1:63889 (espace de travail des agents : C:\Astra\worktrees\public-beta-readiness)
[SERVER] backend démarré env=development version=1.0.0 build=local port=63889 features=Trading,Marketplace,ExperimentalAgents,ModelTraining,AdvancedFinance,Vehicles,MobileIntegration,UserProviders
✔ LOT2-18 API : découverte, évaluation, sélection et refus, avec les bons droits (1392.4335ms)
✔ LOT2-19 API : le snapshot WebSocket porte le pool et les faits mesurés (1358.8906ms)
✔ LOT2-20 le lecteur de ressources échoue proprement quand la mesure est impossible (5.4844ms)
✔ trusted registration is idempotent and player updates use metres (1.4581ms)
✔ same-world and freshness gates fail closed (0.2475ms)
✔ transition ticket is session, destination and one-use bound (0.6019ms)
✔ expired and wrong-destination tickets are denied (0.261ms)
✔ old world instance is rejected and human roles are not authority (0.2027ms)
ℹ tests 325
ℹ suites 0
ℹ pass 301
ℹ fail 24
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 84454.4572

✖ failing tests:

test at astra\test\career.test.js:216:1
✖ L5-08 concurrence RÉELLE : deux processus acceptent le même poste, un seul emploi (6907.9055ms)
  SyntaxError: Unexpected end of JSON input
      at JSON.parse (<anonymous>)
      at ChildProcess.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/career.test.js:236:231)
      at ChildProcess.emit (node:events:509:28)
      at ChildProcess._handle.onexit (node:internal/child_process:295:12)

test at astra\test\cwd.test.js:46:1
✖ Practice et Exam : même résultat depuis la racine, depuis astra/ et depuis un répertoire étranger (200.1307ms)
  AssertionError [ERR_ASSERTION]: node:internal/modules/esm/load:193
      throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);
            ^
  
  Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
      at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:193:11)
      at defaultLoadSync (node:internal/modules/esm/load:146:3)
      at #loadAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:802:12)
      at #loadSync (node:internal/modules/esm/loader:834:53)
      at ModuleLoader.load (node:internal/modules/esm/loader:783:26)
      at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:494:31)
      at #getOrCreateModuleJobAfterResolve (node:internal/modules/esm/loader:560:36)
      at afterResolve (node:internal/modules/esm/loader:607:52)
      at ModuleLoader.getOrCreateModuleJob (node:internal/modules/esm/loader:613:12)
      at node:internal/modules/esm/loader:632:32 {
    code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME'
  }
  
  Node.js v24.19.0
  
  
  1 !== 0
  
      at file:///C:/Astra/worktrees/public-beta-readiness/astra/test/cwd.test.js:49:12
      at Array.map (<anonymous>)
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/cwd.test.js:47:57)
      at Test.runInAsyncScope (node:async_hooks:227:14)
      at Test.run (node:internal/test_runner/test:1382:25)
      at Test.start (node:internal/test_runner/test:1242:17)
      at startSubtestAfterBootstrap (node:internal/test_runner/harness:387:17) {
    generatedMessage: false,
    code: 'ERR_ASSERTION',
    actual: 1,
    expected: 0,
    operator: 'strictEqual',
    diff: 'simple'
  }

test at astra\test\decomposition.test.js:47:1
✖ synthetic complex decomposition executes children through the production lifecycle (15671.9004ms)
  Error: timeout: ASSIGNED
      at Timeout.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/decomposition.test.js:42:79)
      at listOnTimeout (node:internal/timers:635:17)
      at process.processTimers (node:internal/timers:571:7)

test at astra\test\education.test.js:99:1
✖ L2-03 validation stricte du manifeste et du contenu (données non fiables) (56.6696ms)
  Error: EPERM: operation not permitted, symlink 'C:\etc\hosts' -> 'C:\Users\jerom\AppData\Local\Temp\astra-edu-udt5oG\bad-lien\modules\m1\lesson.md'
      at Object.symlinkSync (node:fs:1938:11)
      at file:///C:/Astra/worktrees/public-beta-readiness/astra/test/education.test.js:106:76
      at bad (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/education.test.js:100:70)
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/education.test.js:106:3)
      at Test.runInAsyncScope (node:async_hooks:227:14)
      at Test.run (node:internal/test_runner/test:1382:25)
      at Test.processPendingSubtests (node:internal/test_runner/test:960:18)
      at Test.postRun (node:internal/test_runner/test:1522:19)
      at Test.run (node:internal/test_runner/test:1447:12)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    errno: -4048,
    code: 'EPERM',
    syscall: 'symlink',
    path: 'C:\\etc\\hosts',
    dest: 'C:\\Users\\jerom\\AppData\\Local\\Temp\\astra-edu-udt5oG\\bad-lien\\modules\\m1\\lesson.md'
  }

test at astra\test\grading-timeout.test.js:172:1
✖ C-06 crash réel (SIGKILL) pendant la notation Practice : reprise, une seule évaluation, une seule progression (1504.3862ms)
  AssertionError [ERR_ASSERTION]: interrompue pendant la notation
  + actual - expected
  
  + 'SUBMITTED'
  - 'EVALUATING'
  
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/grading-timeout.test.js:191:10)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    generatedMessage: false,
    code: 'ERR_ASSERTION',
    actual: 'SUBMITTED',
    expected: 'EVALUATING',
    operator: 'strictEqual',
    diff: 'simple'
  }

test at astra\test\grading-timeout.test.js:22:1
✖ C:\Astra\worktrees\public-beta-readiness\astra\test\grading-timeout.test.js (3.9514ms)
  Error: EPERM, Permission denied: \\?\C:\Users\jerom\AppData\Local\Temp\astra-grading-yxBHS8 '\\?\C:\Users\jerom\AppData\Local\Temp\astra-grading-yxBHS8'
      at Object.rmSync (node:fs:1283:18)
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/grading-timeout.test.js:22:16)
      at TestHook.runInAsyncScope (node:async_hooks:227:14)
      at TestHook.run (node:internal/test_runner/test:1382:25)
      at TestHook.run (node:internal/test_runner/test:1726:18)
      at TestHook.run (node:internal/util:581:20)
      at Test.runHook (node:internal/test_runner/test:1269:20)
      at after (node:internal/test_runner/test:1322:20)
      at Test.run (node:internal/test_runner/test:1408:13)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
    errno: 1,
    code: 'EPERM',
    path: '\\\\?\\C:\\Users\\jerom\\AppData\\Local\\Temp\\astra-grading-yxBHS8',
    syscall: 'rm'
  }

test at astra\test\infra.test.js:254:1
✖ service : découverte réelle de la machine locale (349.7796ms)
  AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
  + actual - expected
  
  + undefined
  - 'ONLINE'
  
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:260:12)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    generatedMessage: true,
    code: 'ERR_ASSERTION',
    actual: undefined,
    expected: 'ONLINE',
    operator: 'strictEqual',
    diff: 'simple'
  }

test at astra\test\infra.test.js:336:1
✖ service : l'arborescence destinée à Unreal est cohérente (407.4086ms)
  AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
  
  0 !== 1
  
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:346:12)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    generatedMessage: true,
    code: 'ERR_ASSERTION',
    actual: 0,
    expected: 1,
    operator: 'strictEqual',
    diff: 'simple'
  }

test at astra\test\infra.test.js:355:1
✖ datacenter : le snapshot ne mélange pas les machines de deux comptes (638.4601ms)
  AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
  + actual - expected
  
  + []
  - [
  -   'infra://astra/server-room/row-a/rack-a02/player-node'
  - ]
  
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:370:12)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    generatedMessage: true,
    code: 'ERR_ASSERTION',
    actual: [],
    expected: [ 'infra://astra/server-room/row-a/rack-a02/player-node' ],
    operator: 'deepStrictEqual',
    diff: 'simple'
  }

test at astra\test\infra.test.js:378:1
✖ service : les événements sont émis pour les changements réels (484.3529ms)
  AssertionError [ERR_ASSERTION]: infra.connection_registered
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:386:12)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    generatedMessage: false,
    code: 'ERR_ASSERTION',
    actual: false,
    expected: true,
    operator: '==',
    diff: 'simple'
  }

test at astra\test\infra.test.js:392:1
✖ seuils : une métrique jamais lue reste NON MESURÉE, jamais saine (438.1792ms)
  Error: Hôte introuvable.
      at Object.declareThreshold (file:///C:/Astra/worktrees/public-beta-readiness/astra/src/infra/inventory.js:801:21)
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:400:13)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    status: 404
  }

test at astra\test\infra.test.js:410:1
✖ seuils : franchir puis rejoindre les bornes ouvre et referme un incident unique (791.8746ms)
  Error: Hôte introuvable.
      at Object.telemetry (file:///C:/Astra/worktrees/public-beta-readiness/astra/src/infra/inventory.js:764:21)
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:415:33)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    status: 404
  }

test at astra\test\infra.test.js:438:1
✖ seuils : un avertissement qui devient critique est suivi, pas planté (427.5663ms)
  Error: Hôte introuvable.
      at Object.telemetry (file:///C:/Astra/worktrees/public-beta-readiness/astra/src/infra/inventory.js:764:21)
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:443:26)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    status: 404
  }

test at astra\test\infra.test.js:464:1
✖ seuils : deux métriques hors bornes = deux incidents, pas un seul partagé (474.7082ms)
  Error: Hôte introuvable.
      at Object.telemetry (file:///C:/Astra/worktrees/public-beta-readiness/astra/src/infra/inventory.js:764:21)
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:469:23)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    status: 404
  }

test at astra\test\infra.test.js:489:1
✖ seuils : un seuil de composant n'emprunte pas la mesure de l'hôte (425.1252ms)
  Error: Hôte introuvable.
      at Object.components (file:///C:/Astra/worktrees/public-beta-readiness/astra/src/infra/inventory.js:743:21)
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:494:26)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    status: 404
  }

test at astra\test\infra.test.js:514:1
✖ collecte périodique : la source est sondée, et sa cadence est réellement respectée (520.0024ms)
  AssertionError [ERR_ASSERTION]: la machine locale répond
  
  'FAILED' !== 'OK'
  
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:529:12)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    generatedMessage: false,
    code: 'ERR_ASSERTION',
    actual: 'FAILED',
    expected: 'OK',
    operator: 'strictEqual',
    diff: 'simple'
  }

test at astra\test\infra.test.js:603:1
✖ émissions : la puissance nominale n'est jamais comptée comme une consommation (410.2855ms)
  Error: Hôte introuvable.
      at Object.components (file:///C:/Astra/worktrees/public-beta-readiness/astra/src/infra/inventory.js:743:21)
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:611:30)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    status: 404
  }

test at astra\test\infra.test.js:626:1
✖ émissions : le facteur réseau, s'il est déclaré, s'applique aux watts mesurés (372.0771ms)
  TypeError: Provided value cannot be bound to SQLite parameter 1.
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:632:8)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    code: 'ERR_INVALID_ARG_TYPE'
  }

test at astra\test\infra.test.js:646:1
✖ seuils : retirer un seuil emporte l'incident qu'il avait ouvert (487.9598ms)
  Error: Hôte introuvable.
      at Object.telemetry (file:///C:/Astra/worktrees/public-beta-readiness/astra/src/infra/inventory.js:764:21)
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:651:26)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    status: 404
  }

test at astra\test\infra.test.js:663:1
✖ seuils : un seuil ne peut pas viser le composant d'un autre hôte (1030.9401ms)
  Error: Hôte introuvable.
      at Object.components (file:///C:/Astra/worktrees/public-beta-readiness/astra/src/infra/inventory.js:743:21)
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:669:27)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    status: 404
  }

test at astra\test\infra.test.js:685:1
✖ seuils : un joueur ne pose pas de seuil, et un seuil incohérent est refusé (400.9631ms)
  AssertionError [ERR_ASSERTION]: un seuil sans borne est refusé
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:694:12)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    generatedMessage: false,
    code: 'ERR_ASSERTION',
    actual: Error: Hôte introuvable.
        at Object.declareThreshold (file:///C:/Astra/worktrees/public-beta-readiness/astra/src/infra/inventory.js:801:21)
        at assert.throws.h.infra.declareThreshold.metric (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:694:33)
        at getActual (node:assert:611:5)
        at strict.throws (node:assert:759:24)
        at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:694:12)
        at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
        at async Test.run (node:internal/test_runner/test:1389:7)
        at async Test.processPendingSubtests (node:internal/test_runner/test:960:7),
    operator: 'throws',
    diff: 'simple'
  }

test at astra\test\infra.test.js:733:1
✖ intégration : la machine réelle expose un inventaire non vide et sourcé (32.5843ms)
  AssertionError [ERR_ASSERTION]: Plateforme non supportée : win32
  
  false !== true
  
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/infra.test.js:737:10)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
      at async Test.run (node:internal/test_runner/test:1389:7)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    generatedMessage: false,
    code: 'ERR_ASSERTION',
    actual: false,
    expected: true,
    operator: 'strictEqual',
    diff: 'simple'
  }

test at astra\test\skills.test.js:245:1
✖ L1-14 backfill déterministe, idempotent, non destructif, conforme à la table (1658.5007ms)
  AssertionError [ERR_ASSERTION]: Expected values to be strictly deep-equal:
  + actual - expected
  
    [
      'AI Engineer',
  -   'ASTRA-BUILDER',
      'Backend Engineer',
      'Chief Orchestrator',
      'Data Analyst',
      'DevOps Engineer',
      'Documentation Agent',
  
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/skills.test.js:279:10)
      at Test.runInAsyncScope (node:async_hooks:227:14)
      at Test.run (node:internal/test_runner/test:1382:25)
      at async Test.processPendingSubtests (node:internal/test_runner/test:960:7) {
    generatedMessage: true,
    code: 'ERR_ASSERTION',
    actual: [ 'AI Engineer', 'Backend Engineer', 'Chief Orchestrator', 'Data Analyst', 'DevOps Engineer', 'Documentation Agent', 'Frontend Engineer', 'Fullstack Engineer', 'Incident Commander', 'Market Data Analyst', 'Mission Planner', 'Professor Software Engineering', 'QA Coordinator', 'QA Engineer', 'SRE', 'Security Analyst', 'Senior Backend Engineer', 'Unreal Engineer', 'Web Researcher' ],
    expected: [ 'AI Engineer', 'ASTRA-BUILDER', 'Backend Engineer', 'Chief Orchestrator', 'Data Analyst', 'DevOps Engineer', 'Documentation Agent', 'Frontend Engineer', 'Fullstack Engineer', 'Incident Commander', 'Market Data Analyst', 'Mission Planner', 'Professor Software Engineering', 'QA Coordinator', 'QA Engineer', 'SRE', 'Security Analyst', 'Senior Backend Engineer', 'Unreal Engineer', 'Web Researcher' ],
    operator: 'deepStrictEqual',
    diff: 'simple'
  }

test at astra\test\skills.test.js:358:1
✖ C:\Astra\worktrees\public-beta-readiness\astra\test\skills.test.js (6.8597ms)
  Error: EPERM, Permission denied: \\?\C:\Users\jerom\AppData\Local\Temp\astra-skills-BxFG5k '\\?\C:\Users\jerom\AppData\Local\Temp\astra-skills-BxFG5k'
      at Object.rmSync (node:fs:1283:18)
      at TestContext.<anonymous> (file:///C:/Astra/worktrees/public-beta-readiness/astra/test/skills.test.js:358:16)
      at TestHook.runInAsyncScope (node:async_hooks:227:14)
      at TestHook.run (node:internal/test_runner/test:1382:25)
      at TestHook.run (node:internal/test_runner/test:1726:18)
      at TestHook.run (node:internal/util:581:20)
      at Test.runHook (node:internal/test_runner/test:1269:20)
      at after (node:internal/test_runner/test:1322:20)
      at Test.run (node:internal/test_runner/test:1408:13)
      at process.processTicksAndRejections (node:internal/process/task_queues:104:5) {
    errno: 1,
    code: 'EPERM',
    path: '\\\\?\\C:\\Users\\jerom\\AppData\\Local\\Temp\\astra-skills-BxFG5k',
    syscall: 'rm'
  }
