From 62cc4ff5e6d60139d6739e13d91b2d0e1cecffca Mon Sep 17 00:00:00 2001 From: suixincrazy Date: Sun, 23 Aug 2026 04:55:54 +0800 Subject: [PATCH 1/2] feat: retain sky 0.6.17 4250FF66 and 4319D3A2 helper profiles Desktop 26.818.4152.0 and 26.818.5229.0 both ship @oai/sky 0.6.17-202608171537-pr-1300023-7efba775c041, but each carries a distinct codex-computer-use.exe. All three 0.6.17 binaries seen so far (29D5E113, DB8F4486, 4250FF66, 4319D3A2) are exactly 1,895,728 bytes with a byte-identical package.json, so the sky version alone cannot select a profile and the strict OriginalSha256 gate rejects the new builds outright. Both new binaries were proven to be region-level clones of the DB8F4486 baseline before adding a profile: a byte diff against the known-good helper shows the only differences below the highest patch region (0x0014B128 + 8) are the PE checksum bytes at 0x158-0x159, and all five patch regions read back identical. The five region offsets are therefore unchanged from the other 0.6.17 profiles. Patched hashes were computed from the real patched artifacts and both profiles pass test-computer-use-helper-win10-patch.ps1. On 26.818.5229.0 the end-to-end screenshot regression against an actively animated Win32 window returns 28 unique JPEG frames with no thread or handle growth on the helper process and no SetIsBorderRequired / E_NOINTERFACE fallbacks. --- scripts/patch-computer-use-helper-win10.ps1 | 78 +++++++++++++++++++ .../test-computer-use-helper-win10-patch.ps1 | 12 ++- 2 files changed, 89 insertions(+), 1 deletion(-) diff --git a/scripts/patch-computer-use-helper-win10.ps1 b/scripts/patch-computer-use-helper-win10.ps1 index 17a8561..9bbddbf 100644 --- a/scripts/patch-computer-use-helper-win10.ps1 +++ b/scripts/patch-computer-use-helper-win10.ps1 @@ -284,6 +284,84 @@ $PatchProfiles = @( } ) }, + [ordered]@{ + Name = '@oai/sky 0.6.17 helper 4319D3A2 / Windows 10 screenshot backend' + ValidatedDesktopVersion = '26.818.5229.0' + SkyVersion = '0.6.17-202608171537-pr-1300023-7efba775c041' + OriginalSha256 = '4319D3A23F6B21370205425203BD46E76E7F3BB7EA5AC263851DCC5B8727AAE5' + PatchedSha256 = '338D32A33BB7C034FEBCA79D23EF2337BCCE1CC9741784C1C11CE64F3A508368' + Regions = @( + [ordered]@{ + Name = 'optional-border-interface' + Offset = 0x00047E01 + OriginalHex = '4889c34189d6eb50' + PatchedHex = 'e980000000909090' + }, + [ordered]@{ + Name = 'frame-arrived-busy-return' + Offset = 0x0004CF86 + OriginalHex = '0f85f5340000' + PatchedHex = '0f85d8340000' + }, + [ordered]@{ + Name = 'frame-arrived-once-flag' + Offset = 0x0004CF97 + OriginalHex = '740d' + PatchedHex = 'eb0d' + }, + [ordered]@{ + Name = 'mta-worker-wrapper' + Offset = 0x001486AF + OriginalHex = ('cc' + (('00' * 174) -join '')) + PatchedHex = '4883ec3848894c24304c8b510831c0b201f0410fb052117536488b01ff500831c931d24c8d05490000004c8b4c2430488364242000488364242800ff15081200004885c074104889c1ff154211000031c04883c438c3488b4c2430488b4108c6401100488b01ff5010b8054000804883c438c34883ec3848894c2428b901000000ff15020f0000488b4c2428e80348f0ffff15fa0e0000488b4c2428488b01ff501031c04883c438c3c04883c438c3' + }, + [ordered]@{ + Name = 'frame-arrived-vtable' + Offset = 0x0014B128 + OriginalHex = '43db044001000000' + PatchedHex = 'af92144001000000' + } + ) + }, + [ordered]@{ + Name = '@oai/sky 0.6.17 helper 4250FF66 / Windows 10 screenshot backend' + ValidatedDesktopVersion = '26.818.4152.0' + SkyVersion = '0.6.17-202608171537-pr-1300023-7efba775c041' + OriginalSha256 = '4250FF66B8EE598931DBE782E1CC76133FBE7650CCE225C4FC232155F7054350' + PatchedSha256 = 'F4408E2C59F037D8B96ADAF3DE48846DB2921A9F007BC3CCAE34C1407A609ACC' + Regions = @( + [ordered]@{ + Name = 'optional-border-interface' + Offset = 0x00047E01 + OriginalHex = '4889c34189d6eb50' + PatchedHex = 'e980000000909090' + }, + [ordered]@{ + Name = 'frame-arrived-busy-return' + Offset = 0x0004CF86 + OriginalHex = '0f85f5340000' + PatchedHex = '0f85d8340000' + }, + [ordered]@{ + Name = 'frame-arrived-once-flag' + Offset = 0x0004CF97 + OriginalHex = '740d' + PatchedHex = 'eb0d' + }, + [ordered]@{ + Name = 'mta-worker-wrapper' + Offset = 0x001486AF + OriginalHex = ('cc' + (('00' * 174) -join '')) + PatchedHex = '4883ec3848894c24304c8b510831c0b201f0410fb052117536488b01ff500831c931d24c8d05490000004c8b4c2430488364242000488364242800ff15081200004885c074104889c1ff154211000031c04883c438c3488b4c2430488b4108c6401100488b01ff5010b8054000804883c438c34883ec3848894c2428b901000000ff15020f0000488b4c2428e80348f0ffff15fa0e0000488b4c2428488b01ff501031c04883c438c3c04883c438c3' + }, + [ordered]@{ + Name = 'frame-arrived-vtable' + Offset = 0x0014B128 + OriginalHex = '43db044001000000' + PatchedHex = 'af92144001000000' + } + ) + }, [ordered]@{ Name = '@oai/sky 0.6.11 helper 7A95D14E / Windows 10 screenshot backend' ValidatedDesktopVersion = '26.810.7004.0' diff --git a/scripts/test-computer-use-helper-win10-patch.ps1 b/scripts/test-computer-use-helper-win10-patch.ps1 index 42750c7..a1bbb1d 100644 --- a/scripts/test-computer-use-helper-win10-patch.ps1 +++ b/scripts/test-computer-use-helper-win10-patch.ps1 @@ -3,7 +3,7 @@ param( [string]$HelperPath, # Profile labels, not raw @oai/sky versions: one sky version can ship more than one # helper binary across Desktop builds, so each label pins its own hash pair. - [ValidateSet('0.6.6', '0.6.11', '0.6.11-7A95D14E', '0.6.16', '0.6.16-BEB498C2', '0.6.17-29D5E113', '0.6.17-DB8F4486')] + [ValidateSet('0.6.6', '0.6.11', '0.6.11-7A95D14E', '0.6.16', '0.6.16-BEB498C2', '0.6.17-29D5E113', '0.6.17-DB8F4486', '0.6.17-4250FF66', '0.6.17-4319D3A2')] [string]$SkyVersion = '0.6.16' ) @@ -44,6 +44,16 @@ $Profiles = @{ OriginalHash = 'DB8F4486D527C91B80266FAF77FDC38266B1D3960EFBBA35D0A6AAB4CAAF6AEE' PatchedHash = '6495168DC16A35CDC33230E6512D64E660B56D13E99FE239426D228B9F86E157' } + '0.6.17-4250FF66' = [ordered]@{ + SkyVersion = '0.6.17-202608171537-pr-1300023-7efba775c041' + OriginalHash = '4250FF66B8EE598931DBE782E1CC76133FBE7650CCE225C4FC232155F7054350' + PatchedHash = 'F4408E2C59F037D8B96ADAF3DE48846DB2921A9F007BC3CCAE34C1407A609ACC' + } + '0.6.17-4319D3A2' = [ordered]@{ + SkyVersion = '0.6.17-202608171537-pr-1300023-7efba775c041' + OriginalHash = '4319D3A23F6B21370205425203BD46E76E7F3BB7EA5AC263851DCC5B8727AAE5' + PatchedHash = '338D32A33BB7C034FEBCA79D23EF2337BCCE1CC9741784C1C11CE64F3A508368' + } } $ProfileLabel = $SkyVersion $ExpectedSkyVersion = $Profiles[$ProfileLabel].SkyVersion From f1cac97593b259a0610f06b0df1197266e2fcc14 Mon Sep 17 00:00:00 2001 From: suixincrazy <83406672+suixincrazy@users.noreply.github.com> Date: Tue, 25 Aug 2026 04:31:59 +0800 Subject: [PATCH 2/2] feat: support the sky 0.6.17 D967386B helper shipped with Desktop 26.818.8289 Desktop 26.818.8289.0 ships a fifth distinct codex-computer-use.exe under the same @oai/sky version string 0.6.17-202608171537-pr-1300023-7efba775c041. All five binaries are 1,895,728 bytes with a byte-identical package.json, so the version string cannot select a profile; the full SHA-256 has to. Clone safety was established before reusing the validated byte patterns: a whole-file diff against the known-good 4319D3A2 baseline shows the only difference below the highest patch region is the PE checksum at 0x158-0x159, and all five patch regions compare identical. The rip-relative references inside the mta-worker-wrapper blob were additionally confirmed to resolve to the same imports (CreateThread, CloseHandle, RoInitialize, RoUninitialize) and the same call target, and both section tables are byte-identical. Patch offsets are unchanged from the other 0.6.16/0.6.17 profiles. --- scripts/patch-computer-use-helper-win10.ps1 | 39 +++++++++++++++++++ .../test-computer-use-helper-win10-patch.ps1 | 7 +++- 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/scripts/patch-computer-use-helper-win10.ps1 b/scripts/patch-computer-use-helper-win10.ps1 index 9bbddbf..d214902 100644 --- a/scripts/patch-computer-use-helper-win10.ps1 +++ b/scripts/patch-computer-use-helper-win10.ps1 @@ -284,6 +284,45 @@ $PatchProfiles = @( } ) }, + [ordered]@{ + Name = '@oai/sky 0.6.17 helper D967386B / Windows 10 screenshot backend' + ValidatedDesktopVersion = '26.818.8289.0' + SkyVersion = '0.6.17-202608171537-pr-1300023-7efba775c041' + OriginalSha256 = 'D967386B8943355017B7CFC1044A6F39AF41A38A3731088C4191123CE7F86018' + PatchedSha256 = 'B43B12A8A23BE7CED3CCB64C56CC6885A483DBD482891116AB78C35CC3ACFB30' + Regions = @( + [ordered]@{ + Name = 'optional-border-interface' + Offset = 0x00047E01 + OriginalHex = '4889c34189d6eb50' + PatchedHex = 'e980000000909090' + }, + [ordered]@{ + Name = 'frame-arrived-busy-return' + Offset = 0x0004CF86 + OriginalHex = '0f85f5340000' + PatchedHex = '0f85d8340000' + }, + [ordered]@{ + Name = 'frame-arrived-once-flag' + Offset = 0x0004CF97 + OriginalHex = '740d' + PatchedHex = 'eb0d' + }, + [ordered]@{ + Name = 'mta-worker-wrapper' + Offset = 0x001486AF + OriginalHex = ('cc' + (('00' * 174) -join '')) + PatchedHex = '4883ec3848894c24304c8b510831c0b201f0410fb052117536488b01ff500831c931d24c8d05490000004c8b4c2430488364242000488364242800ff15081200004885c074104889c1ff154211000031c04883c438c3488b4c2430488b4108c6401100488b01ff5010b8054000804883c438c34883ec3848894c2428b901000000ff15020f0000488b4c2428e80348f0ffff15fa0e0000488b4c2428488b01ff501031c04883c438c3c04883c438c3' + }, + [ordered]@{ + Name = 'frame-arrived-vtable' + Offset = 0x0014B128 + OriginalHex = '43db044001000000' + PatchedHex = 'af92144001000000' + } + ) + }, [ordered]@{ Name = '@oai/sky 0.6.17 helper 4319D3A2 / Windows 10 screenshot backend' ValidatedDesktopVersion = '26.818.5229.0' diff --git a/scripts/test-computer-use-helper-win10-patch.ps1 b/scripts/test-computer-use-helper-win10-patch.ps1 index a1bbb1d..a863b79 100644 --- a/scripts/test-computer-use-helper-win10-patch.ps1 +++ b/scripts/test-computer-use-helper-win10-patch.ps1 @@ -3,7 +3,7 @@ param( [string]$HelperPath, # Profile labels, not raw @oai/sky versions: one sky version can ship more than one # helper binary across Desktop builds, so each label pins its own hash pair. - [ValidateSet('0.6.6', '0.6.11', '0.6.11-7A95D14E', '0.6.16', '0.6.16-BEB498C2', '0.6.17-29D5E113', '0.6.17-DB8F4486', '0.6.17-4250FF66', '0.6.17-4319D3A2')] + [ValidateSet('0.6.6', '0.6.11', '0.6.11-7A95D14E', '0.6.16', '0.6.16-BEB498C2', '0.6.17-29D5E113', '0.6.17-DB8F4486', '0.6.17-4250FF66', '0.6.17-4319D3A2', '0.6.17-D967386B')] [string]$SkyVersion = '0.6.16' ) @@ -54,6 +54,11 @@ $Profiles = @{ OriginalHash = '4319D3A23F6B21370205425203BD46E76E7F3BB7EA5AC263851DCC5B8727AAE5' PatchedHash = '338D32A33BB7C034FEBCA79D23EF2337BCCE1CC9741784C1C11CE64F3A508368' } + '0.6.17-D967386B' = [ordered]@{ + SkyVersion = '0.6.17-202608171537-pr-1300023-7efba775c041' + OriginalHash = 'D967386B8943355017B7CFC1044A6F39AF41A38A3731088C4191123CE7F86018' + PatchedHash = 'B43B12A8A23BE7CED3CCB64C56CC6885A483DBD482891116AB78C35CC3ACFB30' + } } $ProfileLabel = $SkyVersion $ExpectedSkyVersion = $Profiles[$ProfileLabel].SkyVersion