[Configuration] Added precise validation checks for TSDF and Shaders in the HoloMIT configuration system to ensure the presence of TSDFRendererFeature and the exact assignment of TSDFBlit and TSDFBlitSinglePass shaders, preventing false positives.
[Networking] Added NetworkPlayerTransform data structure for transmitting networked transform (position and rotation) information.
[Environments] Added Conference Space and Conference Room as new HoloMIT sample scenes. This includes the PFB_ConferenceRoom and Space prefabs, alongside PlayerRoot prefab variants tailored for each scene.
[CloudRecording] Added the Cloud Recording System, featuring Cloud Recording and Cloud Viewer sample scenes. This introduces the CloudContent component into HoloMIT Core, replacing legacy Fake Clients with new socket and HTTP calls for cloud-based content handling.
[Metrics] Added ClockSync behavior into the ServerStatus component to ensure accurate metric synchronization with the Orchestrator.
[UI] Added an "Open Log" button within the new UI Builder system for easier in-app debugging.
[UI] Added visual feedback text to actively notify the user if there are no scenes configured in the Build Settings.
[Samples] Added a DoNotConsumeMyUser sample and test script, exposing a public SessionPlayerManager variable for testing purposes.
[Architecture] Added TerminateControllerEvents to both Network Managers and Core Managers to ensure proper event lifecycle management and prevent memory leaks.
[Metrics] Added tagPixel and tagCodec tags to the metrics payload for more granular performance tracking.
[Networking] Added NetworkSpawner feature along with a Sample scene. Dynamically instanced prefabs can now be assigned a network ID and synchronized across all connected users.
[HoloCapturer] Pre-Flight Security Checks for HoloRecordingPlayBack to gracefully abort initialization if dataset files are missing, preventing native C++ crashes.
[HoloCapturer] Smart Auto-Recovery UX in HoloSelector to automatically toggle single/multi-dataset scanning modes and assist developers during path configuration.
[HoloCapturer] Real-time visual validation badges (Config/Audio) inside the HoloSelector Custom Editor, including a native OS Explorer reveal feature for missing files.
[LoginManager] New User Feedback System for Login (Issue #716):
[Networking] Added NetworkPlayerTransform to handle synchronized spatial data across the network more efficiently.
[UI] Implemented UI Builder System: A unified framework for multi-platform interfaces, including a specific MenuView for Desktop and a WristMenu for VR environments.
[Calibration] Added Self-Calibration Examples.
[Calibration] Desktop: Manual calibration system using a slider-based interface.
[Calibration] VR: Direct User Control (DUC) calibration utilizing DynamicSpatialCalibration and - [Calibration] CalibrationUIBridge to link the player within the scene.
[Configuration] Split URP validation into two separate checks (Quality and Graphics) within the SDK. The "Fix" button is now configured to automatically assign URPHoloMIT.
[Network] Paused the manual updater mechanism to simplify the codebase and test secure connections relying solely on the native SSL/TLS implementation.
[Grabbables] Refactored grabbable architecture by decoupling network and interaction logic. NetworkGrabbable has been split into two distinct, specialized scripts: NetworkGrabbable.cs (networking) and Grabbable.cs (interaction).
[Calibration] Updated SelfCalibration prefabs for seamless integration. The system now supports a plug-and-play approach where the only external requirement is an EventSystem with the XR Interaction UI Module.
[Architecture] Improved internal architecture by migrating to controller manager events instead of wrapper manager events, resulting in cleaner and more maintainable code.
[HoloCapturer] Refactored HoloRecordingPlayBack and HoloSelector architecture. HoloSelector is now tightly integrated as an internal sub-module to prevent data desynchronization and reduce component bloat.
[HoloCapturer] Enhanced HoloRecordingPlayBack state machine with a Deferred Stop mechanism. Reconstructor teardown is safely delayed if called during the IsPreparing state.
[HoloCapturer] Updated HoloSelector Inspector feedback colors and logic (Success, Warning, Error) to display comprehensive disk status at a glance without entering play mode.
[LoginManager] Enhanced UserManagerWrapper to handle and deserialize ErrorResponse JSON payloads, providing human-readable error messages instead of generic failure codes.
[LoginManager] Refactored Server Status architecture (Issue #714). Logic has been decoupled from LoginManager into ServerStatus (Singleton) and ServerStatusUI.
[Grabbables] Decoupled networking logic from Grabbable.cs. The script is now purely interaction-based, delegating all network synchronization logic to the new NetworkPlayer component.
[Editor] Resolved a critical editor freeze in Unity 2022 when clicking "Fix" on URP and TSDF options. These features are now safely hidden and disabled for versions older than Unity 6 using #if UNITY_6000_0_OR_NEWER in CustomInspectorButtons.cs.
[Editor] Fixed Unity 2022 editor crashes during feature scanning by replacing C# Reflection with SerializedObject, preventing the loading of corrupted classes within Capturer.dll.
[Network] Fixed secure connection issues by disabling alternate encryption (UseAlternateSSLDefaultValue = false), forcing the SDK to use Unity's native SSL/TLS.
[Network] Patched an error in HttpManager during the LeaveSession flow by implementing safe nullable checks.
[Session] Added comprehensive nullable checks to the SessionManager to prevent null reference exceptions during runtime operations.
[Networking] Resolved Issue #718: Fixed unsynchronized user avatar hand positions to ensure consistent visual representation across all clients.
[Calibration] Fixed OwnershipValidator within the SelfSpatialCalibrator to prevent authority conflicts during calibration sessions.
[HoloCapturer] Solved a critical "Ghost File" bug where launching a recently deleted dataset from the UI would permanently lock the state machine in IsPreparing.
[TeleportController] Fixed physics conflicts and console errors during teleportation. The system now safely disables and re-enables the CharacterController (if present) during position updates to ensure smooth and accurate player relocation.
[LoginManager] Resolved a critical UI hang during login (Issue #716). The application now correctly handles Auth API responses (401, 404, 500) and performs pre-request connection checks via ServerStatus, preventing the login button from becoming unresponsive on failed attempts.
[LoginManager] Improved session management and feedback (Issue #715). Added OnFailedRequest parameters to SessionManager to handle edge cases during room creation and joining.
[Desktop App] Resolved issue where server connection was lost after exiting a room (Issue #714). Implemented a Heartbeat Routine that pings the Orchestrator every 10 seconds with a 5-second timeout, ensuring the connection status is always accurate and self-healing.
[Player] Adjusted Near Plane clipping distance in the Player Prefab from 0.3 to 0.2 to resolve camera misalignment and near-field object culling issues.
[ClockManager] Inconsistent Latency Metrics (Issue #712): Fixed the issue where clock synchronization only occurred once at startup. Sync now runs periodically based on the CheckIntervalSeconds timer to ensure convergence and stable latency data.