3.5.3 (2026年8月6日) {#353-2026-08-06}
内部の改善 {#internal-improvements}
core/log:Makro-Formhaply_* を、書式設定を遅延させて追加する (cf7dbfc)、#271 を解決コア:ピボットおよびコンポーズ/逆変換プリミティブを追加 (01080f6)、#283 を解決デバイス:0xE4-ボディの向きを一時保存し、trigger_mode を転送する (#265) (4864700)デバイス:den 0xE4-IMU-Sensorrahmen のサービス側での補正 (#286) (e6d877c)、tapi-prototype-firmware#87 を解決devices:インクウェル・キャリブレーション時のボディの向きを更新 (#268) (89b190b)、#286 #286 #286 を解決デバイス:ライブ(0x0C)と参照のボディの向き(0xE4)を分離する (#286 #315) (638487a)、#268 #266 #268 を解決http:サポートされていないプロトコルに対する応答を422に統一する (e0e7638)、#293、#293、#295 を解決http:Transform-Echos および sdf 入力を、Euler 対応のパッチに変更 (#279, #280, #291) (bb29404)http:「Delete scope=device」実行時のデバイスマウントをリセット (#265) (f6bf26b)、#286 を解決modules::navigation:移動制限にクラッチモードを追加(制御可能、デフォルトはオフ)(4b69eed)、#308 #308 #283 #308 を解決modules::navigation:prevent_default を使用したボタンの入力処理; Clutch-force_scale; 長押しによるバブルナビゲーション (fb216aa)、#317 #318 #316 #317 #318 を解決modules::navigation:max_motion/force_scale のクラッチ上限値 (a946088)、#316 を解決modules::navigation:ミラー化された機能無効化スイッチ。どちらもデフォルトで有効(b6ee0c0)。#318 を解決modules::navigation:inputs[] への入力ごとの設定パッチ;バブルが status.engaged を送信する (ba2058f)、#318 をクローズプロトコル:機能ファイルの分割、ダンピングゲート、ベース・ホイスト (30d7d5d)、#293 を解決プロトコル:サポートされていない機能に関する機能一覧表および個々のエミッタ (289382e)、#293 および #295 を解決プロトコル:home_return および pen_attached をテーブルを介して保護する (8a05d20)、#293 を解決プロトコル:fw_version を導入し、バージョンチェックを移行する (38c2cae)、#293 を解決シリアライゼーション:v3.1のセッション実行においてグリップキー・マスクを適用する (7b93e35)、#316 をクローズシリアライゼーション:config.mount のローテーション時に euler.output に出力する (#268) (f6b54a2)シリアライゼーション:オイラー座標の変換における回転を euler.output に出力する (96c6cc9)、#283 を解決シリアライゼーション:set_transform を使用してワークスペース・ズームのピボットを提供 (#309) (c1d08fc)、#280 を解決シリアライゼーション:config/body_orientation の trigger_mode を統一する (#265) (8781b8a)、#268 を解決シリアライゼーション:Transform-Regler を、セッションごとに適用される serial_options に変換する (#280) (03b2fd6)シリアライゼーション:config/mount をスコープ内に含め、body_orientation を分割 (#265) (5618839)、#280 を解決シリアライゼーション:出力を通じてセッションオプションを渡し、ネストされた変換を保証する (#279, #280) (59984ce)、#265 を解決シリアライゼーション:WSおよびHTTPのデコード処理を統一する (#280) (6076917)sessions:ディエンゲージ時にビーコンを用いた汎用的な移動制限メカニズムを追加 (c8d2a93)、#304 を解決sessions:live_motion - ティックごとの移動制限の更新を追加(制御付き)(d29013c)、#308 #304 #308 を解決sessions:マネージャーレベルでセッションオブザーバーを追加し、メインループ経由で配信する (83e76ef)、#284 をクローズセッション:ピボットの周囲に「マウントの再親付け」と「ワークスペースのズーム」を追加 (294d6e8)、#265 297/#272 #304 をクローズセッション:独自のネームスペースを持つイベントスコープ「config.body_orientation」を追加;非推奨となった「values」入力に対する警告(3f70047)、#320 を解決セッション:プレビューソース「config/mount」とトリガーのルーティングを追加 (#265) (5d11dbf)、#268 をクローズsessions:マウント領域へのデバイスマウントの保存と読み込み (#265) (4cec178)、#292 を解決sessions:set_workspace_transform_around を Pivot-Echo を用いて一般化する (0b242a2)、#309 を解決sessions:グリップボタン・マスクおよび force_scale オーバーレイの仕組み (836ef2f)、#316 をクローズsessions:クライアントプロファイルでTracy-Session-Plotsにラベルを付ける (72a8f34)、#258 をクローズセッション:マウント・スコープ・ルーティングおよびストレージ仮想化 (#265) (9a4e7f4)、#286 および #293 の後処理を完了セッション:force_scale-Ducking pro セッション (プレビュー) (bff66ad)不具合の修正 {#bug-fixes}
ci:変更履歴を復元するためにツールチェーンを固定する (72c6773)、#313 を解決新しいglazeによるコンパイルエラーが修正されました (e2c53d3)依存関係:Rust-Crateのnixを0.31に更新 (b3b9a84)デバイス:送信ボトルネックにおける Safety-Config-Protokoll のセキュリティ対策 (b8e8401)、#295 を解決デバイス:ファームウェアのバージョンおよび校正状況に応じて、Safety-Configへの書き込み処理を保護する(5ad5128)、#295を解決デバイス:起動後の安定化期間中、inverse3接続をアクティブに維持する (4afed45)デバイス:起動後の安定化期間中、inverse3接続をアクティブに維持する (79c2b66)devices:[secure] - 有線式のVerseグリップにおけるAkkub通知を無効化 (ea54a1a)、#314 を解決http:セッション単位のSafety書き込み処理におけるキャリブレーションを確認する (89f9cd7)、#295 #293 を解決http:セッションの規約に従ってオイラー回転を統合する (#288) (97cf203)inverse_ux:calibration_notifier による処理を Minverse に限定する (418913f)クラッシュを回避するためのライフサイクルの調整 (e7b3785)modules::inverse-ux:ファームウェアがフリーズした場合は常に「calibration-failed」を出力する (3841d06)modules::inverse-ux:ペアリング済みのデバイスを交換した後の再ペアリング (cf85707)、#278 を解決modules::sdf:セッションの規約に従って sdf-Transformations-Euler を統合する (#291) (9741ac6)modules::sdf:クライアント座標系でSDF形状を位置合わせする (c29e4f2)、#276 を解決プロトコル:サービスのクラッシュやブロックを引き起こすタイマーのライフサイクルにおけるレースコンディションを解消(0cb019b)、#303 を解決プロトコル:ポートを開く際にシリアルバッファをクリアし、稼働中に交換されたデバイスを検出できるようにする (b8724d9)プロトコル:デバイスの破棄時のレースコンディションからファームウェア・クライアント・コールバックを保護する (3d795bb)、#303 を解決プロトコル:0xE4-IMU-Orientierungs-API を、型指定された列挙型と正しい Wire フォーマットを用いて書き直す (8733ec0)ハブを介してinverse3xを有効化および無効化する際の基本位置への復帰 (f435454)サービス:adaptives のディスパッチがデフォルトで無効化されています (9415638)サービス:サービスのシャットダウンを、順序立てて、制限を設け、レースコンディションが発生しないように設計する (ff888d7)、#303 を解決セッション: *_中央揃え*-プリセットを実際に到達可能な中心に合わせる (ad6e726)、#321 を解決セッション:Siggraph-Auto-Push のワークスペース境界におけるマウント変更時の削除 (2df1654)sessions:アクティブなセッションによって制御されているデバイスの場合、セッション終了時の強制的なクリアをスキップする (e1f9ff7)、#324 を解決sessions:start() が、接続時にネゴシエートされた serial_options をリセットしなくなる (#290) (27e27d8)sessions:set_transform 実行後のワークスペース変換速度を null に設定 (133c3ad)、#280 をクローズWebSocket:送信側のセッションの規約に従ってコマンドをデコードする (#289) (1b24049)、#265 を解決パフォーマンスの向上 {#performance-improvements}
core/log: haply_*-マクロを、ログが無効になっている場合に fmt::format がスキップされるように保護する (672a87a)、#270 を解決modules::sdf:生成時に、ティックごとではなく一度だけSDFを事前計算する (15350c5)、#277 をクローズ