Harden package proof truth and legal route continuity
This commit is contained in:
parent
25e636ca13
commit
433a25ec16
18 changed files with 1283 additions and 24 deletions
|
|
@ -0,0 +1,419 @@
|
|||
{
|
||||
"devices": [
|
||||
{
|
||||
"deviceName": "DESKTOP-KS3VGHU",
|
||||
"instance": "CB01B5594B738A3EB566D09397472D76",
|
||||
"instanceName": "DESKTOP-KS3VGHU-16908",
|
||||
"platform": "WindowsEditor",
|
||||
"oSVersion": "Windows 11 (23H2) [10.0.22631.4037] ",
|
||||
"model": "Default",
|
||||
"gPU": "GenericGPUBrand",
|
||||
"cPUModel": "12th Gen Intel(R) Core(TM) i7-12700H",
|
||||
"rAMInGB": 16,
|
||||
"renderMode": "SM6",
|
||||
"rHI": "",
|
||||
"appInstanceLog": ""
|
||||
}
|
||||
],
|
||||
"reportCreatedOn": "2026.06.30-22.37.33",
|
||||
"succeeded": 26,
|
||||
"succeededWithWarnings": 0,
|
||||
"failed": 0,
|
||||
"notRun": 0,
|
||||
"inProcess": 0,
|
||||
"totalDuration": 26.079837799072266,
|
||||
"comparisonExported": false,
|
||||
"comparisonExportDirectory": "",
|
||||
"tests": [
|
||||
{
|
||||
"testDisplayName": "NotificationCapture",
|
||||
"fullTestPath": "HyperTwist.Browser.Bridge.NotificationCapture",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.016066901385784149,
|
||||
"dateTime": "2026.06.30-22.37.01",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "RuntimeReadyDelegate",
|
||||
"fullTestPath": "HyperTwist.Browser.Bridge.RuntimeReadyDelegate",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.017024699598550797,
|
||||
"dateTime": "2026.06.30-22.37.01",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "RuntimeReadyPayloadDecode",
|
||||
"fullTestPath": "HyperTwist.Browser.Bridge.RuntimeReadyPayloadDecode",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.017505999654531479,
|
||||
"dateTime": "2026.06.30-22.37.01",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "RuntimeStatusEnvelopeDecode",
|
||||
"fullTestPath": "HyperTwist.Browser.Bridge.RuntimeStatusEnvelopeDecode",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.01534309983253479,
|
||||
"dateTime": "2026.06.30-22.37.01",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "TilingStateEnvelopeDecode",
|
||||
"fullTestPath": "HyperTwist.Browser.Bridge.TilingStateEnvelopeDecode",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.017251200973987579,
|
||||
"dateTime": "2026.06.30-22.37.01",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlInputReadinessInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.CoachDashboard.ControlInputReadinessInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.89371442794799805,
|
||||
"dateTime": "2026.06.30-22.37.01",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlProfileContinuityArtifacts",
|
||||
"fullTestPath": "HyperTwist.Browser.CoachDashboard.ControlProfileContinuityArtifacts",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 1.1729363203048706,
|
||||
"dateTime": "2026.06.30-22.37.02",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlProfileRosterInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.CoachDashboard.ControlProfileRosterInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.73883110284805298,
|
||||
"dateTime": "2026.06.30-22.37.03",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlSettingsOwnershipInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.CoachDashboard.ControlSettingsOwnershipInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 1.4053404331207275,
|
||||
"dateTime": "2026.06.30-22.37.10",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlSurfaceStructuredTextArtifacts",
|
||||
"fullTestPath": "HyperTwist.Browser.CoachDashboard.ControlSurfaceStructuredTextArtifacts",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 19.225212097167969,
|
||||
"dateTime": "2026.06.30-22.37.11",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "RuntimeInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.CoachDashboard.RuntimeInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.73295348882675171,
|
||||
"dateTime": "2026.06.30-22.37.30",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlInputReadinessInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.TrainingPanel.ControlInputReadinessInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.29860779643058777,
|
||||
"dateTime": "2026.06.30-22.37.31",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlProfileContinuityParity",
|
||||
"fullTestPath": "HyperTwist.Browser.TrainingPanel.ControlProfileContinuityParity",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.25921639800071716,
|
||||
"dateTime": "2026.06.30-22.37.31",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlProfileRosterInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.TrainingPanel.ControlProfileRosterInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.12610380351543427,
|
||||
"dateTime": "2026.06.30-22.37.32",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlSettingsOwnershipInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.TrainingPanel.ControlSettingsOwnershipInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.96445262432098389,
|
||||
"dateTime": "2026.06.30-22.37.32",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "RuntimeInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.TrainingPanel.RuntimeInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.016324199736118317,
|
||||
"dateTime": "2026.06.30-22.37.33",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "AuthoritativeShellArtifacts",
|
||||
"fullTestPath": "HyperTwist.Browser.Widget.AuthoritativeShellArtifacts",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.016057197004556656,
|
||||
"dateTime": "2026.06.30-22.37.33",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "BundledShellUrl",
|
||||
"fullTestPath": "HyperTwist.Browser.Widget.BundledShellUrl",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.016535300761461258,
|
||||
"dateTime": "2026.06.30-22.37.33",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "OperatorStatusSurfaceLive",
|
||||
"fullTestPath": "HyperTwist.Browser.Widget.OperatorStatusSurfaceLive",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.016621701419353485,
|
||||
"dateTime": "2026.06.30-22.37.33",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "OperatorStatusSurfaceResetOnShellChange",
|
||||
"fullTestPath": "HyperTwist.Browser.Widget.OperatorStatusSurfaceResetOnShellChange",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.016673099249601364,
|
||||
"dateTime": "2026.06.30-22.37.33",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "OperatorStatusSurfaceWaiting",
|
||||
"fullTestPath": "HyperTwist.Browser.Widget.OperatorStatusSurfaceWaiting",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.015180099755525589,
|
||||
"dateTime": "2026.06.30-22.37.33",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "QueuedOutboundMessages",
|
||||
"fullTestPath": "HyperTwist.Browser.Widget.QueuedOutboundMessages",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.01636119931936264,
|
||||
"dateTime": "2026.06.30-22.37.33",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "StatusSurfaceArtifacts",
|
||||
"fullTestPath": "HyperTwist.Browser.Widget.StatusSurfaceArtifacts",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.015504103153944016,
|
||||
"dateTime": "2026.06.30-22.37.33",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlInputContinuityStateFormatting",
|
||||
"fullTestPath": "HyperTwist.Browser.ControlInputContinuityStateFormatting",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.016568697988986969,
|
||||
"dateTime": "2026.06.30-22.37.33",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlProfileContinuityStateFormatting",
|
||||
"fullTestPath": "HyperTwist.Browser.ControlProfileContinuityStateFormatting",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.015964202582836151,
|
||||
"dateTime": "2026.06.30-22.37.33",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlSettingsContinuityStateFormatting",
|
||||
"fullTestPath": "HyperTwist.Browser.ControlSettingsContinuityStateFormatting",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"CB01B5594B738A3EB566D09397472D76"
|
||||
],
|
||||
"duration": 0.017481900751590729,
|
||||
"dateTime": "2026.06.30-22.37.33",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,419 @@
|
|||
{
|
||||
"devices": [
|
||||
{
|
||||
"deviceName": "DESKTOP-KS3VGHU",
|
||||
"instance": "0AA31F0E46740A2E2A01E3BED13832AD",
|
||||
"instanceName": "DESKTOP-KS3VGHU-7384",
|
||||
"platform": "WindowsEditor",
|
||||
"oSVersion": "Windows 11 (23H2) [10.0.22631.4037] ",
|
||||
"model": "Default",
|
||||
"gPU": "GenericGPUBrand",
|
||||
"cPUModel": "12th Gen Intel(R) Core(TM) i7-12700H",
|
||||
"rAMInGB": 16,
|
||||
"renderMode": "SM6",
|
||||
"rHI": "",
|
||||
"appInstanceLog": ""
|
||||
}
|
||||
],
|
||||
"reportCreatedOn": "2026.06.30-22.07.31",
|
||||
"succeeded": 26,
|
||||
"succeededWithWarnings": 0,
|
||||
"failed": 0,
|
||||
"notRun": 0,
|
||||
"inProcess": 0,
|
||||
"totalDuration": 17.35059928894043,
|
||||
"comparisonExported": false,
|
||||
"comparisonExportDirectory": "",
|
||||
"tests": [
|
||||
{
|
||||
"testDisplayName": "NotificationCapture",
|
||||
"fullTestPath": "HyperTwist.Browser.Bridge.NotificationCapture",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.016310598701238632,
|
||||
"dateTime": "2026.06.30-22.07.08",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "RuntimeReadyDelegate",
|
||||
"fullTestPath": "HyperTwist.Browser.Bridge.RuntimeReadyDelegate",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.016536802053451538,
|
||||
"dateTime": "2026.06.30-22.07.08",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "RuntimeReadyPayloadDecode",
|
||||
"fullTestPath": "HyperTwist.Browser.Bridge.RuntimeReadyPayloadDecode",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.016871500760316849,
|
||||
"dateTime": "2026.06.30-22.07.08",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "RuntimeStatusEnvelopeDecode",
|
||||
"fullTestPath": "HyperTwist.Browser.Bridge.RuntimeStatusEnvelopeDecode",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.01631850004196167,
|
||||
"dateTime": "2026.06.30-22.07.08",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "TilingStateEnvelopeDecode",
|
||||
"fullTestPath": "HyperTwist.Browser.Bridge.TilingStateEnvelopeDecode",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.016465499997138977,
|
||||
"dateTime": "2026.06.30-22.07.08",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlInputReadinessInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.CoachDashboard.ControlInputReadinessInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.5846174955368042,
|
||||
"dateTime": "2026.06.30-22.07.08",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlProfileContinuityArtifacts",
|
||||
"fullTestPath": "HyperTwist.Browser.CoachDashboard.ControlProfileContinuityArtifacts",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.84562957286834717,
|
||||
"dateTime": "2026.06.30-22.07.09",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlProfileRosterInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.CoachDashboard.ControlProfileRosterInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.51417040824890137,
|
||||
"dateTime": "2026.06.30-22.07.10",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlSettingsOwnershipInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.CoachDashboard.ControlSettingsOwnershipInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 1.0403076410293579,
|
||||
"dateTime": "2026.06.30-22.07.15",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlSurfaceStructuredTextArtifacts",
|
||||
"fullTestPath": "HyperTwist.Browser.CoachDashboard.ControlSurfaceStructuredTextArtifacts",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 12.62702465057373,
|
||||
"dateTime": "2026.06.30-22.07.16",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "RuntimeInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.CoachDashboard.RuntimeInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.45001870393753052,
|
||||
"dateTime": "2026.06.30-22.07.28",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlInputReadinessInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.TrainingPanel.ControlInputReadinessInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.22110320627689362,
|
||||
"dateTime": "2026.06.30-22.07.29",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlProfileContinuityParity",
|
||||
"fullTestPath": "HyperTwist.Browser.TrainingPanel.ControlProfileContinuityParity",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.12378060072660446,
|
||||
"dateTime": "2026.06.30-22.07.29",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlProfileRosterInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.TrainingPanel.ControlProfileRosterInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.052301902323961258,
|
||||
"dateTime": "2026.06.30-22.07.29",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlSettingsOwnershipInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.TrainingPanel.ControlSettingsOwnershipInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.62891197204589844,
|
||||
"dateTime": "2026.06.30-22.07.29",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "RuntimeInspectSurface",
|
||||
"fullTestPath": "HyperTwist.Browser.TrainingPanel.RuntimeInspectSurface",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.016043398529291153,
|
||||
"dateTime": "2026.06.30-22.07.30",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "AuthoritativeShellArtifacts",
|
||||
"fullTestPath": "HyperTwist.Browser.Widget.AuthoritativeShellArtifacts",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.016895398497581482,
|
||||
"dateTime": "2026.06.30-22.07.30",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "BundledShellUrl",
|
||||
"fullTestPath": "HyperTwist.Browser.Widget.BundledShellUrl",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.016039799898862839,
|
||||
"dateTime": "2026.06.30-22.07.30",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "OperatorStatusSurfaceLive",
|
||||
"fullTestPath": "HyperTwist.Browser.Widget.OperatorStatusSurfaceLive",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.016507796943187714,
|
||||
"dateTime": "2026.06.30-22.07.30",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "OperatorStatusSurfaceResetOnShellChange",
|
||||
"fullTestPath": "HyperTwist.Browser.Widget.OperatorStatusSurfaceResetOnShellChange",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.016129400581121445,
|
||||
"dateTime": "2026.06.30-22.07.30",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "OperatorStatusSurfaceWaiting",
|
||||
"fullTestPath": "HyperTwist.Browser.Widget.OperatorStatusSurfaceWaiting",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.016162998974323273,
|
||||
"dateTime": "2026.06.30-22.07.30",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "QueuedOutboundMessages",
|
||||
"fullTestPath": "HyperTwist.Browser.Widget.QueuedOutboundMessages",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.015451699495315552,
|
||||
"dateTime": "2026.06.30-22.07.30",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "StatusSurfaceArtifacts",
|
||||
"fullTestPath": "HyperTwist.Browser.Widget.StatusSurfaceArtifacts",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.016372699290513992,
|
||||
"dateTime": "2026.06.30-22.07.30",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlInputContinuityStateFormatting",
|
||||
"fullTestPath": "HyperTwist.Browser.ControlInputContinuityStateFormatting",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.016020897775888443,
|
||||
"dateTime": "2026.06.30-22.07.30",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlProfileContinuityStateFormatting",
|
||||
"fullTestPath": "HyperTwist.Browser.ControlProfileContinuityStateFormatting",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.018849499523639679,
|
||||
"dateTime": "2026.06.30-22.07.30",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
},
|
||||
{
|
||||
"testDisplayName": "ControlSettingsContinuityStateFormatting",
|
||||
"fullTestPath": "HyperTwist.Browser.ControlSettingsContinuityStateFormatting",
|
||||
"tags": [],
|
||||
"state": "Success",
|
||||
"deviceInstance": [
|
||||
"0AA31F0E46740A2E2A01E3BED13832AD"
|
||||
],
|
||||
"duration": 0.01575860008597374,
|
||||
"dateTime": "2026.06.30-22.07.31",
|
||||
"entries": [],
|
||||
"warnings": 0,
|
||||
"errors": 0,
|
||||
"artifacts": []
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,8 +1,8 @@
|
|||
{
|
||||
"reportVersion": "ht-higher-dimensional-package-validation/v1",
|
||||
"generatedAtUtc": "2026-06-30T10:45:24.1772955Z",
|
||||
"projectRoot": "C:\\HTpp",
|
||||
"archiveDirectory": "C:\\HTpp_packaged_phase6c_higherdim_refresh_20260630",
|
||||
"generatedAtUtc": "2026-06-30T22:37:40.2738982Z",
|
||||
"projectRoot": "C:\\HyperTwist_worktrees\\phase10validate",
|
||||
"archiveDirectory": "C:\\HyperTwist_worktrees\\phase10validate_packaged_phase6c_higherdim_refresh_20260630dualbuildtruth",
|
||||
"configuration": "Development",
|
||||
"cookMaps": [
|
||||
"/Game/HyperTwistTraining/Maps/L_HyperTwist_Magic120CellTraining",
|
||||
|
|
@ -17,10 +17,15 @@
|
|||
"-SkipCookingEditorContent"
|
||||
],
|
||||
"cleanArchive": false,
|
||||
"skipBuild": false,
|
||||
"skipBuild": true,
|
||||
"prePackageEditorBuild": {
|
||||
"lane": "Windows Unreal editor build",
|
||||
"performed": true,
|
||||
"result": "passed"
|
||||
},
|
||||
"skipLaunch": false,
|
||||
"authoringManifest": {
|
||||
"path": "C:\\HTpp\\docs\\generated\\higher_dimensional_training_maps\\phase6c_dedicated_family_map_manifest.json",
|
||||
"path": "C:\\HyperTwist_worktrees\\phase10validate\\docs\\generated\\higher_dimensional_training_maps\\phase6c_dedicated_family_map_manifest.json",
|
||||
"manifestId": "phase6c/dedicated-family-training-map-authoring",
|
||||
"manifestVersion": "2026.06.18",
|
||||
"authoredThroughGameModeClassPath": "/Script/UnrealHyperTwist.HyperTwistCoachDashboardGameMode",
|
||||
|
|
@ -50,13 +55,13 @@
|
|||
]
|
||||
},
|
||||
"result": "passed",
|
||||
"packagedExecutablePath": "C:\\HTpp_packaged_phase6c_higherdim_refresh_20260630\\Windows\\UnrealHyperTwist.exe",
|
||||
"packagedExecutablePath": "C:\\HyperTwist_worktrees\\phase10validate_packaged_phase6c_higherdim_refresh_20260630dualbuildtruth\\Windows\\UnrealHyperTwist.exe",
|
||||
"smokeReports": [
|
||||
{
|
||||
"reportVersion": "ht-higher-dimensional-package-smoke/v1",
|
||||
"generatedAtUtc": "2026-06-30T11:39:15.0336201Z",
|
||||
"packageRoot": "C:\\HTpp_packaged_phase6c_higherdim_refresh_20260630",
|
||||
"executablePath": "C:\\HTpp_packaged_phase6c_higherdim_refresh_20260630\\Windows\\UnrealHyperTwist.exe",
|
||||
"generatedAtUtc": "2026-06-30T22:40:06.2800637Z",
|
||||
"packageRoot": "C:\\HyperTwist_worktrees\\phase10validate_packaged_phase6c_higherdim_refresh_20260630dualbuildtruth",
|
||||
"executablePath": "C:\\HyperTwist_worktrees\\phase10validate_packaged_phase6c_higherdim_refresh_20260630dualbuildtruth\\Windows\\UnrealHyperTwist.exe",
|
||||
"mapUrl": "/Game/HyperTwistTraining/Maps/L_HyperTwist_Magic120CellTraining",
|
||||
"smokeSeconds": 10,
|
||||
"resolution": {
|
||||
|
|
@ -65,16 +70,16 @@
|
|||
},
|
||||
"keepRunning": false,
|
||||
"result": "passed",
|
||||
"processId": 34020,
|
||||
"processId": 36088,
|
||||
"processStopped": true,
|
||||
"exitCode": null,
|
||||
"error": null
|
||||
},
|
||||
{
|
||||
"reportVersion": "ht-higher-dimensional-package-smoke/v1",
|
||||
"generatedAtUtc": "2026-06-30T11:39:25.7497608Z",
|
||||
"packageRoot": "C:\\HTpp_packaged_phase6c_higherdim_refresh_20260630",
|
||||
"executablePath": "C:\\HTpp_packaged_phase6c_higherdim_refresh_20260630\\Windows\\UnrealHyperTwist.exe",
|
||||
"generatedAtUtc": "2026-06-30T22:40:17.1538107Z",
|
||||
"packageRoot": "C:\\HyperTwist_worktrees\\phase10validate_packaged_phase6c_higherdim_refresh_20260630dualbuildtruth",
|
||||
"executablePath": "C:\\HyperTwist_worktrees\\phase10validate_packaged_phase6c_higherdim_refresh_20260630dualbuildtruth\\Windows\\UnrealHyperTwist.exe",
|
||||
"mapUrl": "/Game/HyperTwistTraining/Maps/L_HyperTwist_MagicCube5DTraining",
|
||||
"smokeSeconds": 10,
|
||||
"resolution": {
|
||||
|
|
@ -83,7 +88,7 @@
|
|||
},
|
||||
"keepRunning": false,
|
||||
"result": "passed",
|
||||
"processId": 34908,
|
||||
"processId": 34680,
|
||||
"processStopped": true,
|
||||
"exitCode": null,
|
||||
"error": null
|
||||
|
|
|
|||
|
|
@ -240,6 +240,14 @@ Live follow-up on `2026-06-30` established these additional facts:
|
|||
and the public summary was re-rendered into
|
||||
`website/src/shared/generated/windows-package-validation-summary.json`
|
||||
with truthful `skip_build: false`
|
||||
- later same-day maintained-root recovery then proved the inverse-but-still
|
||||
truthful packet shape on the primary root:
|
||||
- the exact-source wrapper again passed a fresh editor build first
|
||||
- the higher-dimensional package helper then legitimately reused the
|
||||
existing packaged-game receipt
|
||||
- the aggregate report and public summary therefore now need to carry both
|
||||
truths rather than overloading one `skip_build` field to mean the entire
|
||||
proof packet did or did not rebuild
|
||||
- `scripts/run-hypertwist-remote-unreal-automation.sh` now also treats the
|
||||
exported automation report itself as authority, not only the
|
||||
`UnrealEditor-Cmd` process exit:
|
||||
|
|
@ -824,3 +832,61 @@ If any of these change:
|
|||
- auth posture
|
||||
|
||||
update this note and the linked governing docs in the same turn.
|
||||
|
||||
## Addendum - 2026-06-30 (maintained exact-source recovery closed on the live root)
|
||||
|
||||
Later same-day follow-up on `2026-06-30` established these additional facts:
|
||||
|
||||
- the primary reverse-SSH tunnel on `localhost:22022` remained healthy for the
|
||||
maintained-lane recovery itself; fallback root `C:\HTpp` was no longer the
|
||||
latest authority once the live host state was repaired
|
||||
- the maintained Windows validation root remained
|
||||
`C:\HyperTwist_worktrees\phase10validate`
|
||||
- the earlier host-side lock on
|
||||
`HyperTwistTrainingRepositoryLibrary.cpp` was traced to stale Windows-side
|
||||
remote-sync writer trees still holding the file open; after stopping only
|
||||
those stale writer processes, a bounded exclusive-open retest on the same
|
||||
path succeeded
|
||||
- the current exact-source continuation then repaired a real local compile seam
|
||||
in `HyperTwistTrainingRepositoryLibrary.cpp` by scoping the
|
||||
`Completed` queue-summary branch correctly and replacing the deprecated
|
||||
`RightChopInline(..., false)` overload with `EAllowShrinking::No`
|
||||
- the same maintained root then exposed a truthful parity miss rather than a
|
||||
source failure: it lacked the split coach-repository ownership files
|
||||
`HyperTwistTrainingRepositoryLibraryCoachWorkflow.cpp` and
|
||||
`HyperTwistTrainingRepositoryLibraryCoachSummaries.cpp`
|
||||
- the repo-local wrapper
|
||||
`scripts/run-hypertwist-remote-exact-source-browser-package-refresh.sh` now
|
||||
carries that current bounded training-repository ownership set in its default
|
||||
exact-source sync list, so future maintained-lane refreshes do not rely on
|
||||
ad hoc manual `--sync-file` recovery for this family
|
||||
- after that maintained-root parity repair, the same exact-source wrapper
|
||||
completed end-to-end on `C:\HyperTwist_worktrees\phase10validate` with:
|
||||
- editor build `Result: Succeeded`
|
||||
- pulled browser report
|
||||
`docs/generated/browser_automation/Browser-ExactSource-20260630maintained/index.json`
|
||||
- `26` browser tests succeeded
|
||||
- `0` failed
|
||||
- `0` not run
|
||||
- `0` in process
|
||||
- refreshed higher-dimensional package proof pulled back into
|
||||
`docs/generated/higher_dimensional_training_maps/phase6c_dedicated_family_package_validation_report.json`
|
||||
- refreshed public summary re-rendered into
|
||||
`website/src/shared/generated/windows-package-validation-summary.json`
|
||||
- the maintained higher-dimensional package refresh archive was written to:
|
||||
`C:\HyperTwist_worktrees\phase10validate_packaged_phase6c_higherdim_refresh_20260630maintained`
|
||||
- packaged smoke validation succeeded again for both dedicated-family maps on
|
||||
that maintained package set:
|
||||
- `/Game/HyperTwistTraining/Maps/L_HyperTwist_Magic120CellTraining`
|
||||
- `/Game/HyperTwistTraining/Maps/L_HyperTwist_MagicCube5DTraining`
|
||||
|
||||
Operational reading after this follow-up:
|
||||
|
||||
- the live maintained `phase10validate` root is again the latest exact-source
|
||||
authority for build, browser automation, and higher-dimensional package
|
||||
proof
|
||||
- the earlier `C:\HTpp` fallback proof remains valid historical evidence, but
|
||||
it is no longer the newest same-day authority for this lane
|
||||
- when a maintained-root failure shifts from host lock to missing split source
|
||||
ownership, prefer bounded hash-verified file sync and same-root rerun over
|
||||
reopening a broader fallback narrative
|
||||
|
|
|
|||
|
|
@ -260,6 +260,15 @@ maintained-root `-SkipBuild` helper proof into bounded exact-source fallback
|
|||
proof when a live Windows host lock temporarily makes the maintained root
|
||||
unusable.
|
||||
|
||||
Later same-day maintained-root recovery then tightened the public reading
|
||||
again: when the exact-source wrapper can once more run a fresh editor build on
|
||||
`C:\HyperTwist_worktrees\phase10validate` and the maintained package helper
|
||||
then legitimately reuses the existing packaged-game receipt, the public summary
|
||||
must present both truths instead of flattening the packet back down to one
|
||||
`skip_build` boolean. The authoritative package report therefore now carries
|
||||
both the package-helper `skipBuild` state and the surrounding
|
||||
`prePackageEditorBuild` result for the same proof packet.
|
||||
|
||||
Further `2026-06-13` continuation proof on that same primary lane recovered
|
||||
the classic-cube replay/leaderboard/package slice after a corrupted reverse
|
||||
sync incident: a prior aborted broad tar sync left remote
|
||||
|
|
@ -536,3 +545,48 @@ This requirement must stay aligned with these docs:
|
|||
|
||||
If this doctrine changes, update those references in the same turn so the rule
|
||||
does not drop out of working memory again.
|
||||
|
||||
## Addendum - 2026-06-30 (maintained exact-source recovery closed on the live root)
|
||||
|
||||
Later same-day follow-up on `2026-06-30` then closed the maintained-root
|
||||
recovery on the live primary lane itself rather than only on the temporary
|
||||
fallback root. The current primary reverse-SSH lane on `localhost:22022`
|
||||
remained healthy, the maintained Windows validation root stayed
|
||||
`C:\HyperTwist_worktrees\phase10validate`, and the earlier
|
||||
`HyperTwistTrainingRepositoryLibrary.cpp` source lock was resolved by stopping
|
||||
only the stale remote-sync writer trees that still held that file open. After
|
||||
that host-state repair, the same maintained root exposed two truthful source
|
||||
parity issues that were then repaired in-bounds: a real local compile seam in
|
||||
the `Completed` queue-summary branch of
|
||||
`HyperTwistTrainingRepositoryLibrary.cpp`, and a missing maintained-root copy
|
||||
of the split coach-repository ownership files
|
||||
`HyperTwistTrainingRepositoryLibraryCoachWorkflow.cpp` and
|
||||
`HyperTwistTrainingRepositoryLibraryCoachSummaries.cpp`.
|
||||
|
||||
The maintained-lane exact-source wrapper
|
||||
`scripts/run-hypertwist-remote-exact-source-browser-package-refresh.sh` now
|
||||
syncs that bounded training-repository ownership set by default alongside the
|
||||
browser/package support surfaces it already carried, so future maintained-root
|
||||
exact-source reruns do not depend on ad hoc manual `--sync-file` recovery for
|
||||
this current family. With that recovery in place, the same maintained root
|
||||
then completed the full exact-source validation packet cleanly:
|
||||
|
||||
- editor build `Result: Succeeded`
|
||||
- pulled browser report
|
||||
`docs/generated/browser_automation/Browser-ExactSource-20260630maintained/index.json`
|
||||
with `26` succeeded, `0` failed, `0` not run, and `0` in process
|
||||
- refreshed higher-dimensional package proof pulled into
|
||||
`docs/generated/higher_dimensional_training_maps/phase6c_dedicated_family_package_validation_report.json`
|
||||
- refreshed public release summary re-rendered into
|
||||
`website/src/shared/generated/windows-package-validation-summary.json`
|
||||
- maintained package archive written to
|
||||
`C:\HyperTwist_worktrees\phase10validate_packaged_phase6c_higherdim_refresh_20260630maintained`
|
||||
- packaged smoke launch succeeded again for both dedicated-family maps:
|
||||
`/Game/HyperTwistTraining/Maps/L_HyperTwist_Magic120CellTraining` and
|
||||
`/Game/HyperTwistTraining/Maps/L_HyperTwist_MagicCube5DTraining`
|
||||
|
||||
This extends the doctrine from fallback-root recovery proof into fully
|
||||
recovered maintained-root exact-source proof on the same live primary reverse-SSH
|
||||
lane. The truthful current reading is that `C:\HTpp` remains historical
|
||||
fallback evidence, while `C:\HyperTwist_worktrees\phase10validate` is again
|
||||
the latest maintained authority for this browser plus package validation lane.
|
||||
|
|
|
|||
|
|
@ -259,6 +259,38 @@ Later same-family refactor-tool ownership continuation on `2026-06-30`:
|
|||
|
||||
Latest same-day follow-up later on `2026-06-24`:
|
||||
|
||||
Current maintained Windows exact-source recovery truth after the
|
||||
`2026-06-30` continuation:
|
||||
|
||||
- `scripts/run-hypertwist-remote-exact-source-browser-package-refresh.sh`
|
||||
now syncs the current bounded coach-repository ownership source set by
|
||||
default in addition to the browser/package support files:
|
||||
- `HyperTwistTrainingRepositoryLibrary.cpp`
|
||||
- `HyperTwistTrainingRepositoryLibraryInternal.h`
|
||||
- `HyperTwistTrainingRepositoryLibraryCoachPolicies.cpp`
|
||||
- `HyperTwistTrainingRepositoryLibraryCoachWorkflow.cpp`
|
||||
- `HyperTwistTrainingRepositoryLibraryCoachSummaries.cpp`
|
||||
- that hardening exists because the maintained Windows validation root
|
||||
`C:\HyperTwist_worktrees\phase10validate` had a real same-day parity miss
|
||||
after a host-lock recovery: the editor build on the live maintained root
|
||||
was healthy again only after those split training-repository ownership files
|
||||
were hash-synced back into place
|
||||
- the current maintained-root exact-source packet is now green again end to
|
||||
end:
|
||||
- editor build succeeded
|
||||
- `docs/generated/browser_automation/Browser-ExactSource-20260630maintained/index.json`
|
||||
records `26` succeeded and `0` failed
|
||||
- the refreshed higher-dimensional package report was pulled back into
|
||||
`docs/generated/higher_dimensional_training_maps/phase6c_dedicated_family_package_validation_report.json`
|
||||
- the public/browser release summary was re-rendered into
|
||||
`website/src/shared/generated/windows-package-validation-summary.json`
|
||||
- packaged smoke launch succeeded for both dedicated-family higher-dimensional
|
||||
maps from the maintained archive
|
||||
`C:\HyperTwist_worktrees\phase10validate_packaged_phase6c_higherdim_refresh_20260630maintained`
|
||||
- operationally, prefer the maintained `phase10validate` root again for this
|
||||
lane; the earlier `C:\HTpp` fallback proof remains valid history but is not
|
||||
the latest same-day authority after the maintained-root recovery closed
|
||||
|
||||
- the shared product-surface authority matrix landed across the homepage,
|
||||
feature atlas, public docs, and protected dashboard without widening product
|
||||
claims
|
||||
|
|
@ -2530,11 +2562,21 @@ Latest same-family responsive public-route expansion follow-up on `2026-06-29`:
|
|||
- the public packaged-proof bridge was then rerendered from that exact-source
|
||||
package report again:
|
||||
- `website/src/shared/generated/windows-package-validation-summary.json`
|
||||
- truthful posture now shows `skip_build: false`
|
||||
- truthful fallback-root posture at that moment showed `skip_build: false`
|
||||
- the related public marketing proof was hardened so website tests accept the
|
||||
two truthful packaged-build modes instead of assuming only one:
|
||||
- existing target receipt reused
|
||||
two truthful package-helper modes instead of assuming only one:
|
||||
- existing packaged-game target receipt reused
|
||||
- full package build
|
||||
- the later same-day maintained-root rerun then tightened that public proof
|
||||
again without regressing honesty:
|
||||
- the exact-source packet passed a fresh editor build first
|
||||
- the maintained higher-dimensional package helper then legitimately reused
|
||||
the packaged-game target receipt
|
||||
- the generated report and the website-facing packaged-validation summary now
|
||||
carry both truths through `prePackageEditorBuild` /
|
||||
`pre_package_editor_build` plus the helper-level `skipBuild` /
|
||||
`skip_build` state instead of flattening the whole packet into one build
|
||||
flag
|
||||
- the same repo state then reran the full owned web-surface gate green:
|
||||
- `scripts/run-hypertwist-web-surface-validation.sh`
|
||||
- focused website route/auth/release validation:
|
||||
|
|
@ -3304,3 +3346,27 @@ Later same-day recommendation-history micro-follow-up (`2026-06-30`):
|
|||
- keep draining the same recommendation-history function, especially the
|
||||
remaining lane-conditioned outcome branches near the top of that block,
|
||||
before widening into unrelated website or XR work
|
||||
|
||||
## Latest public legal/distribution manual continuity follow-up (`2026-06-30`)
|
||||
|
||||
- the next same-family continuation stayed inside the first-party
|
||||
`website/` public manual lane instead of reopening native scope:
|
||||
- `website/src/pages/public-pages-commerce.tsx`
|
||||
- `website/src/__tests__/public-marketing-pages.test.tsx`
|
||||
- `OpenSourceNoticesPage` now also carries:
|
||||
- the shared browser-versus-desktop reality section
|
||||
- a live current-surface authority map
|
||||
- the same offline operator-manual continuity already present on stronger
|
||||
brochure/manual routes
|
||||
- `ShippingPaymentPage` now also carries:
|
||||
- the shared auth-method lineup
|
||||
- the same current-surface authority map
|
||||
- the same offline operator-manual continuity
|
||||
- current truthful reading after this continuity pass:
|
||||
- the deeper legal/distribution routes no longer fall back to a materially
|
||||
thinner shell than homepage, pricing, download, docs, and resources
|
||||
- the public operator manual now stays more coherent when operators move from
|
||||
brochure pages into notices or payment/delivery follow-through
|
||||
- focused validation stayed green under:
|
||||
- `npm --prefix website test -- --run src/__tests__/public-marketing-pages.test.tsx`
|
||||
- `npm --prefix website run type-check`
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -14,6 +14,9 @@ param(
|
|||
[string]$ValidationReportPath = '',
|
||||
[switch]$CleanArchive,
|
||||
[switch]$SkipBuild,
|
||||
[switch]$PrePackageEditorBuildPerformed,
|
||||
[ValidateSet('not-run', 'passed')]
|
||||
[string]$PrePackageEditorBuildResult = 'not-run',
|
||||
[switch]$SkipLaunch
|
||||
)
|
||||
|
||||
|
|
@ -217,6 +220,16 @@ if ($SkipBuild -and -not (Test-Path $GameTargetReceiptPath))
|
|||
throw "SkipBuild was requested, but the packaged-game target receipt was not found at '$GameTargetReceiptPath'. Re-run without -SkipBuild so RunUAT can build the Win64 game target."
|
||||
}
|
||||
|
||||
if ($PrePackageEditorBuildPerformed -and $PrePackageEditorBuildResult -ne 'passed')
|
||||
{
|
||||
throw "PrePackageEditorBuildPerformed was set, but PrePackageEditorBuildResult was '$PrePackageEditorBuildResult' instead of 'passed'."
|
||||
}
|
||||
|
||||
if (-not $PrePackageEditorBuildPerformed -and $PrePackageEditorBuildResult -eq 'passed')
|
||||
{
|
||||
throw "PrePackageEditorBuildResult was 'passed', but PrePackageEditorBuildPerformed was not set."
|
||||
}
|
||||
|
||||
if ($CleanArchive -and (Test-Path $ArchiveDirectory))
|
||||
{
|
||||
Remove-Item -LiteralPath $ArchiveDirectory -Recurse -Force
|
||||
|
|
@ -271,6 +284,11 @@ $ValidationReport = [ordered]@{
|
|||
additionalCookerOptions = @($ResolvedAdditionalCookerOptions)
|
||||
cleanArchive = [bool]$CleanArchive
|
||||
skipBuild = [bool]$SkipBuild
|
||||
prePackageEditorBuild = [ordered]@{
|
||||
lane = 'Windows Unreal editor build'
|
||||
performed = [bool]$PrePackageEditorBuildPerformed
|
||||
result = $PrePackageEditorBuildResult
|
||||
}
|
||||
skipLaunch = [bool]$SkipLaunch
|
||||
authoringManifest = [ordered]@{
|
||||
path = $AuthoringManifestPath
|
||||
|
|
|
|||
|
|
@ -42,6 +42,28 @@ function assertBoolean(value, label) {
|
|||
return value
|
||||
}
|
||||
|
||||
function normalizePrePackageEditorBuild(value) {
|
||||
if (value == null) {
|
||||
return null
|
||||
}
|
||||
|
||||
if (typeof value !== 'object') {
|
||||
throw new Error('prePackageEditorBuild must be an object when present.')
|
||||
}
|
||||
|
||||
const lane = assertString(value.lane, 'prePackageEditorBuild.lane')
|
||||
const performed = assertBoolean(value.performed, 'prePackageEditorBuild.performed')
|
||||
if (value.result !== 'passed' && value.result !== 'not-run') {
|
||||
throw new Error('prePackageEditorBuild.result must be "passed" or "not-run".')
|
||||
}
|
||||
|
||||
return {
|
||||
lane,
|
||||
performed,
|
||||
result: value.result,
|
||||
}
|
||||
}
|
||||
|
||||
function normalizeSmokeResult(value, label) {
|
||||
if (value === 'passed' || value === 'failed') {
|
||||
return value
|
||||
|
|
@ -58,6 +80,7 @@ function buildSummary(report) {
|
|||
const generatedAtUtc = assertString(report.generatedAtUtc, 'generatedAtUtc')
|
||||
const configuration = assertString(report.configuration, 'configuration')
|
||||
const skipBuild = assertBoolean(report.skipBuild, 'skipBuild')
|
||||
const prePackageEditorBuild = normalizePrePackageEditorBuild(report.prePackageEditorBuild)
|
||||
const result = normalizeSmokeResult(report.result, 'result')
|
||||
const validatedEntries = Array.isArray(report.authoringManifest?.validatedEntries)
|
||||
? report.authoringManifest.validatedEntries
|
||||
|
|
@ -89,6 +112,7 @@ function buildSummary(report) {
|
|||
generated_at: generatedAtUtc,
|
||||
configuration,
|
||||
skip_build: skipBuild,
|
||||
pre_package_editor_build: prePackageEditorBuild,
|
||||
smoke_map_count: smokeMaps.length,
|
||||
smoke_maps: smokeMaps,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -226,6 +226,11 @@ exact_source_support_files=(
|
|||
"scripts/Invoke-HyperTwistHigherDimensionalPackage.ps1"
|
||||
"scripts/Launch-HyperTwistHigherDimensionalPackage.ps1"
|
||||
"docs/generated/higher_dimensional_training_maps/phase6c_dedicated_family_map_manifest.json"
|
||||
"UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibrary.cpp"
|
||||
"UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibraryInternal.h"
|
||||
"UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibraryCoachPolicies.cpp"
|
||||
"UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibraryCoachWorkflow.cpp"
|
||||
"UnrealHyperTwist/Source/UnrealHyperTwist/Private/HyperTwistTraining/HyperTwistTrainingRepositoryLibraryCoachSummaries.cpp"
|
||||
)
|
||||
effective_sync_files=()
|
||||
|
||||
|
|
@ -259,6 +264,8 @@ run_refresh_for_root() {
|
|||
local current_package_archive_dir="$package_archive_dir"
|
||||
local current_game_target_receipt_path="${current_worktree_root}\\UnrealHyperTwist\\Binaries\\Win64\\UnrealHyperTwist.target"
|
||||
local package_skip_build_clause=""
|
||||
local pre_package_editor_build_ps_bool='$false'
|
||||
local pre_package_editor_build_result='not-run'
|
||||
local step_exit=0
|
||||
|
||||
if [[ "$current_worktree_root" != "$worktree_root" && "$package_archive_dir" == "${worktree_root}_packaged_phase6c_higherdim_refresh_${report_stamp}" ]]; then
|
||||
|
|
@ -292,6 +299,8 @@ run_refresh_for_root() {
|
|||
if [[ "$skip_build" != "true" ]]; then
|
||||
echo "Running remote Unreal editor build."
|
||||
if run_or_print "$remote_build_wrapper" --worktree-root "$current_worktree_root"; then
|
||||
pre_package_editor_build_ps_bool='$true'
|
||||
pre_package_editor_build_result='passed'
|
||||
:
|
||||
else
|
||||
step_exit="$?"
|
||||
|
|
@ -343,10 +352,12 @@ run_refresh_for_root() {
|
|||
\$ArchiveDirectory = $(ps_single_quote "$current_package_archive_dir")
|
||||
\$PackageScriptPath = $(ps_single_quote "$current_package_script_path")
|
||||
\$ValidationReportPath = $(ps_single_quote "$current_validation_report_path")
|
||||
\$PrePackageEditorBuildPerformed = ${pre_package_editor_build_ps_bool}
|
||||
\$PrePackageEditorBuildResult = $(ps_single_quote "$pre_package_editor_build_result")
|
||||
if (-not (Test-Path -LiteralPath \$PackageScriptPath)) {
|
||||
throw "Higher-dimensional package script was not found at '\$PackageScriptPath'."
|
||||
}
|
||||
& \$PackageScriptPath -ProjectRoot \$ProjectRoot -ArchiveDirectory \$ArchiveDirectory -ValidationReportPath \$ValidationReportPath${package_skip_build_clause}
|
||||
& \$PackageScriptPath -ProjectRoot \$ProjectRoot -ArchiveDirectory \$ArchiveDirectory -ValidationReportPath \$ValidationReportPath -PrePackageEditorBuildPerformed:\$PrePackageEditorBuildPerformed -PrePackageEditorBuildResult \$PrePackageEditorBuildResult${package_skip_build_clause}
|
||||
exit \$LASTEXITCODE
|
||||
EOF
|
||||
)"
|
||||
|
|
|
|||
|
|
@ -647,6 +647,10 @@ Use the runtime-readiness command before public launch or deployment approval:
|
|||
rendered from
|
||||
`docs/generated/higher_dimensional_training_maps/phase6c_dedicated_family_package_validation_report.json`
|
||||
by `scripts/render-hypertwist-web-package-validation-summary.mjs`
|
||||
- that generated summary now carries both the package-helper `skip_build`
|
||||
posture and the surrounding same-packet `pre_package_editor_build` truth, so
|
||||
public download and release surfaces do not flatten a fresh editor rebuild
|
||||
plus receipt-reuse package proof into one misleading build label
|
||||
- the auth server can now also serve the built `website/dist` bundle directly for same-origin `hypertwist.app` deployment when that build output is present
|
||||
- the repo now also includes first-party same-origin `nginx` and `systemd`
|
||||
handoff templates under `website/deploy/`
|
||||
|
|
@ -714,6 +718,20 @@ now names the first concrete auth-health or billing-runtime blockers and a
|
|||
remaining-count summary, while the deeper `/launch-status` surfaces still carry
|
||||
the full blocker list.
|
||||
|
||||
The latest legal/distribution continuity follow-up on `2026-06-30` then also
|
||||
kept the deeper public commerce pages inside that same richer manual lane:
|
||||
|
||||
- `/open-source-notices` now also carries the shared browser-versus-desktop
|
||||
reality explanation, a live surface-authority map, and the same offline
|
||||
operator-manual continuity instead of acting like an isolated compliance stub
|
||||
- `/shipping-payment` now also carries the shared auth-method lineup, the same
|
||||
surface-authority map, and the same offline operator-manual continuity so the
|
||||
purchase/delivery lane does not fall back to a thinner shell than the
|
||||
homepage, pricing, and download routes
|
||||
- focused validation stayed green under:
|
||||
- `npm --prefix website test -- --run src/__tests__/public-marketing-pages.test.tsx`
|
||||
- `npm --prefix website run type-check`
|
||||
|
||||
The follow-on public-manual widening on `2026-06-22` then also passed:
|
||||
|
||||
- `npm run type-check`
|
||||
|
|
|
|||
|
|
@ -1174,7 +1174,7 @@ describe('public marketing pages', () => {
|
|||
expect(within(packagedProofSection as HTMLElement).getByText(/MagicCube5D dedicated-family training map: passed/i)).toBeTruthy()
|
||||
expect(
|
||||
within(packagedProofSection as HTMLElement).getByText(
|
||||
/Build step during latest proof: (skipped and reused existing target receipt|full package build)/i
|
||||
/Package helper build mode: (reused the existing packaged-game target receipt|ran a full package build)/i
|
||||
)
|
||||
).toBeTruthy()
|
||||
expect(screen.getAllByText('Support topic quick routes').length).toBeGreaterThan(0)
|
||||
|
|
@ -1966,6 +1966,8 @@ describe('public marketing pages', () => {
|
|||
expect(within(noticesView.container).getByText('Choose the right HyperTwist surface')).toBeTruthy()
|
||||
expect(within(noticesView.container).getByText('Choose the next release move')).toBeTruthy()
|
||||
expect(within(noticesView.container).getByText('Need notices, corresponding source, or release follow-through?')).toBeTruthy()
|
||||
expect(within(noticesView.container).getByText('Current surface authority map')).toBeTruthy()
|
||||
expect(within(noticesView.container).getByText('Offline operator manual')).toBeTruthy()
|
||||
expect(within(noticesView.container).getByText('Current packaged desktop proof')).toBeTruthy()
|
||||
expect(within(noticesView.container).getByText('Packaged validation passed')).toBeTruthy()
|
||||
|
||||
|
|
@ -2006,6 +2008,8 @@ describe('public marketing pages', () => {
|
|||
expect(within(shippingPaymentView.container).getByText('Need plan selection, billing, or operator provisioning?')).toBeTruthy()
|
||||
expect(within(shippingPaymentView.container).getByText('Release references and source availability')).toBeTruthy()
|
||||
expect(within(shippingPaymentView.container).getByRole('link', { name: 'https://notes.hypertwist.app' })).toBeTruthy()
|
||||
expect(within(shippingPaymentView.container).getByText('Current surface authority map')).toBeTruthy()
|
||||
expect(within(shippingPaymentView.container).getByText('Offline operator manual')).toBeTruthy()
|
||||
expect(within(shippingPaymentView.container).getByText('Terms of access in practice')).toBeTruthy()
|
||||
expect(within(shippingPaymentView.container).getByText('Distribution doctrine')).toBeTruthy()
|
||||
expect(within(shippingPaymentView.container).getByText('Release and redistribution checklist')).toBeTruthy()
|
||||
|
|
|
|||
57
website/src/__tests__/release-validation-summary.test.tsx
Normal file
57
website/src/__tests__/release-validation-summary.test.tsx
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
import { render, screen } from '@testing-library/react'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
|
||||
import { ReleaseValidationSummary } from '../components/ui/ReleaseValidationSummary'
|
||||
|
||||
describe('ReleaseValidationSummary', () => {
|
||||
it('shows both the pre-package editor-build truth and the package-helper build mode when both are known', () => {
|
||||
render(
|
||||
<ReleaseValidationSummary
|
||||
platform={{
|
||||
platform_key: 'windows',
|
||||
platform: 'Windows',
|
||||
subtitle: 'Primary shipping lane',
|
||||
details: 'Current packaged validation is strongest on the Windows Unreal lane.',
|
||||
configured: true,
|
||||
channel: 'candidate',
|
||||
version: '1.0.0',
|
||||
build_id: 'win64-1000',
|
||||
published_at: '2026-06-30T22:07:38.3738154Z',
|
||||
file_name: 'HyperTwist-Windows.zip',
|
||||
file_size_bytes: 1048576,
|
||||
checksum_sha256: 'abc123',
|
||||
download_url: 'https://downloads.hypertwist.app/windows.zip',
|
||||
download_available: true,
|
||||
validation_summary: {
|
||||
lane: 'Windows Unreal packaged validation',
|
||||
result: 'passed',
|
||||
generated_at: '2026-06-30T22:07:38.3738154Z',
|
||||
configuration: 'Development',
|
||||
skip_build: true,
|
||||
pre_package_editor_build: {
|
||||
lane: 'Windows Unreal editor build',
|
||||
performed: true,
|
||||
result: 'passed',
|
||||
},
|
||||
smoke_map_count: 2,
|
||||
smoke_maps: [
|
||||
{
|
||||
map_url: '/Game/HyperTwistTraining/Maps/L_HyperTwist_Magic120CellTraining',
|
||||
label: 'Magic120Cell dedicated-family training map',
|
||||
result: 'passed',
|
||||
},
|
||||
{
|
||||
map_url: '/Game/HyperTwistTraining/Maps/L_HyperTwist_MagicCube5DTraining',
|
||||
label: 'MagicCube5D dedicated-family training map',
|
||||
result: 'passed',
|
||||
},
|
||||
],
|
||||
},
|
||||
}}
|
||||
/>,
|
||||
)
|
||||
|
||||
expect(screen.getByText(/Pre-package editor build in same proof packet: passed on the windows unreal editor build lane/i)).toBeTruthy()
|
||||
expect(screen.getByText(/Package helper build mode: reused the existing packaged-game target receipt/i)).toBeTruthy()
|
||||
})
|
||||
})
|
||||
|
|
@ -123,6 +123,11 @@ export interface ReleaseManifestPlatformPayload {
|
|||
generated_at: string
|
||||
configuration: string
|
||||
skip_build: boolean
|
||||
pre_package_editor_build?: {
|
||||
lane: string
|
||||
performed: boolean
|
||||
result: 'passed' | 'not-run'
|
||||
} | null
|
||||
smoke_map_count: number
|
||||
smoke_maps: Array<{
|
||||
map_url: string
|
||||
|
|
|
|||
|
|
@ -9,6 +9,10 @@ export function ReleaseValidationSummary({ platform }: { platform: ReleaseManife
|
|||
|
||||
const generatedAt = formatReleasePublishedAt(summary.generated_at) || summary.generated_at
|
||||
const resultLabel = summary.result === 'passed' ? 'Packaged validation passed' : 'Packaged validation needs attention'
|
||||
const prePackageEditorBuild = summary.pre_package_editor_build
|
||||
const packageBuildModeLabel = summary.skip_build
|
||||
? 'reused the existing packaged-game target receipt'
|
||||
: 'ran a full package build'
|
||||
|
||||
return (
|
||||
<div className="callout top-gap">
|
||||
|
|
@ -23,7 +27,15 @@ export function ReleaseValidationSummary({ platform }: { platform: ReleaseManife
|
|||
{map.label}: {map.result}
|
||||
</li>
|
||||
))}
|
||||
<li>Build step during latest proof: {summary.skip_build ? 'skipped and reused existing target receipt' : 'full package build'}</li>
|
||||
{prePackageEditorBuild ? (
|
||||
<li>
|
||||
Pre-package editor build in same proof packet:{' '}
|
||||
{prePackageEditorBuild.performed
|
||||
? `${prePackageEditorBuild.result} on the ${prePackageEditorBuild.lane.toLowerCase()} lane`
|
||||
: `not run on the ${prePackageEditorBuild.lane.toLowerCase()} lane`}
|
||||
</li>
|
||||
) : null}
|
||||
<li>Package helper build mode: {packageBuildModeLabel}</li>
|
||||
</ul>
|
||||
</div>
|
||||
)
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ import {
|
|||
operatorFallbackPlan,
|
||||
PlanActionLink,
|
||||
PublicPackagedDesktopProofSection,
|
||||
PublicManualRouteAtlasSection,
|
||||
PublicReleaseDecisionGuideSection,
|
||||
ReleaseAuthorityBundleSection,
|
||||
releaseCommerceFallback,
|
||||
|
|
@ -485,6 +486,18 @@ export function OpenSourceNoticesPage() {
|
|||
description="The notices lane should also say plainly whether the next honest move is protected desktop access, pricing/provisioning, browser/account continuity, or notices/source follow-through."
|
||||
/>
|
||||
|
||||
<BrowserDesktopRealitySection
|
||||
title="Why notices stay in the browser shell while execution stays native"
|
||||
description="Legal and corresponding-source follow-through belong to the public/protected browser surfaces even when the actual simulator remains a desktop-first runtime."
|
||||
/>
|
||||
|
||||
<Section
|
||||
title="Current surface authority map"
|
||||
description="Distribution and corresponding-source language stays safer when the live public, protected, embedded-browser, and native simulator boundaries remain explicit."
|
||||
>
|
||||
<ProductSurfaceMatrix rows={productSurfaceMatrixRows} />
|
||||
</Section>
|
||||
|
||||
<PublicPackagedDesktopProofSection
|
||||
platform={windowsValidationPlatform}
|
||||
actions={[
|
||||
|
|
@ -529,6 +542,16 @@ export function OpenSourceNoticesPage() {
|
|||
))}
|
||||
</div>
|
||||
</Section>
|
||||
|
||||
<PublicManualRouteAtlasSection
|
||||
title="Which public route should you open next?"
|
||||
description="The notices lane is part of the same operator manual family as the rest of the public site, so it should keep the strongest adjacent public routes visible instead of acting like an isolated compliance stub."
|
||||
limit={6}
|
||||
/>
|
||||
|
||||
<DownloadableOperatorManualSection
|
||||
description="The legal/distribution lane now also keeps the offline operator manual reachable so corresponding-source, rollout, download, and native-runtime boundary guidance can travel together."
|
||||
/>
|
||||
</MarketingShell>
|
||||
</>
|
||||
)
|
||||
|
|
@ -806,6 +829,15 @@ export function ShippingPaymentPage() {
|
|||
description="Shipping and payment posture is clearer when it also says whether the next honest move is protected desktop access, pricing/provisioning, browser/account continuity, or notices/source follow-through."
|
||||
/>
|
||||
|
||||
<BrowserAuthMethodsSection
|
||||
description="Payment and entitlement language is easier to trust when the current shared-auth sign-in lineup stays visible before protected release access and desktop provisioning."
|
||||
/>
|
||||
|
||||
<BrowserDesktopRealitySection
|
||||
title="Why checkout and entitlement stay on the web while training stays native"
|
||||
description="The commercial/browser shell owns access, billing, and release posture so the packaged simulator can remain focused on execution quality instead of becoming a confused storefront."
|
||||
/>
|
||||
|
||||
<Section
|
||||
title="Browser and desktop responsibilities"
|
||||
description="Shipping and payment surfaces should explain why checkout, entitlement, and release posture stay on the web while simulator execution stays native."
|
||||
|
|
@ -813,6 +845,13 @@ export function ShippingPaymentPage() {
|
|||
<DeliverySurfaceResponsibilitiesGrid />
|
||||
</Section>
|
||||
|
||||
<Section
|
||||
title="Current surface authority map"
|
||||
description="Digital-delivery pages stay stronger when the live public, protected, embedded-browser, and native simulator responsibilities are visible in one place."
|
||||
>
|
||||
<ProductSurfaceMatrix rows={productSurfaceMatrixRows} />
|
||||
</Section>
|
||||
|
||||
<PublicPackagedDesktopProofSection
|
||||
platform={windowsValidationPlatform}
|
||||
actions={[
|
||||
|
|
@ -881,6 +920,16 @@ export function ShippingPaymentPage() {
|
|||
))}
|
||||
</div>
|
||||
</Section>
|
||||
|
||||
<PublicManualRouteAtlasSection
|
||||
title="Which public route should you open next?"
|
||||
description="The shipping/payment lane now also keeps the strongest adjacent manual routes visible so checkout, launch posture, release notes, notices, and simulator onboarding remain one coherent product story."
|
||||
limit={6}
|
||||
/>
|
||||
|
||||
<DownloadableOperatorManualSection
|
||||
description="The delivery lane also keeps the offline operator manual attached so first-session setup, rollout posture, higher-dimensional runtime guidance, and browser-versus-desktop truth can accompany the purchase and download path."
|
||||
/>
|
||||
</MarketingShell>
|
||||
</>
|
||||
)
|
||||
|
|
|
|||
|
|
@ -1,9 +1,14 @@
|
|||
{
|
||||
"lane": "Windows Unreal packaged validation",
|
||||
"result": "passed",
|
||||
"generated_at": "2026-06-30T10:45:24.1772955Z",
|
||||
"generated_at": "2026-06-30T22:37:40.2738982Z",
|
||||
"configuration": "Development",
|
||||
"skip_build": false,
|
||||
"skip_build": true,
|
||||
"pre_package_editor_build": {
|
||||
"lane": "Windows Unreal editor build",
|
||||
"performed": true,
|
||||
"result": "passed"
|
||||
},
|
||||
"smoke_map_count": 2,
|
||||
"smoke_maps": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,12 +7,19 @@ export interface ReleasePlatformValidationSmokeMap {
|
|||
result: 'passed' | 'failed'
|
||||
}
|
||||
|
||||
export interface ReleasePlatformPrePackageEditorBuildSummary {
|
||||
lane: string
|
||||
performed: boolean
|
||||
result: 'passed' | 'not-run'
|
||||
}
|
||||
|
||||
export interface ReleasePlatformValidationSummary {
|
||||
lane: string
|
||||
result: 'passed' | 'failed'
|
||||
generated_at: string
|
||||
configuration: string
|
||||
skip_build: boolean
|
||||
pre_package_editor_build?: ReleasePlatformPrePackageEditorBuildSummary | null
|
||||
smoke_map_count: number
|
||||
smoke_maps: ReleasePlatformValidationSmokeMap[]
|
||||
}
|
||||
|
|
@ -23,6 +30,7 @@ const WINDOWS_VALIDATION_SUMMARY_FALLBACK: ReleasePlatformValidationSummary = {
|
|||
generated_at: '2026-06-24T12:53:32.7234772Z',
|
||||
configuration: 'Development',
|
||||
skip_build: true,
|
||||
pre_package_editor_build: null,
|
||||
smoke_map_count: 2,
|
||||
smoke_maps: [
|
||||
{
|
||||
|
|
@ -51,6 +59,19 @@ function isValidationSmokeMap(
|
|||
)
|
||||
}
|
||||
|
||||
function isPrePackageEditorBuildSummary(
|
||||
input: unknown,
|
||||
): input is ReleasePlatformPrePackageEditorBuildSummary {
|
||||
return Boolean(
|
||||
input
|
||||
&& typeof input === 'object'
|
||||
&& typeof (input as ReleasePlatformPrePackageEditorBuildSummary).lane === 'string'
|
||||
&& typeof (input as ReleasePlatformPrePackageEditorBuildSummary).performed === 'boolean'
|
||||
&& ((input as ReleasePlatformPrePackageEditorBuildSummary).result === 'passed'
|
||||
|| (input as ReleasePlatformPrePackageEditorBuildSummary).result === 'not-run'),
|
||||
)
|
||||
}
|
||||
|
||||
function isValidationSummary(
|
||||
input: unknown,
|
||||
): input is ReleasePlatformValidationSummary {
|
||||
|
|
@ -63,6 +84,12 @@ function isValidationSummary(
|
|||
&& typeof (input as ReleasePlatformValidationSummary).generated_at === 'string'
|
||||
&& typeof (input as ReleasePlatformValidationSummary).configuration === 'string'
|
||||
&& typeof (input as ReleasePlatformValidationSummary).skip_build === 'boolean'
|
||||
&& (
|
||||
(input as ReleasePlatformValidationSummary).pre_package_editor_build == null
|
||||
|| isPrePackageEditorBuildSummary(
|
||||
(input as ReleasePlatformValidationSummary).pre_package_editor_build,
|
||||
)
|
||||
)
|
||||
&& typeof (input as ReleasePlatformValidationSummary).smoke_map_count === 'number'
|
||||
&& Array.isArray((input as ReleasePlatformValidationSummary).smoke_maps)
|
||||
&& (input as ReleasePlatformValidationSummary).smoke_maps.every(isValidationSmokeMap),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue