3.5.3 (2026年8月6日)
内部改良
core/log:deferred-formathaply_* マクロシェイプを追加 (cf7dbfc)、#271 をクローズコア:ピボットおよび合成/逆変換プリミティブを追加 (01080f6)、#283 をクローズデバイス:0xE4の本体向きと経路のキャッシュ trigger_mode (#265) (4864700)デバイス:0xE4 IMU センサーフレームのサービス側での補正 (#286) (e6d877c)、tapi-prototype-firmware#87 をクローズdevices:インクウェルキャリブレーション時に body_orientation を更新 (#268) (89b190b)、#286 #286 #286 をクローズデバイス:ライブ(0x0C)とリファレンス(0xE4)のボディの向きを分離 (#286 #315) (638487a)、#268 #266 #268 をクローズhttp:非対応プロトコルのレスポンスを 422 に統一 (e0e7638)、#293、#293、#295 をクローズhttp:echoes および sdf 入力をオイラー対応パッチに移行・変換 (#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:クラッチの最大移動量/力スケールの上限 (a946088)、#316 をクローズmodules::navigation:ミラーリングされた機能のキルスイッチ(デフォルトでは両方ともオン)(b6ee0c0)、#318 をクローズmodules::navigation:inputs[] に対する入力ごとの設定パッチ;バブルが status.engaged を発行する (ba2058f)、#318 をクローズプロトコル:キャパビリティファイルの分割、ダンピングゲート、ベースホイスト (30d7d5d)、#293 をクローズプロトコル:機能テーブル + サポートされていないエミッタが1つ(289382e)、#293 および #295 をクローズプロトコル:table (8a05d20) 経由で gate home_return + pen_attached を設定、#293 をクローズプロトコル:fw_version を導入し、バージョンチェックを移行(38c2cae)、#293 をクローズシリアライゼーション:v3.1のセッションパスにグリップボタンマスクを適用(7b93e35)、#316をクローズシリアライゼーション:config.mount のローテーション時に euler.output 配下で euler を出力するように (#268) (f6b54a2)シリアライゼーション:euler.output での回転変換時に Euler を出力する (96c6cc9)、#283 をクローズシリアライゼーション:set_transform においてワークスペースの「ピボットを基準としたズーム」を公開 (#309) (c1d08fc)、#280 をクローズシリアライゼーション:config/body_orientation の trigger_mode をフラット化 (#265) (8781b8a)、#268 をクローズシリアライゼーション:トランスフォームノブをセッションごとの `serial_options` へ移行 (#280) (03b2fd6)シリアライゼーション:config/mount を scope と body_orientation に分割 (#265) (5618839)、#280 をクローズシリアライゼーション:出力を通じてスレッド・セッションのオプションを渡し、ネストされたreshapeを制限する (#279, #280) (59984ce)、#265 をクローズシリアライゼーション:WSとHTTPの統合、デコードの設定 (#280) (6076917)sessions:解除可能なベイク機能を備えた汎用的なモーションロック機構を追加 (c8d2a93)、#304 をクローズsessions:ティックごとの live_motion モーションロック・アドバンス(ゲート制御)を追加 (d29013c)、#308 #304 #308 をクローズsessions:メインループでの配信を行うマネージャーレベルのセッションオブザーバーを追加 (83e76ef)、#284 をクローズsessions:マウントの追加、親要素の変更、およびワークスペースの「ピボットを基準としたズーム」(294d6e8)を追加。#265、297/#272、#304 をクローズsessions:名前空間付きの config.body_orientation イベントスコープを追加;レガシーな「values」入力に対して警告を表示(3f70047)、#320 をクローズsessions:プレビュー設定の追加/マウントソース+トリガーのルーティング (#265) (5d11dbf)、#268 をクローズsessions:マウント領域でのデバイスのマウント・保存・読み込み (#265) (4cec178)、#292 をクローズsessions:`set_workspace_transform_around` をピボットエコーに対応させて一般化 (0b242a2)、#309 をクローズsessions:グリップボタンのマスク + force_scale オーバーレイの仕組み (836ef2f)、#316 をクローズsessions:Tracyセッションのプロットにクライアントプロファイル(72a8f34)のラベルを付ける、#258をクローズセッション:マウントスコープのルーティングとストレージ仮想化 (#265) (9a4e7f4)、#286および#293の完了セッション:セッションごとの force_scale ダッキング(プレビュー) (bff66ad)バグ修正
ci:変更履歴を復元するためのピン解除ツールチェーン (72c6773)、#313 をクローズ新しいグレイズを用いたコンパイルの修正 (e2c53d3)依存関係:rust crate nix を 0.31 (b3b9a84) に更新devices:送信チョークポイントで safety-config プロトコルをゲート処理する (b8e8401)、#295 をクローズdevices:guard safety-config がファームウェアのバージョンとキャリブレーション(5ad5128)に関する書き込みを行い、#295 をクローズしますデバイス:ウェイクアップ・セトル期間中、inverse3ワイヤの接続を維持する (4afed45)デバイス:ウェイクアップ・セトル期間中、inverse3ワイヤの接続を維持する (79c2b66)デバイス:有線Verseグリップ(ea54a1a)での[セキュア]バッテリー通知を非表示にする、#314をクローズhttp:セッションスコープの安全書き込みにおけるキャリブレーションの確認 (89f9cd7)、#295 #293 をクローズhttp:セッションの規約に基づいてオイラー回転を折りたたむ (#288) (97cf203)inverse_ux:calibration_notifier の処理を Minverse に限定する (418913f)クラッシュを防ぐためのライフタイムのクリーンアップ (e7b3785)modules::inverse-ux:ファームウェアがブロックした場合は常に「calibration-failed」を出力する (3841d06)modules::inverse-ux:ペアリング済みのデバイス1台を交換した後の再ペアリング(cf85707)、#278をクローズmodules::sdf:セッションの規約に従って SDF 変換をオイラー変換に折りたたむ (#291) (9741ac6)modules::sdf:SDF 形状をクライアント座標系で方向付け (c29e4f2)、#276 をクローズプロトコル:サービスのクラッシュやハングを引き起こすタイマーの有効期間に関する競合を解消(0cb019b)、#303 をクローズプロトコル:ホットスワップされたデバイスを認識するために、ポートオープン時にシリアルバッファをフラッシュする (b8724d9)プロトコル:デバイスの破棄に伴う競合からファームウェアクライアントのコールバックを保護する (3d795bb)、#303 をクローズプロトコル:0xE4 IMU方位APIを、型付き列挙型と正しいワイヤ形式で書き換える (8733ec0)inverse3xのBIAハブの有効化/無効化に関するホームへ戻る (f435454)サービス:アダプティブ・ディスパッチはデフォルトで無効になっています (9415638)service:サービスのテアダウンを順序付き、境界付き、かつ競合のないものにする (ff888d7)、#303 をクローズセッション: 中央 *_中央揃え* 実際の到達可能中心(ad6e726)でのプリセット、#321をクローズsessions:マウントの変更時にSiggraphワークスペース境界の自動プッシュを無効化 (2df1654)sessions:アクティブなセッションによってまだ制御されているデバイスに対して、セッション終了時の強制ドレインをスキップする (e1f9ff7)、#324 をクローズsessions:start() 実行時に、接続時にネゴシエートされた serial_options を消去するのを停止 (#290) (27e27d8)sessions:set_transform 実行後のワークスペース変換速度がゼロになる問題 (133c3ad)、#280 をクローズWebSocket:送信者セッションの規約に基づいてコマンドをデコードする (#289) (1b24049)、#265 をクローズパフォーマンス向上
core/log:gatehaply_* マクロにより、fmt::format がオフのときはスキップされるようにした (672a87a)、#270 をクローズmodules::sdf:ティックごとではなく、作成時に一度だけSDFをベイクする (15350c5)、#277 をクローズ