3.5.1 (2026-05-28) {#351-2026-05-28}
내부 개선 사항 {#internal-improvements}
core/gates: backoff_time_gate + 히트 카운터 억제 (cc989c0), #244 비활성화core/gates: streak_gate + keyed 변형 (748f419), #244 닫음devices: wireless verse grip에 충전 표시등 추가 (6482bd6)장치: 20 Hz 주파수로 inverse3의 동작 상태를 폴링 (bfc160d)기기: ~을 위해 준비 스냅샷 디버그 로그에 v3.1 직렬화 방식 적용 (0c59c26)http: 고급/사용 중단된 설정에 대한 정밀 라우팅 GET 요청 허용 (2b5f037)http: 플래그를 통해 GET /settings의 표시 여부를 제어 (4f013d8), #251 해결modules::inverse: 에서 미리보기 모드 전원을 켠 후 노출됨 paired_with.auto (1f7f0e1), #230 닫기직렬화: 새로 추가됨 미리보기 모드 전역 플래그, 사전 공개 필드(422e822)용, #230 닫힘직렬화: v3.1 사원수에 오일러 표기법 추가 (c32dd6b), #239 닫음직렬화: 명시적 쿼터니언 생성자 + core 할당 연산자 (677ed6f)세션: 서브밀리초 단위의 스트리밍 응답 제한 허용 (9a42719)sessions: 미리보기 토글 제어 기능에 대한 /sessions v3.1 개선 사항 (6c1c8f2)설정: 将 기타/사용 중단됨 고급 설정으로 업그레이드 (b3528d7)튜토리얼: 스트림 기반 응답 프레임 검사 프로토타입 (6b57c39)버그 수정 {#bug-fixes}
command_processor: Force/Position 전환 시 모드 반전 방지 (d754ef1), #232 비활성화command_processor: 일회성 인라인 비우기를 ZOH'd 제어와 분리 (5960498), #117 닫기core::gates: 키 기반 시간 제어 게이트가 히트할 때마다 최신 주기를 사용하도록 수정 (c73b86a)탐지: extra_ports의 첫 번째 삽입 로그 병합 (57e21d7)감지: keyed_gate를 통해 포트별 로그 제어 구현 (04b8d54), #243 닫힘장치: 핸들 정보를 가져온 후에만 wireless verse grip을 준비 완료 상태로 표시합니다 (dfd7d5d)기기: wireless verse_grip에 대한 set_extension_data 속도 제한 수행 (011d5a0)http: 장치 선택기는 "#1234"와 "1234"를 장치 ID로 허용합니다 (1452c10)http: macOS 릴리스 빌드에서 사용되지 않는 컨텍스트 필드 제거 (-Wunused-private-field) (5345989)modules::inverse-ux: Inverse3 1개와 그립 1개가 연결되면 자동으로 페어링됨 (41b3024), #227 비활성화 #227modules::inverse-ux: 토폴로지가 1↔1을 초과할 경우 자동 페어링 취소 (e4fb80c)modules::inverse: Minverse 보정 시 다음 사항을 준수하십시오. 강제 연결 커버 설정 (e24bf84), #224 비활성화modules::inverse: paired_with 의 첨부됨 Minverse 및 첫 번째 POST 요청에 대해서는 항상 [secure] (cafb574)로 설정modules::inverse-ux: 기기별 Inverse3 ↔ VerseGrip 페어링 레지스트리 (ac63d2a), #224 닫기modules::inverse: POST 및 DELETE ~와 함께 라우팅 결과로 계산된 첨부됨 상태 (a751208)WVG가 아닌 장치를 WVG로 감지하려는 서비스 시도에 대한 경고가 반복적으로 표시되는 현상 방지 (17ad373)protocol::inverse3: 길이가 가변적인 0xBA 알림 페이로드 처리 (61f7b1f)서비스: 인덱스 외부에서 장치 선택기 클래스를 동시에 적용 (2d6422a)서비스: 404 메시지에서 장치 선택자 표현식 유지 (d2c4626)세션: 기본값 / 팔 앞쪽 프리셋 적용 시 apply_preset으로 마운트 재설정 (a333da8), #240 닫기세션: 세션 ID가 알려지지 않은 경우 자체 대상으로 되돌아가기 (14367ed), #239 종료세션: 세션 간 force_render_full_state 호출 시 전체 스냅샷 응답 반환 (8afc646)sessions: session.configure.serialization에서 execute:[secure]를 따릅니다 (3458af0)세션: 응용 기본값 / 팔 앞쪽 초기 설정 시 장치 마운트 상태를 ‘지워짐’으로 유지 (698008b), #252 및 #253 비활성화세션: 에서 기본값 / 팔 앞쪽 기본 설정에서 마운트를 identity (a0a2b29)로 재설정하고, #240을 비활성화합니다.sessions: 대역폭 제한이 적용된 스트리밍 스냅샷에서 WS 응답 복원 (787a656), #248 해결세션: 지속적인 시뮬레이션 부하 하에서 WS RX 열 경로 최적화 (e4e55d0)성능 최적화 {#performance-improvements}
command_processor: 제어 명령만 포함된 배치에 대한 WS RX 빠른 경로 (92bb4e8)에서 #241 비활성화엔진: AIMD 감쇠를 통해 적응형 배포 속도의 수렴 유도 (b8fc1c8), #249 닫힘main_loop: asio 큐에 대한 전송 중인 틱 상한값 설정 (8d77823)직렬화: 미리보기 옵션을 정적 구조체에 캐시하기 (8698636), #241 닫기sessions: 핫 경로에서 session::_mutex에 대한 경합 감소 (bf117c8), #241, #242 해결세션: 세션 장치 호출에 Tracy 추가하기 범위 지정 태그 (7404990)