3.5.3 (06.08.2026)
Interne Verbesserungen
core/log: Hinzufügen der Makroform „ haply_*“ mit verzögerter Formatierung (cf7dbfc), schließt #271Kern: Hinzufügen von Primitiven für Drehpunkte sowie für die Zusammensetzung und Umkehrung von Transformationen (01080f6), schließt #283Geräte: Zwischenspeicherung der Körperausrichtung 0xE4 und Weiterleitung von „trigger_mode“ (#265) (4864700)Geräte: Kompensation der IMU-Sensor-Referenz auf der Serviceseite 0xE4 (#286) (e6d877c), schließt „tapi-prototype-firmware#87“ abGeräte: Aktualisierung von „body_orientation“ bei der Kalibrierung des Inkwell (#268) (89b190b), schließt #286 #286 #286Geräte: Trennung der Live-Körperausrichtung (0x0C) und der Referenzausrichtung (0xE4) (#286 #315) (638487a), schließt #268 #266 #268 abhttp: Anpassung der Antworten für nicht unterstützte Protokolle auf 422 (e0e7638), schließt #293 #293 #295http: Migration der Transformations-Echos und der SDF-Einträge zu Euler-kompatiblen Änderungen (#279, #280, #291) (bb29404)http: Zurücksetzen der Gerätemontage auf „Delete scope=device“ (#265) (f6bf26b), schließt #286modules::navigation: Hinzufügen des Kupplungsmodus zur Bewegungssperre (bedingt, standardmäßig deaktiviert) (4b69eed), schließt #308 #308 #283 #308Module::Navigation: Schaltflächen-Einträge mit „prevent_default“; „force_scale“ für die Kupplung; Navigation durch Halten für die Blase (fb216aa), geschlossen #317 #318 #316 #317 #318module::navigation: Höchstwerte für Bewegung/Kraft der Kupplung (a946088), schließt #316modules::navigation: Schalter zum Deaktivieren der Spiegelungsfunktionen, beide standardmäßig aktiviert (b6ee0c0), #318 geschlossenmodules::navigation: Parameteränderungen über Eingaben in inputs[]; die Blase gibt den Status „engaged“ aus (ba2058f), schließt #318Protokoll: Aufteilung der Kapazitätsdatei, Dämpfungsport, Anhebung der Basis (30d7d5d), geschlossen #293Protokoll: Kapazitätstabelle + einzelner Sender für Nichtübernahme (289382e), schließt #293 und #295 abProtokoll: Konditionierung von „home_return“ + „pen_attached“ über die Tabelle (8a05d20), schließt #293Protokoll: Einführung von „fw_version“ und Umstellung der Versionsprüfungen (38c2cae), schließt #293Serialisierung: Anwendung der Drag-Handle-Maske in den Session-Durchläufen v3.1 (7b93e35), schließt #316Serialisierung: Euler-Ausgabe zu den Rotationen von „config.mount“ unter „euler.output“ (#268) (f6b54a2)Serialisierung: Euler-Ausgabe zu den Rotationen von „transform“ unter „euler.output“ (96c6cc9), schließt #283 abSerialisierung: Zoom-Darstellung um den Drehpunkt des Arbeitsbereichs auf set_transform (#309) (c1d08fc), schließt #280 abSerialisierung: Vereinfachung von „trigger_mode“ für „config/body_orientation“ (#265) (8781b8a), schließt #268Serialisierung: Übertragung der Transformations-Einstellungen in „serial_options“ pro Sitzung (#280) (03b2fd6)Serialisierung: Aufteilung von „config/mount“ in „Reichweite“ und „body_orientation“ (#265) (5618839), schließt #280Serialisierung: Weiterleitung von Sitzungsoptionen über Ausgänge und Aufbereitung der verschachtelten Neugestaltung (#279, #280) (59984ce), schließt #265 abSerialisierung: Vereinheitlichung der Dekodierung von „configure“ für WS und HTTP (#280) (6076917)Sessions: Hinzufügen eines generischen Mechanismus zur Bewegungssperre mit Vorberechnung beim Lösen (c8d2a93), #304 abgeschlossenSitzungen: Hinzufügen von „live_motion“, Weiterentwicklung der Bewegungssperre bei jedem Tick (bedingt) (d29013c), #308, #304, #308 geschlossenSitzungen: Hinzufügen von Sitzungsbeobachtern auf Verwaltungsebene mit Übergabe an die Hauptschleife (83e76ef), #284 geschlossenSitzungen: Hinzufügen der Neuzuweisung der Ansicht und des Zooms des Arbeitsbereichs um den Drehpunkt herum (294d6e8), geschlossen: #265, 297, #272, #304Sitzungen: Hinzufügen eines Ereignisbereichs „config.body_orientation“ zum Namensraum; Warnung bezüglich des veralteten Eintrags „values“ (3f70047), schließt #320Sitzungen: Hinzufügen der Vorschauquelle „config/mount“ und der Trigger-Weiterleitung (#265) (5d11dbf), #268 geschlossenSitzungen: Speichern/Laden der Geräteeinrichtung im Einrichtungsbereich (#265) (4cec178), abgeschlossen #292Sitzungen: Verallgemeinerung von `set_workspace_transform_around` mit Ausgabe des Drehpunkts (0b242a2), #309 geschlossenSitzungen: Maskierung des Ziehpunktes + Überlagerungsmechanismen „force_scale“ (836ef2f), schließt #316Sitzungen: Kennzeichnung der Sitzungsdiagramme von Tracy mit dem Kundenprofil (72a8f34), #258 geschlossenSitzungen: Routing des Einbaubereichs + virtuelle Speicherplätze (#265) (9a4e7f4), schließt an #286 und #293 anSitzungen: Dämpfung der Kraftskala pro Sitzung (Vorschau) (bff66ad)Fehlerbehebungen
ci: Fixierung der Veröffentlichungskette zur Wiederherstellung der Änderungsprotokolle (72c6773), #313 geschlossenKorrektur des Kompilierungsproblems mit der neuen Version von Glaze (e2c53d3)deps: Aktualisierung des Rust-Nix-Crates auf Version 0.31 (b3b9a84)Geräte: Anpassung des Sicherheitskonfigurationsprotokolls am Engpasspunkt der Übertragung (b8e8401), #295 geschlossenGeräte: Schutz der Sicherheitskonfigurationsdaten je nach Firmware-Version und Kalibrierung (5ad5128), #295 geschlossenGeräte: Aufrechterhaltung der kabelgebundenen Verbindung von „inverse3“ während des Stabilisierungsfensters des Weckvorgangs (4afed45)Geräte: Aufrechterhaltung der kabelgebundenen Verbindung von „inverse3“ während des Stabilisierungsfensters beim Aufwachen (79c2b66)Geräte: Unterdrückung der Akku-Benachrichtigung [secure] bei kabelgebundenen Verse-Griffen (ea54a1a), schließt #314http: Überprüfung der Kalibrierung für sicherheitsrelevante Einträge auf Sitzungsebene (89f9cd7), #295 und #293 geschlossenhttp: Einbindung der Euler-Rotationen in die Sitzungskonventionen (#288) (97cf203)inverse_ux: Beschränkung der Verarbeitung von „calibration_notifier“ auf Minverse (418913f)Bereinigung der Lebensdauer, um Abstürze zu vermeiden (e7b3785)modules::inverse-ux: Systematische Ausgabe von „calibration-failed“, wenn die Firmware abstürzt (3841d06)modules::inverse-ux: Neues Pairing nach dem Austausch eines gepaarten Geräts (cf85707), #278 geschlossenmodules::sdf: Integration der Euler-SDF-Transformation in die Sitzungskonventionen (#291) (9741ac6)modules::sdf: Ausrichtung der SDF-Formen im Koordinatensystem des Clients (c29e4f2), #276 geschlossenProtokoll: Beseitigung von Konflikten hinsichtlich der Lebensdauer der Timer, die zum Absturz oder zum Einfrieren des Dienstes führen (0cb019b), abgeschlossen #303Protokoll: Entleerung der Serienpuffer beim Öffnen des Ports zur Erkennung von im laufenden Betrieb ausgetauschten Geräten (b8724d9)Protokoll: Schutz der Firmware-Client-Erinnerungen vor Race-Conditions bei der Entsorgung von Geräten (3d795bb), abgeschlossen #303Protokoll: Überarbeitung der IMU-Orientierungs-API 0xE4 mit typisierter Aufzählung und korrektem Übertragungsformat (8733ec0)Zurück zur Startseite zum Aktivieren und Deaktivieren von „inverse3x“ über den BIA-Hub (f435454)Dienst: Adaptive Verteilung standardmäßig deaktiviert (9415638)Dienst: angeordnete, begrenzte und wettbewerbsfreie Einstellung des Dienstes (ff888d7), schließt #303Sitzungen: Zentrierung der Voreinstellungen *_zentriert* über das tatsächlich erreichbare Zentrum (ad6e726), schließt #321Sitzungen: Deaktivierung des automatischen Erhöhens der Siggraph-Arbeitsbereichsgrenze bei einem Wechsel der Montage (2df1654)Sitzungen: Das erzwungene Beenden der Sitzung beim Herunterfahren eines Geräts, das noch von einer aktiven Sitzung gesteuert wird, ignorieren (e1f9ff7), schließt #324Sitzungen: Verhindern, dass `start()` die bei der Verbindung ausgehandelten `serial_options` löscht (#290) (27e27d8)Sitzungen: Zurücksetzen der Transformationsgeschwindigkeit des Arbeitsbereichs nach „set_transform“ (133c3ad), schließt #280WebSocket: Dekodierung von Befehlen gemäß den Konventionen der sendenden Sitzung (#289) (1b24049), schließt #265Leistungsverbesserungen
core/log: Anpassung der Makros „ haply “ und „_*“, damit „fmt::format“ ignoriert wird, wenn sie deaktiviert sind (672a87a), schließt #270modules::sdf: Einmalige Vorberechnung des SDF bei der Erstellung statt bei jedem Tick (15350c5), schließt #277