v0.23.5 — Retire le check VR du default config

Vive Streaming ment à SteamVR : son driver prétend qu'un HMD est présent
même quand la session Wi-Fi avec le casque physique est tombée. Donc
tous les signaux qui passent par SteamVR (VR_IsHmdPresent, vtable
IVRSystem, logs vrserver) sont contaminés et ne reflètent pas l'état
réel du casque. Le check qu'on a ajouté en v0.23.4 induisait l'utilisateur
en erreur ("vert" alors que le casque est éteint).

Pour l'instant on retire le check du default. Bookmark dans le code des
pistes Phase 2 qui ne passent PAS par SteamVR : connexions TCP/UDP de
HtcConnectionUtility via GetExtendedTcpTable, endpoint local de Vive
Console, compteurs IO, ARP avec OUIs HTC, logs Vive directs.

Le Kind « VrDevice » reste dispo dans l'éditeur pour les setups SteamVR
purs (Index/Vive Wand sur Lighthouse) où le signal est honnête, mais
n'est plus poussé par défaut.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-03 20:45:55 +02:00
parent 37a4cf424e
commit bebb701d70
3 changed files with 18 additions and 18 deletions

View File

@@ -15,9 +15,9 @@
<Product>PROSERVE Launcher</Product>
<Copyright>© 2026 ASTERION VR — All rights reserved</Copyright>
<RootNamespace>PSLauncher.App</RootNamespace>
<Version>0.23.4</Version>
<AssemblyVersion>0.23.4.0</AssemblyVersion>
<FileVersion>0.23.4.0</FileVersion>
<Version>0.23.5</Version>
<AssemblyVersion>0.23.5.0</AssemblyVersion>
<FileVersion>0.23.5.0</FileVersion>
<!-- Single-file self-contained publish profile (used by `dotnet publish`) -->
<PublishSingleFile>true</PublishSingleFile>

View File

@@ -178,20 +178,20 @@ public sealed class HealthChecksConfig
Kind = "Process",
Target = "HtcConnectionUtility",
},
// Check VR via OpenVR flat C API (sans vtable IPC pour éviter les
// AccessViolation observés avec le driver Vive Streaming). Donne un
// statut binaire : SteamVR actif + HMD détecté = vert ; runtime absent
// ou casque débranché = rouge. Marche out-of-the-box, pas d'IP à
// configurer côté utilisateur, et beaucoup plus pertinent qu'un ping
// pour répondre à la question « PROSERVE peut-il se lancer ? ».
new HealthCheckEntry
{
Name = "Casque VR",
Icon = "🥽",
Kind = "VrDevice",
Target = "hmd",
RefreshIntervalMs = 5000,
},
// PAS de check « casque connecté » par défaut.
//
// Pourquoi : avec Vive Business Streaming dans la pile, le driver Vive
// ment à SteamVR — il prétend qu'un HMD est présent même quand la
// session Wi-Fi avec le casque physique est tombée. Donc tous les
// signaux qui passent par SteamVR (VR_IsHmdPresent, vtable IVRSystem,
// logs vrserver) sont contaminés par ce mensonge et ne reflètent pas
// l'état réel du casque.
//
// À traiter en Phase 2 via un signal authoritative qui ne passe PAS
// par SteamVR (pistes brainstormées : connexions TCP/UDP de
// HtcConnectionUtility via GetExtendedTcpTable, endpoint local de
// Vive Console, compteurs IO du process, ARP table avec OUIs HTC,
// logs Vive Streaming directs). Ajout d'un Kind dédié à ce moment-là.
};
}