docs: retain late-slope guard control receipts

This commit is contained in:
Joseph Doherty
2026-11-10 17:54:43 -05:00
parent cfd3cdcd13
commit 7023285a3e
2 changed files with 193 additions and 1 deletions
@@ -0,0 +1,186 @@
{
"scope": "Short late-slope implementation controls; no lifecycle workload or acceptance run started.",
"acceptance": false,
"fixedProtocolSource": "7f21c9aa643db8a7f4e275da4a29dffc1530d21f",
"canonicalSourceSha256": "debfa39298d2d733a1791dd7f07892f3692868b7ece2764d14992c08ffee5754",
"canonicalIdenticalAcrossControlCorrection": true,
"build": {
"rawLogPath": "/tmp/opcua2-late-slope-controls-build2.log",
"sha256": "d1129816f60bcc25a1dbb525b059b241ccd0d4a51f142dc839d12de338679793",
"warnings": 0,
"errors": 0
},
"runs": [
{
"rawDirectory": "artifacts/opcua2/5ea6a23f/late-slope-helpers",
"receipt": {
"source": "5ea6a23f1bed525244f1a0aa0b725586ab53e7f2",
"kind": "helpers",
"command": [
"dotnet",
"test",
"tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.csproj",
"-c",
"Release",
"--no-build",
"--no-restore",
"--filter",
"FullyQualifiedName~Late_slope_",
"--logger",
"trx;LogFileName=control.trx",
"--results-directory",
"artifacts/opcua2/5ea6a23f/late-slope-helpers"
],
"envChanges": {},
"runnerSeconds": 1.6146617500344291,
"testExit": 1,
"counters": {
"total": "3",
"executed": "3",
"passed": "2",
"failed": "1",
"error": "0",
"timeout": "0",
"aborted": "0",
"inconclusive": "0",
"passedButRunAborted": "0",
"notRunnable": "0",
"notExecuted": "0",
"disconnected": "0",
"warning": "0",
"completed": "0",
"inProgress": "0",
"pending": "0"
},
"errors": [
"Shouldly.ShouldAssertException : original cold RSS rejection"
],
"guardPassed": false,
"lateSlopeWorkloadStarted": false,
"acceptance": false
},
"sha256": {
"control.trx": "dd02b8f7ba18992ae33c5683a3512786b602f5e994572e867028c0c131c41821",
"run.log": "ea87872836aed8a054a8d90f79d6c2d7c55d241f5d0e608f8b928c2e92cb1528",
"receipt.json": "86d1dfea77db981e32163bd64920f5c5c0f608488ed9bfc89b439970fb65910e"
}
},
{
"rawDirectory": "artifacts/opcua2/5ea6a23f/late-slope-reject-short",
"receipt": {
"source": "5ea6a23f1bed525244f1a0aa0b725586ab53e7f2",
"kind": "reject-short",
"command": [
"dotnet",
"test",
"tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.csproj",
"-c",
"Release",
"--no-build",
"--no-restore",
"--filter",
"FullyQualifiedName~Repeated_lifecycles_return_resources_to_a_steady_baseline",
"--logger",
"trx;LogFileName=control.trx",
"--results-directory",
"artifacts/opcua2/5ea6a23f/late-slope-reject-short"
],
"envChanges": {
"OTOPCUA_SDK2_SOAK": "1",
"OTOPCUA_SDK2_SOAK_MODE": "late-slope",
"OTOPCUA_SDK2_SOAK_SECONDS": "90",
"OTOPCUA_SDK2_SOAK_OUTPUT": "artifacts/opcua2/5ea6a23f/late-slope-reject-short/rejected.jsonl"
},
"runnerSeconds": 1.5285202499944717,
"testExit": 1,
"counters": {
"total": "1",
"executed": "1",
"passed": "0",
"failed": "1",
"error": "0",
"timeout": "0",
"aborted": "0",
"inconclusive": "0",
"passedButRunAborted": "0",
"notRunnable": "0",
"notExecuted": "0",
"disconnected": "0",
"warning": "0",
"completed": "0",
"inProgress": "0",
"pending": "0"
},
"errors": [
"Shouldly.ShouldAssertException : seconds\r\n should be\r\n7200\r\n but was\r\n90\r\n\r\nAdditional Info:\r\n late-slope diagnostic duration is fixed at 7200 seconds"
],
"guardPassed": true,
"lateSlopeWorkloadStarted": false,
"acceptance": false
},
"sha256": {
"control.trx": "2d87f07849e842b28075f7c3c9ea3b373f6b44db0169c39ea4e4be3ce3bbe3f9",
"run.log": "de5347f82912389c05dc4c9a5aa657422e54e8e64fc49f8d26a838051cdd2f1b",
"receipt.json": "5d1b2288bd790cf2bbc4920e3da450a8da315facfd79221374f7453e89c39138"
}
},
{
"rawDirectory": "artifacts/opcua2/7f21c9aa/late-slope-helpers",
"receipt": {
"source": "7f21c9aa643db8a7f4e275da4a29dffc1530d21f",
"kind": "helpers",
"command": [
"dotnet",
"test",
"tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests.csproj",
"-c",
"Release",
"--no-build",
"--no-restore",
"--filter",
"FullyQualifiedName~Late_slope_",
"--logger",
"trx;LogFileName=control.trx",
"--results-directory",
"artifacts/opcua2/7f21c9aa/late-slope-helpers"
],
"envChanges": {},
"runnerSeconds": 1.585877291043289,
"testExit": 0,
"counters": {
"total": "3",
"executed": "3",
"passed": "3",
"failed": "0",
"error": "0",
"timeout": "0",
"aborted": "0",
"inconclusive": "0",
"passedButRunAborted": "0",
"notRunnable": "0",
"notExecuted": "0",
"disconnected": "0",
"warning": "0",
"completed": "0",
"inProgress": "0",
"pending": "0"
},
"errors": [],
"guardPassed": true,
"lateSlopeWorkloadStarted": false,
"acceptance": false
},
"sha256": {
"control.trx": "71ade221b65006a29829270e239287e16695c7f25501f6fc853495b911ac6599",
"run.log": "ccaeb6c87f755d93291036f334c45a46b1a7285ca868f57738b78306ac92ec6e",
"receipt.json": "7175914165da0094f85e8369be1defabf9d5d1eae49cba78f386536c668c7a85"
}
}
],
"notes": [
"First helper attempt preserved as 2 pass/1 fail; Shouldly rethrew the intended ShouldAssertException sentinel. Only test capture was corrected, not emitter or canonical behavior.",
"Actual 90-second request was rejected before evidence file creation. The expected test exit1 was preserved; guard true validates that specific rejection.",
"Final helper run3/3 tests cancellation propagation, both independent cleanup owners, first exception preservation and diagnostic-only result emission.",
"These controls do not qualify or launch the two-hour workload."
]
}
@@ -47,7 +47,7 @@ have at least 10 samples, first sample no later than 60s after its start, last s
no earlier than 60s before its end, observed span at least 480s, and no internal gap
above 60s. Apply the same 60s maximum gap over the entire 1800–7200s reporting range.
Missing coverage is incomplete evidence; it must not become a favorable slope.
If fewer than 385 cycles and 96 restarts complete by 1800s, report the elapsed
Unless at least 385 cycles and 96 restarts complete by 1800s, report the elapsed
slopes descriptively but withhold attribution to the phase after the previously
observed restart milestone. Reaching that count still does not prove factory
saturation in this run; no EventPipe observer is attached.
@@ -85,3 +85,9 @@ Require negative controls proving a latched first failure cannot disappear,
wrong duration/mode is rejected, no ordinary acceptance receipt can be emitted,
and malformed/missing sample windows fail the summarizer. Review actual source,
control results and every immutable artifact hash with Astra before launch.
The canonical mode is implemented. The [short control receipts](../../../docs/plans/evidence/2026-11-10-opcua2/late-slope-controls.json)
record three passing helper tests and actual rejection of a 90-second request
before setup. The original helper assertion-capture failure is retained; the
canonical source is byte-identical across that test-only correction. These
controls do not approve a bundle, start the workload or satisfy #799.