3.5.3 (2026年8月6日)
内部の改善
core/log:遅延フォーマットに対応したマクロ形式 `haply_*` を追加 (cf7dbfc)、#271 をクローズcore:ピボットプリミティブおよび変換の合成・反転プリミティブを追加 (01080f6)、#283 をクローズデバイス:ボディオリエンテーション 0xE4 のキャッシュと trigger_mode のルーティング (#265) (4864700)デバイス:IMUセンサーの基準点に対するサービス側の補正 0xE4 (#286) (e6d877c)、tapi-prototype-firmware#87 を閉じるデバイス:inkwellのキャリブレーション時のbody_orientationの更新 (#268) (89b190b)、#286 #286 #286 をクローズデバイス:リアルタイム(0x0C)と基準(0xE4)の体姿勢の分離 (#286 #315) (638487a)、#268 #266 #268 をクローズhttp:サポートされていないプロトコルの応答を422に統一 (e0e7638)、#293 #293 #295 をクローズhttp:変換エコーおよびsdfエントリを、Euler互換の変更へ移行 (#279, #280, #291) (bb29404)http:Delete scope=device (#265) におけるデバイスのマウント設定をリセット (f6bf26b)、#286 をクローズmodules::navigation:移動ロックに「クラッチ」モードを追加(条件付き、デフォルトでは無効) (4b69eed)、#308 #308 #283 #308 をクローズmodules::navigation:prevent_default 付きボタンエントリ;クラッチの 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 をクローズプロトコル:キャパシティテーブル + 単一の非サポート送信者 (289382e)、#293、#295 をクローズプロトコル:テーブル (8a05d20) 経由での home_return および pen_attached の条件付け、#293 をクローズプロトコル:fw_version の導入およびバージョン検証の移行 (38c2cae)、#293 をクローズシリアライゼーション:セッションパス v3.1 (7b93e35) におけるドラッグハンドルマスクの適用、#316 をクローズシリアライゼーション:Euler における config.mount の回転に関する出力 (#268) (f6b54a2)シリアライゼーション:euler.output (96c6cc9) における変換の回転に対するオイラー表現、#283 をクローズシリアライゼーション:set_transform におけるワークスペースのピボットを中心としたズームの展開 (#309) (c1d08fc)、#280 をクローズシリアライゼーション:config/body_orientation に対する trigger_mode の平坦化 (#265) (8781b8a)、#268 をクローズシリアライゼーション:session 単位で serial_options 内の変換設定を適用 (#280) (03b2fd6)シリアライゼーション:config/mount をスコープと body_orientation に分割 (#265) (5618839)、#280 をクローズシリアライゼーション:セッションオプションの出力への転送およびネストされた再構築の処理 (#279, #280) (59984ce)、#265 をクローズシリアライゼーション:WSおよびHTTP向けのconfigureのデコードを統一 (#280) (6076917)sessions:解除時の事前計算を伴う汎用的な移動ロック機構を追加(c8d2a93)、#304 をクローズsessions:live_motion の追加、各ティックごとの移動ロック機能の進捗(条件付き)(d29013c)、#308 #304 #308 をクローズセッション:マネージャーレベルでのセッションオブザーバーの追加とメインループへの配信 (83e76ef)、#284 をクローズsessions:ピボットを中心としたワークスペースの再配置およびズーム機能を追加 (294d6e8)、#265、297、#272、#304 をクローズsessions:名前空間に config.body_orientation イベント範囲を追加;レガシーな 'values' エントリに関する警告 (3f70047)、#320 をクローズsessions:config/mount のプレビューソースとトリガーのルーティングを追加 (#265) (5d11dbf)、#268 をクローズセッション:取り付けスペースへの機器の組み立ての保存・読み込み (#265) (4cec178)、#292 をクローズセッション:ピボットを出力する set_workspace_transform_around の一般化 (0b242a2)、#309 をクローズsessions:ドラッグハンドルのマスク + force_scale の重ね合わせメカニズム (836ef2f)、#316 をクローズセッション:Tracyのセッショングラフにクライアントプロファイル(72a8f34)のラベルを付与、#258をクローズsessions:マウント範囲のルーティング + 仮想ストレージ (#265) (9a4e7f4)、#286 #293 後のクローズセッション:セッションごとの force_scale の減衰(概要) (bff66ad)バグの修正
ci:変更履歴を復元するためにパブリッシングツールチェーンをピン留め(72c6773)、#313 をクローズ新しいバージョンのGlaze(e2c53d3)によるコンパイルの修正依存関係:rust nix クレートを 0.31 (b3b9a84) に更新デバイス:送信のボトルネックにおけるセキュリティ設定プロトコルの条件付け (b8e8401)、#295 をクローズデバイス:ファームウェアのバージョンおよびキャリブレーションに応じたセキュリティ設定の書き込み保護(5ad5128)、#295 をクローズデバイス:起動の安定化期間中、inverse3の有線接続を維持する (4afed45)デバイス:起動の安定化期間中、inverse3の有線接続を維持する (79c2b66)デバイス:有線式ハンドル(ea54a1a)におけるバッテリー通知の非表示 [secure]、#314 をクローズhttp:セッション範囲内のセキュリティ書き込みに対するキャリブレーションの検証 (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のオイラー変換をセッション規約に統合 (#291) (9741ac6)modules::sdf:クライアントの座標系におけるSDF形状の向き (c29e4f2)、#276をクローズプロトコル:サービスのクラッシュやフリーズを引き起こすタイマーの有効期間に関する競合条件の解消 (0cb019b)、#303 をクローズプロトコル:ポートの開放時にシリアルバッファをクリアし、ホットスワップされたデバイスを識別する (b8724d9)プロトコル:デバイスの廃棄時にファームウェアのクライアントリコールを競合状態から保護する (3d795bb)、#303 をクローズプロトコル:0xE4 IMUオリエンテーションAPIの書き換え(型付き列挙および正しい送信フォーマットを含む)(8733ec0)BIAハブ(F435454)を介して「inverse3x」の有効化および無効化を行うためのホームポジションへの復帰サービス:適応型割り当てはデフォルトで無効になっています (9415638)サービス:命令による、限定された、かつ競合条件のないサービスの停止 (ff888d7)、#303 を終了セッション: プリセットの中心合わせ *_中央揃え* 実際に到達可能な中心点について(ad6e726)、#321をクローズsessions:マウントの変更時に SIGGRAPH ワークスペースの容量制限の自動拡張を無効化 (2df1654)sessions:アクティブなセッションによってまだ制御されているデバイスの場合、終了時のセッションの強制的なクリアを無視する (e1f9ff7)、#324 をクローズセッション:接続時にネゴシエートされた serial_options が start() によって上書きされないようにする (#290) (27e27d8)セッション:set_transform 実行後のワークスペースの変形速度のリセット (133c3ad)、#280 をクローズWebSocket:送信側のセッションの規約に基づくコマンドのデコード (#289) (1b24049)、#265 をクローズパフォーマンスの向上
core/log: haply_* マクロの処理を調整し、無効化されている場合に fmt::format が無視されるようにした (672a87a)、#270 をクローズmodules::sdf:SDFの事前計算を、各ティックごとではなく、作成時に1回だけ行うように変更 (15350c5)、#277 をクローズ