diff --git a/build/Version.props b/build/Version.props
index ef2f6523960..4a4c556f247 100644
--- a/build/Version.props
+++ b/build/Version.props
@@ -10,7 +10,7 @@
11.1.2
12.1.2
6.5.4
- 5.6.1
+ 5.6.2
1.4.0
1.2.1
1.0.2
diff --git a/src/DMAPI/tgs/v5/__interop_version.dm b/src/DMAPI/tgs/v5/__interop_version.dm
index 5d3d491a736..1b52b31d6a7 100644
--- a/src/DMAPI/tgs/v5/__interop_version.dm
+++ b/src/DMAPI/tgs/v5/__interop_version.dm
@@ -1 +1 @@
-"5.6.1"
+"5.6.2"
diff --git a/src/Tgstation.Server.Host/Components/Interop/Bridge/RuntimeInformation.cs b/src/Tgstation.Server.Host/Components/Interop/Bridge/RuntimeInformation.cs
index 5d0d13b7fa1..b7d05b67d79 100644
--- a/src/Tgstation.Server.Host/Components/Interop/Bridge/RuntimeInformation.cs
+++ b/src/Tgstation.Server.Host/Components/Interop/Bridge/RuntimeInformation.cs
@@ -2,6 +2,8 @@
using System.Collections.Generic;
using System.Linq;
+using Newtonsoft.Json;
+
using Tgstation.Server.Api.Models;
using Tgstation.Server.Host.Components.Chat;
using Tgstation.Server.Host.Components.Deployment;
@@ -42,12 +44,14 @@ public sealed class RuntimeInformation : ChatUpdate
///
/// The level of the launch.
///
- public DreamDaemonSecurity? SecurityLevel { get; }
+ [JsonProperty(DefaultValueHandling = DefaultValueHandling.Include)]
+ public DreamDaemonSecurity SecurityLevel { get; }
///
/// The level of the launch.
///
- public DreamDaemonVisibility? Visibility { get; }
+ [JsonProperty(DefaultValueHandling = DefaultValueHandling.Include)]
+ public DreamDaemonVisibility Visibility { get; }
///
/// The s in the launch.
@@ -70,8 +74,8 @@ public RuntimeInformation(
IDmbProvider dmbProvider,
Version serverVersion,
string instanceName,
- DreamDaemonSecurity? securityLevel,
- DreamDaemonVisibility? visibility,
+ DreamDaemonSecurity securityLevel,
+ DreamDaemonVisibility visibility,
ushort serverPort,
bool apiValidateOnly)
: base(chatTrackingContext?.Channels ?? throw new ArgumentNullException(nameof(chatTrackingContext)))
diff --git a/src/Tgstation.Server.Host/Components/Session/ReattachInformation.cs b/src/Tgstation.Server.Host/Components/Session/ReattachInformation.cs
index 2c9007f4f35..6c429d2d0a6 100644
--- a/src/Tgstation.Server.Host/Components/Session/ReattachInformation.cs
+++ b/src/Tgstation.Server.Host/Components/Session/ReattachInformation.cs
@@ -76,13 +76,11 @@ internal ReattachInformation(
Dmb = dmb ?? throw new ArgumentNullException(nameof(dmb));
ProcessId = process?.Id ?? throw new ArgumentNullException(nameof(process));
RuntimeInformation = runtimeInformation ?? throw new ArgumentNullException(nameof(runtimeInformation));
- if (!runtimeInformation.SecurityLevel.HasValue)
- throw new ArgumentException("runtimeInformation must have a valid SecurityLevel!", nameof(runtimeInformation));
AccessIdentifier = accessIdentifier ?? throw new ArgumentNullException(nameof(accessIdentifier));
- LaunchSecurityLevel = runtimeInformation.SecurityLevel.Value;
- LaunchVisibility = runtimeInformation.Visibility.Value;
+ LaunchSecurityLevel = runtimeInformation.SecurityLevel;
+ LaunchVisibility = runtimeInformation.Visibility;
Port = port;
runtimeInformationLock = new object();
diff --git a/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs b/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs
index 96228c3c327..939632524ab 100644
--- a/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs
+++ b/src/Tgstation.Server.Host/Components/Session/SessionControllerFactory.cs
@@ -336,7 +336,8 @@ public async Task LaunchNew(
var runtimeInformation = CreateRuntimeInformation(
dmbProvider,
chatTrackingContext,
- launchParameters,
+ launchParameters.SecurityLevel.Value,
+ launchParameters.Visibility.Value,
apiValidate);
var reattachInformation = new ReattachInformation(
@@ -430,7 +431,8 @@ public async Task Reattach(
var runtimeInformation = CreateRuntimeInformation(
reattachInformation.Dmb,
chatTrackingContext,
- null,
+ reattachInformation.LaunchSecurityLevel,
+ reattachInformation.LaunchVisibility,
false);
reattachInformation.SetRuntimeInformation(runtimeInformation);
@@ -632,15 +634,16 @@ async Task LogDDOutput(IProcess process, string outputFilePath, bool cliSupporte
RuntimeInformation CreateRuntimeInformation(
IDmbProvider dmbProvider,
IChatTrackingContext chatTrackingContext,
- DreamDaemonLaunchParameters launchParameters,
+ DreamDaemonSecurity securityLevel,
+ DreamDaemonVisibility visibility,
bool apiValidateOnly)
=> new (
chatTrackingContext,
dmbProvider,
assemblyInformationProvider.Version,
instance.Name,
- launchParameters?.SecurityLevel,
- launchParameters?.Visibility,
+ securityLevel,
+ visibility,
serverPortProvider.HttpApiPort,
apiValidateOnly);
diff --git a/src/Tgstation.Server.Host/Models/ReattachInformationBase.cs b/src/Tgstation.Server.Host/Models/ReattachInformationBase.cs
index 76dfbfda36c..5cad9efbce2 100644
--- a/src/Tgstation.Server.Host/Models/ReattachInformationBase.cs
+++ b/src/Tgstation.Server.Host/Models/ReattachInformationBase.cs
@@ -32,13 +32,13 @@ public abstract class ReattachInformationBase : DMApiParameters
/// The level DreamDaemon was launched with.
///
[Required]
- public DreamDaemonSecurity? LaunchSecurityLevel { get; set; }
+ public DreamDaemonSecurity LaunchSecurityLevel { get; set; }
///
/// The DreamDaemon was launched with.
///
[Required]
- public DreamDaemonVisibility? LaunchVisibility { get; set; }
+ public DreamDaemonVisibility LaunchVisibility { get; set; }
///
/// Initializes a new instance of the class.