Skip to content

Release 6.1.0#1290

Open
DanF-ApexSystems wants to merge 131 commits into
stablefrom
release-6.1.0
Open

Release 6.1.0#1290
DanF-ApexSystems wants to merge 131 commits into
stablefrom
release-6.1.0

Conversation

@DanF-ApexSystems
Copy link
Copy Markdown
Contributor

No description provided.

OswaldoApexSystems and others added 30 commits March 5, 2026 12:06
Add a HandleLogout at UIPlayerReportMenu to close Player report menu when the player Logout
…ui-when-logout

fix/EOSU 1040 subscribe report close window button to logout -> 6.0.2
- Prevent EGPI (identifiers beyond PII) from being written to logs.
- Ensure remote player identifiers are not leaked by plugin logging paths while preserving developer debugging ability.
- Provide a single, reusable redaction utility that follows the requested masking rules and can be disabled in debug builds.
- Documents why the first character is stripped before parsing
- Reduces ambiguity for future maintainers
- Improves clarity around HighFrequency P2P coordinate message format
Co-authored-by: Matt Clarke <matthew.clarke@mediatonic.co.uk>
Co-authored-by: Matt Clarke <matthew.clarke@mediatonic.co.uk>
- Added a new utility class, LoggingUtils, under PlayEveryWare.EpicOnlineServices.Utility.
  - Exposes ShouldRedactValues to determine when masking is active.
  - Exposes Redact(string value, int preserveChars = 3)` to mask the center of sensitive values while preserving a small prefix/suffix for diagnostics.
  - Redaction is disabled for debug builds and enabled for non-debug/runtime-safe contexts.
- Updated log statements to redact sensitive IDs at the point of logging instead of relying on broad post-processing.
  - EOSManager: redacts PUID transitions in the “Changing PUID” log.
  - EOSPeer2PeerManager: redacts remote user ID in connection-established logs.
  - EOSSessionsManager: redacts remote user IDs in connection accepted/closed logs.
  - EOSTransport and EOSTransportManager: redacts local/remote user IDs in transport lifecycle and packet/debug logs.
  - EOSLobbyManager: redacts local/participant IDs in RTC/lobby diagnostic logs.
  - EOSEACLobbyManager: redacts peer IDs in anti-cheat action logs.
  - UIFriendsMenu: redacts account ID in overlay diagnostics.
- Move HighFrequency coordinate packet formatting/parsing into EOSHighFrequencyPeer2PeerManager.
- Make CoordinateMessagePrefix private to keep packet internals encapsulated.
- Add SerializeCoordinatePacket(float x, float y) for consistent "m<x>,<y>" payload generation.
- Add TryDeserializeCoordinatePacket(string packet, out float x, out float y) to centralize parsing and explicitly document why Substring(1) is used.
- Update HandleReceivedMessages to use the new deserializer and keep malformed coordinate packet warnings.
- Update UIHighFrequencyPeer2PeerMenu.ParticlesOnClick to call SerializeCoordinatePacket instead of manual string concatenation.
Reorganized file structure by moving static utility functions to the bottom.
…-payload-format

Update EOSHighFrequencyP2P.cs
Added setup requirements of the deployment being used for the unit test.
…e_setup

Update title storage unit test setup
Co-authored-by: Matt Clarke <matthew.clarke@mediatonic.co.uk>
Updated the EOSTransport.GetCurrentRtt XML comment to state that the transport returns <c>0</c> because EOS P2P does not expose a built-in RTT metric, recommended implementing an application-level ping/pong when RTT is required, and removed the long inline DIY block comment.
This change migrates the configuration system from the legacy EOSConfig
model to the new ProductConfig-based architecture.

Key points of this migration:

- Replaced EOSConfig usage with ProductConfig as the main configuration
  entry point across runtime and tests.
- Refactored validation logic to rely on strong typing and domain
  invariants instead of string parsing.
- Introduced dedicated FieldValidators aligned with the new model:
  * GUIDFieldValidatorAttribute for Guid-based fields (rejects Guid.Empty).
  * SandboxIdFieldValidatorAttribute for SandboxId value object validation.
  * ProductionEnvironmentsFieldValidatorAttribute to validate deployment
    aggregates.
  * ClientCredentialsFieldValidatorAttribute to ensure at least one
    complete client credential exists.
- Removed legacy string-based ID validation patterns in favor of
  semantic validation using Guid, SandboxId, and aggregate state.

Domain model improvements:
- Deployment validity is now expressed exclusively through domain
  invariants (Deployment.IsComplete) instead of FieldValidator usage.
- SandboxId was hardened to be null-safe and robust against invalid input,
  preventing runtime exceptions and clarifying the distinction between
  "valid", "invalid", and "empty" states.
- Validation responsibilities are now clearly split:
  * FieldValidators validate configuration completeness at the
    ProductConfig boundary.
  * Domain objects (Deployment, SandboxId, Credentials) enforce their
    own invariants internally.

Test suite updates:
- Removed or migrated EOSConfig tests to ProductConfigTests.
- Added comprehensive test coverage for:
  * ProductConfig fields and validators.
  * ProductionEnvironments and ClientCredentials aggregates.
  * Deployment domain invariants.
  * SandboxId value object behavior, including edge cases, rollback
    behavior, and format semantics.
- Ensured tests are deterministic by explicitly resetting singleton
  config state between test cases.

Overall, this commit modernizes the configuration system by:
- Eliminating legacy parsing-based validation.
- Making invalid states unrepresentable through strong typing.
- Aligning runtime behavior, validation, and tests around the same
  domain rules.
DanF-ApexSystems and others added 24 commits April 29, 2026 11:43
Update C++ version to 20
Updated Makefile
…-mac

EOSU-1265 Build native libs Mac --> release-6.1.0
- xaudio2_9redist.dll.meta (ARM64): revert Exclude Win back to 1; add defineConstraints [EOS_PLATFORM_WINDOWS_ARM64] to prevent conflict with x64 DLL in Unity 2021.3 and Win64 builds
- xaudio2_9redist.dll.meta (x64): add defineConstraints [!EOS_PLATFORM_WINDOWS_ARM64] to exclude from ARM64 builds
- EOSManager_DynamicLoading.cs: simplify GfxPluginNativeRenderPath remove redundant EOS_PLATFORM_WINDOWS_64||UNITY_64 branch and x86 fallback
- ManagedToUnmanagedBridge.vcxproj / ConsoleApplication.vcxproj:
  - consolidate PropertySheets ImportGroups into single platform condition
  - simplify PropertyGroup condition to platform-only
  - upgrade Release|x64 toolset from v142 to v143 (required for C++20)
  - fix Debug configs accidentally downgraded to stdcpp17; restore stdcpp20
  - remove now redundant ARM64 toolset comment
- BuildUtility.cs: IsNullOrEmpty to IsNullOrWhiteSpace for platform flag
- WindowsBuilder.cs add exception logging to silent catch blocks
Add PlatformId const to each Windows builder class and Architectureconst to WindowsArm64Define to eliminate repeated string literals.
- Need only for local testing
- Update gitattributes as well as this was the only lib file in LFS
…d-ARM64-native-libs

Chore/eos sdk 1.19.1.2 build arm64 native libs
@DanF-ApexSystems DanF-ApexSystems self-assigned this May 14, 2026
@DanF-ApexSystems DanF-ApexSystems requested a review from a team May 14, 2026 14:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants