diff --git a/src/lib/actions/sandbox/launch-readiness/openclaw-pairing-qualification.test.ts b/src/lib/actions/sandbox/launch-readiness/openclaw-pairing-qualification.test.ts index c6d6e01d0b6..b8a5d4759e7 100644 --- a/src/lib/actions/sandbox/launch-readiness/openclaw-pairing-qualification.test.ts +++ b/src/lib/actions/sandbox/launch-readiness/openclaw-pairing-qualification.test.ts @@ -414,7 +414,7 @@ describe("OpenClaw launch-readiness pairing qualification", () => { }); expect(observeOrdinarySettlement()).toEqual({ - state: "pairing-only", + state: "scope-upgrade-pending", deviceIdentitySha256: expect.stringMatching(/^[a-f0-9]{64}$/), }); expect(() => observeRepairSettlement()).toThrow( diff --git a/src/lib/actions/sandbox/launch-readiness/openclaw-pairing-qualification.ts b/src/lib/actions/sandbox/launch-readiness/openclaw-pairing-qualification.ts index 24e60f275ba..6e002647cca 100644 --- a/src/lib/actions/sandbox/launch-readiness/openclaw-pairing-qualification.ts +++ b/src/lib/actions/sandbox/launch-readiness/openclaw-pairing-qualification.ts @@ -137,7 +137,14 @@ export function parseOpenClawPairingSettlementObservation( output: string, ): OpenClawPairingSettlementObservation | null { const record = parseOpenClawPairingSettlementRecord(output); - if (!record || (record.state !== "pairing-only" && record.state !== "settled")) return null; + if ( + !record || + (record.state !== "pairing-only" && + record.state !== "scope-upgrade-pending" && + record.state !== "settled") + ) { + return null; + } return record as OpenClawPairingSettlementObservation; } diff --git a/test/helpers/openclaw-real-device-self-approval-proof.ts b/test/helpers/openclaw-real-device-self-approval-proof.ts index abf35dbf64d..2e6e7122659 100644 --- a/test/helpers/openclaw-real-device-self-approval-proof.ts +++ b/test/helpers/openclaw-real-device-self-approval-proof.ts @@ -1634,7 +1634,7 @@ fs.statSync = function nemoclawProofStatSync(candidate, ...args) { requireLiveProof( portableRepairObservation.state === "pairing-pending" && portableRepairObservation.deviceIdentitySha256 === - pairingOnlyObservation.deviceIdentitySha256, + pendingUpgradeObservation.deviceIdentitySha256, "Portable repair observation did not preserve the canonical pending transition", ); const pendingBeforeOrdinaryApproval = fs.readFileSync(pendingPath, "utf8");