From 39bd0b8652aae65fa7c0413642417db3b2092038 Mon Sep 17 00:00:00 2001 From: Ari Sulistiono Date: Wed, 21 Oct 2026 18:44:15 +0700 Subject: [PATCH 1/3] trial(engine-pin): preserve #184 ancestry and pin CI-green #187 per-invoke SBO service timing --- engines/ARIEC61850.lock.json | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/engines/ARIEC61850.lock.json b/engines/ARIEC61850.lock.json index 08435582b..538a2e8d0 100644 --- a/engines/ARIEC61850.lock.json +++ b/engines/ARIEC61850.lock.json @@ -2,9 +2,9 @@ "schemaVersion": 1, "repository": "masarray/ARIEC61850", "ref": "main", - "commit": "9c7cb40364023a7b217e5ec31ab3105ba90142eb", - "sourcePullRequest": 184, - "purpose": "P0-C stage-attributed SBOw asynchronous-error observation trial on engine #183 ancestry; delayed rejection regression code-qualified; no performance or physical acceptance yet.", + "commit": "4ed76ccd11b763dcd847395f6ef45273db3f5c9c", + "sourcePullRequest": 187, + "purpose": "P0-C follow-up read-only client-side per-invoke TPKT-send/confirmed-response/decode timing on exact engine #184 ancestry; Windows CI only, no physical latency acceptance.", "previousTrialPin": { "commit": "4467124775d8d9d76f3db194f9fbfd97144767a8", "sourcePullRequest": 134, @@ -347,5 +347,22 @@ "noUnqualifiedImmediateOperate": true, "physicalLatencyQualificationRequired": true, "mainlinePromotionForbidden": true + }, + "p0CSboServiceTimingTrial": { + "status": "exact-engine-windows-ci-success-consumer-ci-pending-no-field-latency-claim", + "enginePullRequest": 187, + "engineCiOnlyPullRequest": 188, + "engineCiRun": 39593661449, + "baseEngineCommit": "9c7cb40364023a7b217e5ec31ab3105ba90142eb", + "exactCommit": "4ed76ccd11b763dcd847395f6ef45273db3f5c9c", + "capturePerInvokeTiming": true, + "tcpSendAndConfirmedResponseSeparated": true, + "mmsDecodeSeparated": true, + "serviceWaitNotPureNetworkRtt": true, + "sbo400msSafetyGatePreserved": true, + "positiveAndNegativeCommandTerminationPreserved": true, + "noAddedMmsOperations": true, + "physicalLatencyQualificationRequired": true, + "mainlinePromotionForbidden": true } } From 4ed1db81d16bc10f004b2dba378689dc035199c7 Mon Sep 17 00:00:00 2001 From: Ari Sulistiono Date: Wed, 21 Oct 2026 18:44:37 +0700 Subject: [PATCH 2/3] test(engine-pin): keep #184 physical ancestry frozen while qualifying telemetry-only #187 trial --- ...teroperabilityTrialGuardRegressionTests.cs | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tests/ARSAS.Tests/SmartInteroperabilityTrialGuardRegressionTests.cs b/tests/ARSAS.Tests/SmartInteroperabilityTrialGuardRegressionTests.cs index a91176c74..64cf26a82 100644 --- a/tests/ARSAS.Tests/SmartInteroperabilityTrialGuardRegressionTests.cs +++ b/tests/ARSAS.Tests/SmartInteroperabilityTrialGuardRegressionTests.cs @@ -139,9 +139,27 @@ public void TrialLock_PreservesHistoricalPhysicalAuthorityAndExplicitlyRequiresP stageTrial.GetProperty("baseEngineCommit").GetString()); Assert.Equal("9c7cb40364023a7b217e5ec31ab3105ba90142eb", stageTrial.GetProperty("exactCommit").GetString()); + // Telemetry-only #187 is descended exactly from #184. Preserve + // the historical SBOw negative-error and 400ms guard proofs. + var serviceTiming = root.GetProperty("p0CSboServiceTimingTrial"); Assert.Equal(stageTrial.GetProperty("exactCommit").GetString(), + serviceTiming.GetProperty("baseEngineCommit").GetString()); + Assert.Equal("4ed76ccd11b763dcd847395f6ef45273db3f5c9c", + serviceTiming.GetProperty("exactCommit").GetString()); + Assert.Equal(serviceTiming.GetProperty("exactCommit").GetString(), root.GetProperty("commit").GetString()); - Assert.Equal(184, root.GetProperty("sourcePullRequest").GetInt32()); + Assert.Equal(187, root.GetProperty("sourcePullRequest").GetInt32()); + Assert.Equal(187, serviceTiming.GetProperty("enginePullRequest").GetInt32()); + Assert.Equal(188, serviceTiming.GetProperty("engineCiOnlyPullRequest").GetInt32()); + Assert.True(serviceTiming.GetProperty("capturePerInvokeTiming").GetBoolean()); + Assert.True(serviceTiming.GetProperty("tcpSendAndConfirmedResponseSeparated").GetBoolean()); + Assert.True(serviceTiming.GetProperty("mmsDecodeSeparated").GetBoolean()); + Assert.True(serviceTiming.GetProperty("serviceWaitNotPureNetworkRtt").GetBoolean()); + Assert.True(serviceTiming.GetProperty("sbo400msSafetyGatePreserved").GetBoolean()); + Assert.True(serviceTiming.GetProperty("positiveAndNegativeCommandTerminationPreserved").GetBoolean()); + Assert.True(serviceTiming.GetProperty("noAddedMmsOperations").GetBoolean()); + Assert.True(serviceTiming.GetProperty("physicalLatencyQualificationRequired").GetBoolean()); + Assert.True(serviceTiming.GetProperty("mainlinePromotionForbidden").GetBoolean()); Assert.Equal(184, stageTrial.GetProperty("enginePullRequest").GetInt32()); Assert.Equal(185, stageTrial.GetProperty("engineCiOnlyPullRequest").GetInt32()); Assert.Equal(1182, stageTrial.GetProperty("engineTestsPassed").GetInt32()); From 7626556c29e2270310a3d0787f13c0f57ac7e563 Mon Sep 17 00:00:00 2001 From: Ari Sulistiono Date: Wed, 21 Oct 2026 18:44:40 +0700 Subject: [PATCH 3/3] test(engine-pin): keep #184 physical ancestry frozen while qualifying telemetry-only #187 trial --- .../CanonicalLiveSclExportRegressionTests.cs | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tests/ARSAS.Tests/CanonicalLiveSclExportRegressionTests.cs b/tests/ARSAS.Tests/CanonicalLiveSclExportRegressionTests.cs index c7b7a5597..c1e998fa9 100644 --- a/tests/ARSAS.Tests/CanonicalLiveSclExportRegressionTests.cs +++ b/tests/ARSAS.Tests/CanonicalLiveSclExportRegressionTests.cs @@ -495,9 +495,27 @@ public void EngineLock_PreservesPhysicalSclRepairBaselineAcrossCodeVerifiedInter stageTrial.GetProperty("baseEngineCommit").GetString()); Assert.Equal("9c7cb40364023a7b217e5ec31ab3105ba90142eb", stageTrial.GetProperty("exactCommit").GetString()); + // Telemetry-only #187 is descended exactly from #184. Preserve + // the historical SBOw negative-error and 400ms guard proofs. + var serviceTiming = root.GetProperty("p0CSboServiceTimingTrial"); Assert.Equal(stageTrial.GetProperty("exactCommit").GetString(), + serviceTiming.GetProperty("baseEngineCommit").GetString()); + Assert.Equal("4ed76ccd11b763dcd847395f6ef45273db3f5c9c", + serviceTiming.GetProperty("exactCommit").GetString()); + Assert.Equal(serviceTiming.GetProperty("exactCommit").GetString(), root.GetProperty("commit").GetString()); - Assert.Equal(184, root.GetProperty("sourcePullRequest").GetInt32()); + Assert.Equal(187, root.GetProperty("sourcePullRequest").GetInt32()); + Assert.Equal(187, serviceTiming.GetProperty("enginePullRequest").GetInt32()); + Assert.Equal(188, serviceTiming.GetProperty("engineCiOnlyPullRequest").GetInt32()); + Assert.True(serviceTiming.GetProperty("capturePerInvokeTiming").GetBoolean()); + Assert.True(serviceTiming.GetProperty("tcpSendAndConfirmedResponseSeparated").GetBoolean()); + Assert.True(serviceTiming.GetProperty("mmsDecodeSeparated").GetBoolean()); + Assert.True(serviceTiming.GetProperty("serviceWaitNotPureNetworkRtt").GetBoolean()); + Assert.True(serviceTiming.GetProperty("sbo400msSafetyGatePreserved").GetBoolean()); + Assert.True(serviceTiming.GetProperty("positiveAndNegativeCommandTerminationPreserved").GetBoolean()); + Assert.True(serviceTiming.GetProperty("noAddedMmsOperations").GetBoolean()); + Assert.True(serviceTiming.GetProperty("physicalLatencyQualificationRequired").GetBoolean()); + Assert.True(serviceTiming.GetProperty("mainlinePromotionForbidden").GetBoolean()); Assert.Equal(184, stageTrial.GetProperty("enginePullRequest").GetInt32()); Assert.Equal(185, stageTrial.GetProperty("engineCiOnlyPullRequest").GetInt32()); Assert.Equal(1182, stageTrial.GetProperty("engineTestsPassed").GetInt32());