3.5.3202606)
Améliorations internes
core/log : ajout de la forme de macro « deferred-format » haply_* (cf7dbfc), clôture du ticket n° 271core : ajout des primitives « pivot » et « compose/inverse transform » (01080f6), clôture du ticket n° 283périphériques : mise en cache de l'orientation du corps à l'adresse 0xE4 et du mode de déclenchement de l'itinéraire (#265) (4864700)périphériques : compensation du référentiel du capteur IMU 0xE4 côté service (#286) (e6d877c), clôture de tapi-prototype-firmware#87dispositifs : mise à jour de body_orientation lors de l'étalonnage de l'encrier (#268) (89b190b), clôture des tickets #286 #286 #286appareils : distinction entre l'orientation en temps réel (0x0C) et l'orientation de référence (0xE4) du corps (#286 #315) (638487a), clôture des tickets #268 #266 #268http : alignement des réponses de protocole non pris en charge sur 422 (e0e7638), clôture des tickets #293 #293 #295http : migration des entrées « echoes » et « sdf » vers des patchs compatibles avec Euler (#279, #280, #291) (bb29404)http : réinitialisation du montage du périphérique lors de la suppression scope=device (#265) (f6bf26b), clôture du ticket #286modules::navigation : ajout d'un mode « clutch » sur le verrouillage de mouvement (activable, désactivé par défaut) (4b69eed), clôture les tickets #308 #308 #283 #308modules::navigation : boutons avec « prevent_default » ; « clutch » avec « force_scale » ; bulle « maintenir pour naviguer » (fb216aa), clôture les tickets n° 317, 318, 316, 317 et 318modules::navigation : limites maximales de mouvement et d'échelle de force de l'embrayage (a946088), clôture du ticket n° 316modules::navigation : commutateurs d'arrêt des fonctionnalités en miroir, tous deux activés par défaut (b6ee0c0), clôture du ticket n° 318modules::navigation : correctifs des paramètres par entrée sur inputs[] ; la bulle émet l'événement status.engaged (ba2058f), clôture le ticket n° 318protocole : fractionnement du fichier de capacités, porte d'amortissement, treuil de base (30d7d5d), clôture du ticket n° 293protocole : table des capacités + un seul émetteur non pris en charge (289382e), clôture des tickets n° 293 et n° 295protocole : porte « home_return » + « pen_attached » via la table (8a05d20), clôture n° 293protocole : introduction de fw_version et migration des vérifications de version (38c2cae), clôture du ticket n° 293sérialisation : application du masque du bouton de prise dans les passes de session de la v3.1 (7b93e35), clôture du ticket n° 316sérialisation : émettre des données Euler lors des rotations de config.mount sous euler.output (#268) (f6b54a2)sérialisation : émettre les coordonnées d'Euler lors des rotations de transformation sous euler.output (96c6cc9), clôture le ticket n° 283sérialisation : exposition du zoom autour du pivot de l'espace de travail lors de l'appel de `set_transform` (#309) (c1d08fc), résout le ticket #280sérialisation : aplatissement de config/body_orientation trigger_mode (#265) (8781b8a), clôture le ticket #268sérialisation : transformer les curseurs en options de sérialisation par session (#280) (03b2fd6)sérialisation : division de « config/mount » en « scope » et « body_orientation » (#265) (5618839), clôture le ticket #280sérialisation : options de session de thread via les sorties et limitation du reshape imbriqué (#279, #280) (59984ce), clôture le ticket #265sérialisation : harmonisation de WS et HTTP, configuration du décodage (#280) (6076917)sessions : ajout d'un mécanisme générique de verrouillage de mouvement avec option de désactivation (c8d2a93), clôture du ticket n° 304sessions : ajout de l'avancement « motion-lock » par tick avec LiveMotion (gated) (d29013c), clôture des tickets #308, #304 et #308sessions : ajout d'observateurs de session au niveau du gestionnaire avec diffusion dans la boucle principale (83e76ef), clôture du ticket n° 284sessions : ajout des fonctions « mount reparent » et « workspace zoom-about-pivot » (294d6e8), clôture des tickets #265, 297, #272 et #304sessions : ajout d'une portée d'événement « config.body_orientation » avec espace de noms ; avertissement en cas de saisie de « valeurs » obsolètes (3f70047), clôture du ticket n° 320sessions : ajout d'un aperçu de la configuration/montage de la source + déclenchement du routage (#265) (5d11dbf), clôture du ticket #268sessions : montage et chargement/déchargement du périphérique dans l'espace de montage (#265) (4cec178), clôture du ticket #292sessions : généralisation de la fonction `set_workspace_transform_around` avec écho du pivot (0b242a2), clôture du ticket n° 309sessions : mécanismes de superposition « grip button mask » + « force_scale » (836ef2f), clôture du ticket n° 316sessions : ajouter une étiquette « Tracy » aux graphiques de session avec le profil client (72a8f34), clôture le ticket n° 258sessions : routage au niveau du montage + instances de stockage virtuelles (#265) (9a4e7f4), clôture des tickets post-#286 et #293sessions : atténuation « force_scale » par session (aperçu) (bff66ad)Corrections de bugs
ci : chaîne d'outils de publication des pins pour restaurer les journaux de modifications (72c6773), clôture le ticket n° 313Correction de la compilation avec le nouveau « glaze » (e2c53d3)dépendances : mise à jour du crate « rust » de Nix vers la version 0.31 (b3b9a84)périphériques : contrôler le protocole « safety-config » au point d'étranglement d'envoi (b8e8401), clôture du ticket n° 295appareils : la configuration de sécurité « guard » enregistre la version du micrologiciel et les paramètres d'étalonnage (5ad5128), clôture le ticket n° 295périphériques : maintenir la ligne inverse3 active pendant la fenêtre de stabilisation au réveil (4afed45)périphériques : maintenir la ligne inverse3 active pendant la fenêtre de stabilisation au réveil (79c2b66)appareils : suppression de la notification [sécurisée] relative à la batterie sur les poignées Verse filaires (ea54a1a), clôture du ticket n° 314http : vérification de l'étalonnage lors des écritures de sécurité dans le cadre d'une session (89f9cd7), clôture des tickets n° 295 et n° 293http : regroupement des rotations d'Euler selon les conventions de session (#288) (97cf203)inverse_ux : limiter le traitement de calibration_notifier à Minverse (418913f)Nettoyage des durées de vie pour éviter les plantages (e7b3785)modules::inverse-ux : toujours générer un message « calibration-failed » lorsque le micrologiciel se bloque (3841d06)modules::inverse-ux : réappairage après permutation d'un appareil appairé (cf85707), clôture le ticket n° 278modules::sdf : appliquer la transformation d'Euler à sdf conformément aux conventions de la session (#291) (9741ac6)modules::sdf : orientation des formes SDF dans le repère de coordonnées du client (c29e4f2), clôture du ticket n° 276protocole : suppression des conflits de durée de vie des temporisateurs qui provoquent le plantage ou le blocage du service (0cb019b), clôture du ticket n° 303protocole : vidage des tampons série à l'ouverture du port pour détecter les périphériques remplacés à chaud (b8724d9)protocole : protection des callbacks du client du micrologiciel contre les conflits d'accès liés à la destruction de l'appareil (3d795bb), clôture du ticket n° 303protocole : réécriture de l'API d'orientation IMU 0xE4 avec une énumération typée et un format de transmission correct (8733ec0)Retour à la page d'accueil pour l'activation/la désactivation du concentrateur BIA dans inverse3x (f435454)service : répartition adaptative désactivée par défaut (9415638)service : rendre la fermeture du service ordonnée, bornée et sans conflit de concurrence (ff888d7), clôture le ticket n° 303sessions : centre *_centré* préréglages sur le centre réel accessible (ad6e726), clôture du ticket n° 321sessions : suppression de la mise à jour automatique des limites de l'espace de travail Siggraph lors d'un changement de montage (2df1654)sessions : ne pas forcer la coupure d'alimentation lors de la fermeture d'une session pour un périphérique encore utilisé par une session active (e1f9ff7), clôture le ticket n° 324sessions : arrêt de la fonction start() qui efface les options série négociées lors de la connexion (#290) (27e27d8)sessions : vitesse de transformation de l'espace de travail nulle après l'appel de `set_transform` (133c3ad), résout le ticket n° 280websocket : décodage des commandes selon les conventions de la session de l'expéditeur (#289) (1b24049), clôture le ticket #265Amélioration des performances
core/log : suppression des macros « gate haply_* » afin que fmt::format soit ignoré lorsqu'il est désactivé (672a87a), clôture le ticket n° 270modules::sdf : calculer le SDF une seule fois lors de la création au lieu de le faire à chaque tick (15350c5), résout le ticket n° 277