3.5.3202606)
Améliorations internes
core/log : ajout de la forme de macro haply_* au formatage différé (cf7dbfc), clôture du ticket n° 271core : ajout de primitives de pivot et de composition/inversion de transformation (01080f6), clôture du ticket n° 283périphériques : mise en cache de l'orientation du corps 0xE4 et routage de trigger_mode (#265) (4864700)périphériques : compensation côté service du repère du capteur IMU 0xE4 (#286) (e6d877c), clôture de tapi-prototype-firmware#87dispositifs : mise à jour de body_orientation lors de l'étalonnage de l'inkwell (#268) (89b190b), clôture des tickets #286 #286 #286appareils : séparation de l'orientation du corps en temps réel (0x0C) et de référence (0xE4) (#286 #315) (638487a), clôture des tickets #268 #266 #268http : alignement des réponses de protocole non prises en charge sur 422 (e0e7638), clôture des tickets #293, #293 et #295http : migration des « échos de transformation » et des entrées SDF vers des modifications compatibles avec Euler (#279, #280, #291) (bb29404)http : réinitialisation du montage de l'appareil sur « Delete scope=device » (#265) (f6bf26b), clôture du ticket #286modules::navigation : ajout du mode « embrayage » sur le verrouillage de déplacement (conditionnel, désactivé par défaut) (4b69eed), clôture des tickets #308 #308 #283 #308modules::navigation : entrées de boutons avec `prevent_default` ; `force_scale` pour l'embrayage ; navigation par maintien pour la bulle (fb216aa), clôture des tickets n° 317, 318, 316, 317 et 318modules::navigation : plafonds max_motion/force_scale de l'embrayage (a946088), clôture du ticket n° 316modules::navigation : commutateurs permettant de désactiver les fonctionnalités en miroir, tous deux activés par défaut (b6ee0c0), fermeture du ticket n° 318modules::navigation : modification des paramètres par entrée dans inputs[] ; la bulle émet status.engaged (ba2058f), clôture le ticket n° 318protocole : découpage du fichier de capacités, porte d'amortissement, remontée de la base (30d7d5d), fermeture du ticket n° 293protocole : table des capacités + émetteur unique de non-prise-en-charge (289382e), clôture des tickets n° 293 et 295protocole : mise en place de home_return + pen_attached via la table (8a05d20), clôture du ticket 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 préhension dans les passes de session v3.1 (7b93e35), clôture du ticket n° 316sérialisation : émission d'Euler concernant les rotations de `config.mount` sous `euler.output` (#268) (f6b54a2)sérialisation : émission d'Euler sur les rotations de transform sous euler.output (96c6cc9), clôture du ticket n° 283sérialisation : affichage du zoom autour du pivot de l'espace de travail sur set_transform (#309) (c1d08fc), clôture du ticket #280sérialisation : aplatissement de trigger_mode pour config/body_orientation (#265) (8781b8a), clôture le ticket #268sérialisation : promotion des paramètres de transformation dans `serial_options` par session (#280) (03b2fd6)sérialisation : séparation de config/mount en portée + body_orientation (#265) (5618839), clôture #280sérialisation : transmission des options de session via les sorties et mise en forme de la restructuration imbriquée (#279, #280) (59984ce), clôture du ticket #265sérialisation : unification du décodage de « configure » pour WS et HTTP (#280) (6076917)sessions : ajout d'un mécanisme générique de verrouillage de mouvement avec précalcul au moment du désengagement (c8d2a93), clôture du ticket n° 304sessions : ajout de live_motion, progression du verrou de mouvement à chaque tick (conditionnel) (d29013c), clôture des tickets #308, #304 et #308sessions : ajout d'observateurs de session au niveau du gestionnaire avec transmission dans la boucle principale (83e76ef), clôture du ticket n° 284sessions : ajout de la réaffectation du montage et du zoom de l'espace de travail autour du pivot (294d6e8), clôture des tickets #265, 297, #272 et #304sessions : ajout d'une plage d'événements « config.body_orientation » à l'espace de noms ; avertissement concernant l'entrée héritée « values » (3f70047), clôture du ticket n° 320sessions : ajout de la source d'aperçu « config/mount » et du routage des déclencheurs (#265) (5d11dbf), fermeture du ticket #268sessions : stockage/chargement du montage de l'appareil dans l'espace de montage (#265) (4cec178), fermeture de #292sessions : généralisation de `set_workspace_transform_around` avec retour du pivot (0b242a2), clôture du ticket n° 309sessions : masque du bouton de préhension + mécanismes de superposition force_scale (836ef2f), clôture du ticket n° 316sessions : attribution du profil client (72a8f34) aux graphiques de session de Tracy, clôture du ticket n° 258sessions : routage de la plage de montage + espaces de stockage virtuels (#265) (9a4e7f4), clôture post-#286 #293sessions : atténuation de la force_scale par session (aperçu) (bff66ad)Corrections de bogues
ci : épinglage de la chaîne d'outils de publication pour rétablir les journaux des modifications (72c6773), ticket n° 313 clôturécorrectif de compilation pour la nouvelle version de Glaze (e2c53d3)dépendances : mise à jour du crate Rust « nix » vers la version 0.31 (b3b9a84)périphériques : conditionnement du protocole de configuration de sécurité au niveau du goulot d'étranglement de l'envoi (b8e8401), fermeture du ticket n° 295appareils : protection des modifications apportées aux paramètres de sécurité en fonction de la version du micrologiciel et de l'étalonnage (5ad5128), clôture du ticket n° 295dispositifs : maintien de la connexion filaire de l'inverse3 pendant la fenêtre de stabilisation du réveil (4afed45)dispositifs : maintien de la connexion filaire de l'inverse3 pendant la fenêtre de stabilisation du réveil (79c2b66)appareils : suppression de la notification de batterie [secure] sur les poignées Verse filaires (ea54a1a), clôture du ticket n° 314http : vérification de l'étalonnage pour les écritures de sécurité au niveau de la session (89f9cd7), clôture des tickets n° 295 et n° 293http : intégration des rotations d'Euler aux conventions de session (#288) (97cf203)inverse_ux : limitation du traitement de calibration_notifier à Minverse (418913f)nettoyage de la durée de vie pour éviter les plantages (e7b3785)modules::inverse-ux : envoi systématique d'un message « calibration-failed » lorsque le micrologiciel se bloque (3841d06)modules::inverse-ux : nouvel appairage après le remplacement d'un appareil appairé (cf85707), clôture le ticket n° 278modules::sdf : intégration de la transformation d'Euler SDF aux conventions de session (#291) (9741ac6)modules::sdf : orientation des formes SDF dans le repère de coordonnées du client (c29e4f2), fermeture du ticket n° 276protocole : suppression des conditions de concurrence sur la 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 de série à l'ouverture du port afin d'identifier les appareils remplacés à chaud (b8724d9)protocole : protection des rappels client du micrologiciel contre les conditions de concurrence lors de la mise au rebut des appareils (3d795bb), clôture du ticket n° 303protocole : réécriture de l'API d'orientation IMU 0xE4 avec énumération typée et format de transmission correct (8733ec0)Retour à la page d'accueil pour activer et désactiver la fonction « inverse3x » via le hub BIA (f435454)service : répartition adaptative désactivée par défaut (9415638)service : arrêt du service ordonné, limité et sans conditions de concurrence (ff888d7), dossier n° 303sessions : centrage des préréglages *_centré* sur le centre réellement accessible (ad6e726), clôture n° 321sessions : abandon de la mise à jour automatique de la limite de l'espace de travail SIGGRAPH lors d'un changement de montage (2df1654)sessions : ignorer la fermeture forcée de la session lors de la fermeture d'un appareil encore piloté par une session active (e1f9ff7), clôture du ticket n° 324sessions : empêcher la fonction start() d'effacer les options de série négociées lors de la connexion (#290) (27e27d8)sessions : réinitialisation de la vitesse de transformation de l'espace de travail après l'appel à `set_transform` (133c3ad), clôture du ticket n° 280websocket : décodage des commandes selon les conventions de la session émettrice (#289) (1b24049), clôture le ticket #265Améliorations des performances
core/log : adaptation des macros haply_* afin que fmt::format soit ignoré lorsqu'elles sont désactivées (672a87a), clôture du ticket n° 270modules::sdf : pré-calcul du SDF une seule fois lors de la création plutôt qu'à chaque tick (15350c5), clôture du ticket n° 277