diff --git a/README.md b/README.md index bd867e6..fc8b6f8 100644 --- a/README.md +++ b/README.md @@ -49,4 +49,4 @@ xcodebuild -project beatygril/beatygril.xcodeproj -scheme 'Wrapper Application' 面板改为先在真实视图的宿主 action 内取得读写接口,修复控件一直禁用的问题。短脸改用76点下半脸闭合区域和鼻梁位移轴,下颌骨改为六组相邻轮廓半径的局部位移,移除旧脸框近似场;详见[分析](docs/analysis/短脸与下颌骨分析.md)。其余五项脸型仍保留近似实现,不能将局部算法恢复视为全部效果逐像素一致。 -1551项回归通过,含335项宿主适配、98项OSC和157项面板ASan检查;28种控制/原点组合均核验实际解剖位置,改变原点标签时逐字节一致。额外真实帧ASan专项886项通过,含重复基础用例。合并版签名公证及Motion/FCP原生验收进行中。 +1551项回归通过,含335项宿主适配、98项OSC和157项面板ASan检查;28种控制/原点组合均核验实际解剖位置,改变原点标签时逐字节一致。额外真实帧ASan专项886项通过,含重复基础用例。1.1.2(13)已完成正式签名、公证、票据、唯一正式路径安装及副本清理。Motion/FCP原生数值、重置和隔离画面响应已验证,Motion保存重开与撤销通过;按住滑杆时画布持续刷新的实际观感仍等待用户反馈。连续步进在松手前提交已通过独立模拟宿主验证,不能将它等同于每个鼠标事件都排出一帧。 diff --git a/RECOVERY.md b/RECOVERY.md index aa6b57c..23269e2 100644 --- a/RECOVERY.md +++ b/RECOVERY.md @@ -12,7 +12,7 @@ ```sh git clone https://dayu.media/git/dayu/paintfcp-fxplug.git cd paintfcp-fxplug -git switch --detach v1.1.0 +git switch --detach v1.1.2 ``` 需要继续编辑时,基于该提交创建新分支。安装 Xcode 与 Apple FxPlug 4 SDK;盘点版本和构建入口见 README.md。SDK/framework 为 Apple 外部开发依赖,应重新安装匹配版本。证书、私钥和公证凭据需从独立加密备份恢复或重新申请;Git 不包含它们。 @@ -78,3 +78,11 @@ FCP模板从 `Templates/大鱼人像美化/` 恢复,将 `.moef` 和 `Drop Zone ## 1.1.2 合并修复准备 版本1.1.2(13)合并面板action上下文修复和76点短脸/下颌骨局部场。构建/恢复依赖、正式路径、签名公证入口保持不变;自动检查1551项及额外886项真实帧ASan专项通过。原生验收使用build/native-112独立Motion副本,用户素材、截图和完整AX数据不随源码上传。用户已明确授权接手Motion/FCP进行测试;先前不操作界面的偏好已被本次授权更新。 + +## 1.1.2 正式恢复入口 + +发布标签`v1.1.2`,版本1.1.2(13),正式签名源码完整SHA为`a2e33e8e00a99b95dc29d67a819cb0897eda5756`;后续交付记录不改变产品源码。独立远程恢复核验149个文件的bytes/blob/mode、16项资源、strict/full fsck和157项Inspector ASan全部通过,无LFS或子模块。恢复依赖与构建入口同前文;`PAINTFCP_INSPECTOR_ASAN=1 ./scripts/test-inspector.sh`可运行新增数值焦点与每步预览检查。 + +正式Release已使用固定团队逐层签名,Apple公证Accepted `5f5ce378-8430-467b-ae97-048e6bc81573`,票据、Gatekeeper、通用架构和PluginKit正式路径全部通过。唯一正式安装APP为`/Library/Plug-Ins/FxPlug/beatygril.app`,模板moef SHA256为`e9fa97dc14323d0daa7d3d61b06a78ba4000a70ab9f5e67ebffd750d49df1e15`,TIFF逐字节一致。临时APP、旧APP和公证ZIP已清理,有界目录及现存Spotlight索引产品路径中仅发现正式APP,扫描错误0,不宣称扫描了所有卷。 + +Motion/FCP原生验收范围及未完成项见`docs/verification/v1.1.2/native-qa.json`:数值、重置、隔离短脸/下颌骨响应通过;Motion撤销和保存关闭重开通过。连续步进已改为每步完整宿主action,模拟宿主确认鼠标松开前可发布中间设置;原生按住鼠标期间的画布时序仍待用户反馈。后续人脸素材和全AX只保留本机build,不是产品依赖或上传资源。 diff --git a/Templates/大鱼人像美化/VALIDATION.json b/Templates/大鱼人像美化/VALIDATION.json index 0da1a26..3858afb 100644 --- a/Templates/大鱼人像美化/VALIDATION.json +++ b/Templates/大鱼人像美化/VALIDATION.json @@ -59,9 +59,10 @@ "publishOSC": 0, "currentHostValidation": { "version": "1.1.2", - "Motion": "pending combined-build retest; 1.1.1 native number/bypass/reset/host undo/save already verified", - "FCP": "pending combined-build retest; 1.1.1 native API handshake and brightness commit/reset already verified", - "scope": "User explicitly authorized taking over Motion/FCP for native testing." + "build": "13", + "Motion": "pass: native number/reset/undo and save-close-reopen; isolated shape/profile images inspected with identical geometry source", + "FCP": "pass: formal load, number/reset and same-frame isolated short/jaw render", + "continuousPreview": "per-step host completion verified automatically; native held-mouse canvas timing pending user observation" }, "customParameter": { "id": 210, @@ -97,7 +98,7 @@ "outerSecureDecodeRoundtrip": true, "vendorClassesOrBlobReused": false, "emptyDataValueFallback": "not established and not relied upon", - "nativeLoadStatus": "pending user" + "nativeLoadStatus": "instantiated in Motion and FCP" }, "publicationTransition": { "previousFunctionalControls": 46, @@ -130,7 +131,7 @@ "copyrightBindings": "pass: complete Rig/widget trees unchanged from baseline, own audit resolves menus/publications", "selection": "pass: 0 selected content objects; project focus", "customArchiveStructure": "pass: exact inner bytes, own class/schema/values; Foundation outer secure decode", - "customHostInstantiation": "pending user" + "customHostInstantiation": "pass: both native hosts" }, "semanticPreservation": { "inverseDiffPassed": true, @@ -165,7 +166,7 @@ "oscASan": 98, "inspectorASan": 157 }, - "nativeVisualQA": "pending user", + "nativeVisualQA": "See currentHostValidation and docs/verification/v1.1.2/native-qa.json", "manualAnalysisUI": "removed; legacy IDs hidden and buttons disabled", "renderMode": "realtime automatic follow; stored manual geometry never used", "templatePublishedEntries": 3, @@ -190,8 +191,12 @@ "installation": { "version": "1.1.2", "build": "13", - "status": "pending", - "previousInstalledVersion": "1.1.1 (interim)" + "status": "Release signed, notarized, stapled, installed; generated copies cleaned", + "previousInstalledVersion": "1.1.1 (interim)", + "sourceCommit": "a2e33e8e00a99b95dc29d67a819cb0897eda5756", + "notarization": "Accepted 5f5ce378-8430-467b-ae97-048e6bc81573", + "uniqueAppInScannedScope": true, + "scopeReport": "../../docs/verification/v1.1.2/installed-verification.json" }, "shortJawValidation": { "version": "1.1.2", diff --git a/docs/verification/v1.1.2/delivery-receipt.json b/docs/verification/v1.1.2/delivery-receipt.json new file mode 100644 index 0000000..218d642 --- /dev/null +++ b/docs/verification/v1.1.2/delivery-receipt.json @@ -0,0 +1,46 @@ +{ + "status": "complete", + "bundleIdentifier": "com.dayu.beatygril", + "installationPath": "/Library/Plug-Ins/FxPlug/beatygril.app", + "options": { + "waitForHosts": true, + "userTests": false + }, + "nativeEffectQA": { + "status": "operator_confirmed", + "performedByScript": false, + "scopeDocument": "native-qa.json", + "heldMouseCanvasTiming": "pending user observation" + }, + "source": { + "commit": "a2e33e8e00a99b95dc29d67a819cb0897eda5756", + "trackedWorktreeChanges": [] + }, + "updatedAt": "2026-10-21T16:31:12.570976+00:00", + "version": "1.1.2", + "build": "13", + "stagingSignature": "Executable=/private/tmp/paintfcp-build-20261021/Build/Products/Release/beatygril.app/Contents/MacOS/beatygril\nIdentifier=com.dayu.beatygril\nFormat=app bundle with Mach-O universal (x86_64 arm64)\nCodeDirectory v=20500 size=478 flags=0x10000(runtime) hashes=4+7 location=embedded\nHash type=sha256 size=32\nCandidateCDHash sha256=78b01963732b743659b501c5beedc96a725f1156\nCandidateCDHashFull sha256=78b01963732b743659b501c5beedc96a725f11560ebafe992a93195b3bae4dc2\nHash choices=sha256\nCMSDigest=78b01963732b743659b501c5beedc96a725f11560ebafe992a93195b3bae4dc2\nCMSDigestType=2\nCDHash=78b01963732b743659b501c5beedc96a725f1156\nSignature size=8968\nAuthority=Developer ID Application: zhong luo (B3W25FX5H5)\nAuthority=Developer ID Certification Authority\nAuthority=Apple Root CA\nTimestamp=Oct 22, 2026 at 00:20:39\nInfo.plist entries=22\nTeamIdentifier=B3W25FX5H5\nRuntime Version=27.0.0\nSealed Resources version=2 rules=13 files=4\nInternal requirements count=1 size=180\nTotal signatures=1\nChosen signature=1\n", + "notarization": { + "message": "Processing complete", + "id": "5f5ce378-8430-467b-ae97-048e6bc81573", + "status": "Accepted" + }, + "signingVerified": true, + "stapleValidated": true, + "stagingPluginUnregistered": true, + "runningHosts": [], + "installedSignature": "Executable=/Library/Plug-Ins/FxPlug/beatygril.app/Contents/MacOS/beatygril\nIdentifier=com.dayu.beatygril\nFormat=app bundle with Mach-O universal (x86_64 arm64)\nCodeDirectory v=20500 size=478 flags=0x10000(runtime) hashes=4+7 location=embedded\nHash type=sha256 size=32\nCandidateCDHash sha256=78b01963732b743659b501c5beedc96a725f1156\nCandidateCDHashFull sha256=78b01963732b743659b501c5beedc96a725f11560ebafe992a93195b3bae4dc2\nHash choices=sha256\nCMSDigest=78b01963732b743659b501c5beedc96a725f11560ebafe992a93195b3bae4dc2\nCMSDigestType=2\nCDHash=78b01963732b743659b501c5beedc96a725f1156\nSignature size=8968\nAuthority=Developer ID Application: zhong luo (B3W25FX5H5)\nAuthority=Developer ID Certification Authority\nAuthority=Apple Root CA\nTimestamp=Oct 22, 2026 at 00:20:39\nNotarization Ticket=stapled\nInfo.plist entries=22\nTeamIdentifier=B3W25FX5H5\nRuntime Version=27.0.0\nSealed Resources version=2 rules=13 files=4\nInternal requirements count=1 size=180\nTotal signatures=1\nChosen signature=1\n", + "installedSignatureVerified": true, + "installedStapleValidated": true, + "gatekeeperAccepted": true, + "pluginDiscovery": { + "bundleIdentifier": "com.dayu.beatygril.fxplug", + "formalPath": "/Library/Plug-Ins/FxPlug/beatygril.app/Contents/PlugIns/beatygril XPC Service.pluginkit", + "output": " com.dayu.beatygril.fxplug(1.1)\t2293B0A5-4D98-4AE9-88F7-7022E3485E14\t2026-10-21 16:21:03 +0000\t/Library/Plug-Ins/FxPlug/beatygril.app/Contents/PlugIns/beatygril XPC Service.pluginkit\n (1 plug-in)\n" + }, + "removedGeneratedPaths": [ + "/Users/dayu/Documents/PaintFCP/build/delivery/previous-beatygril.app", + "/tmp/paintfcp-build-20261021", + "/Users/dayu/Documents/PaintFCP/build/delivery/notarization.zip" + ] +} diff --git a/docs/verification/v1.1.2/installed-discovery.txt b/docs/verification/v1.1.2/installed-discovery.txt new file mode 100644 index 0000000..fdb3415 --- /dev/null +++ b/docs/verification/v1.1.2/installed-discovery.txt @@ -0,0 +1,2 @@ + com.dayu.beatygril.fxplug(1.1) 2293B0A5-4D98-4AE9-88F7-7022E3485E14 2026-10-21 16:21:03 +0000 /Library/Plug-Ins/FxPlug/beatygril.app/Contents/PlugIns/beatygril XPC Service.pluginkit + (1 plug-in) diff --git a/docs/verification/v1.1.2/installed-signature.txt b/docs/verification/v1.1.2/installed-signature.txt new file mode 100644 index 0000000..a629367 --- /dev/null +++ b/docs/verification/v1.1.2/installed-signature.txt @@ -0,0 +1,24 @@ +Executable=/Library/Plug-Ins/FxPlug/beatygril.app/Contents/MacOS/beatygril +Identifier=com.dayu.beatygril +Format=app bundle with Mach-O universal (x86_64 arm64) +CodeDirectory v=20500 size=478 flags=0x10000(runtime) hashes=4+7 location=embedded +Hash type=sha256 size=32 +CandidateCDHash sha256=78b01963732b743659b501c5beedc96a725f1156 +CandidateCDHashFull sha256=78b01963732b743659b501c5beedc96a725f11560ebafe992a93195b3bae4dc2 +Hash choices=sha256 +CMSDigest=78b01963732b743659b501c5beedc96a725f11560ebafe992a93195b3bae4dc2 +CMSDigestType=2 +CDHash=78b01963732b743659b501c5beedc96a725f1156 +Signature size=8968 +Authority=Developer ID Application: zhong luo (B3W25FX5H5) +Authority=Developer ID Certification Authority +Authority=Apple Root CA +Timestamp=Oct 22, 2026 at 00:20:39 +Notarization Ticket=stapled +Info.plist entries=22 +TeamIdentifier=B3W25FX5H5 +Runtime Version=27.0.0 +Sealed Resources version=2 rules=13 files=4 +Internal requirements count=1 size=180 +Total signatures=1 +Chosen signature=1 diff --git a/docs/verification/v1.1.2/installed-verification.json b/docs/verification/v1.1.2/installed-verification.json new file mode 100644 index 0000000..0d449a2 --- /dev/null +++ b/docs/verification/v1.1.2/installed-verification.json @@ -0,0 +1,93 @@ +{ + "version": "1.1.2", + "build": "13", + "date": "2026-10-21T16:31:12.717850+00:00", + "sourceCommit": "a2e33e8e00a99b95dc29d67a819cb0897eda5756", + "installationPath": "/Library/Plug-Ins/FxPlug/beatygril.app", + "codesign": { + "exitCode": 0, + "stdout": "", + "stderr": "" + }, + "staple": { + "exitCode": 0, + "stdout": "Processing: /Library/Plug-Ins/FxPlug/beatygril.app\nThe validate action worked!", + "stderr": "" + }, + "gatekeeper": { + "exitCode": 0, + "stdout": "", + "stderr": "/Library/Plug-Ins/FxPlug/beatygril.app: accepted\nsource=Notarized Developer ID" + }, + "identity": [ + { + "path": "/Library/Plug-Ins/FxPlug/beatygril.app", + "bundleIdentifier": "com.dayu.beatygril", + "version": "1.1.2", + "build": "13", + "archs": "x86_64 arm64", + "signature": "Executable=/Library/Plug-Ins/FxPlug/beatygril.app/Contents/MacOS/beatygril\nIdentifier=com.dayu.beatygril\nFormat=app bundle with Mach-O universal (x86_64 arm64)\nCodeDirectory v=20500 size=478 flags=0x10000(runtime) hashes=4+7 location=embedded\nHash type=sha256 size=32\nCandidateCDHash sha256=78b01963732b743659b501c5beedc96a725f1156\nCandidateCDHashFull sha256=78b01963732b743659b501c5beedc96a725f11560ebafe992a93195b3bae4dc2\nHash choices=sha256\nCMSDigest=78b01963732b743659b501c5beedc96a725f11560ebafe992a93195b3bae4dc2\nCMSDigestType=2\nCDHash=78b01963732b743659b501c5beedc96a725f1156\nSignature size=8968\nAuthority=Developer ID Application: zhong luo (B3W25FX5H5)\nAuthority=Developer ID Certification Authority\nAuthority=Apple Root CA\nTimestamp=Oct 22, 2026 at 00:20:39\nNotarization Ticket=stapled\nInfo.plist entries=22\nTeamIdentifier=B3W25FX5H5\nRuntime Version=27.0.0\nSealed Resources version=2 rules=13 files=4\nInternal requirements count=1 size=180\nTotal signatures=1\nChosen signature=1" + }, + { + "path": "/Library/Plug-Ins/FxPlug/beatygril.app/Contents/PlugIns/beatygril XPC Service.pluginkit", + "bundleIdentifier": "com.dayu.beatygril.fxplug", + "version": "1.1.2", + "build": "13", + "archs": "x86_64 arm64", + "signature": "Executable=/Library/Plug-Ins/FxPlug/beatygril.app/Contents/PlugIns/beatygril XPC Service.pluginkit/Contents/MacOS/beatygril XPC Service\nIdentifier=com.dayu.beatygril.fxplug\nFormat=bundle with Mach-O universal (x86_64 arm64)\nCodeDirectory v=20500 size=869 flags=0x10000(runtime) hashes=20+3 location=embedded\nHash type=sha256 size=32\nCandidateCDHash sha256=79f2d1c3d638b27b2e5edeccf5d9255f6dd484b3\nCandidateCDHashFull sha256=79f2d1c3d638b27b2e5edeccf5d9255f6dd484b39910fe88ebdb2d09bd42bea4\nHash choices=sha256\nCMSDigest=79f2d1c3d638b27b2e5edeccf5d9255f6dd484b39910fe88ebdb2d09bd42bea4\nCMSDigestType=2\nCDHash=79f2d1c3d638b27b2e5edeccf5d9255f6dd484b3\nSignature size=8968\nAuthority=Developer ID Application: zhong luo (B3W25FX5H5)\nAuthority=Developer ID Certification Authority\nAuthority=Apple Root CA\nTimestamp=Oct 22, 2026 at 00:20:38\nInfo.plist entries=26\nTeamIdentifier=B3W25FX5H5\nRuntime Version=27.0.0\nSealed Resources version=2 rules=13 files=4\nInternal requirements count=1 size=188\nTotal signatures=1\nChosen signature=1" + } + ], + "template": [ + { + "path": "/Users/dayu/Movies/Motion Templates.localized/Effects.localized/大鱼/大鱼人像美化/大鱼人像美化.moef", + "bytes": 23073, + "sha256": "e9fa97dc14323d0daa7d3d61b06a78ba4000a70ab9f5e67ebffd750d49df1e15" + }, + { + "path": "/Users/dayu/Movies/Motion Templates.localized/Effects.localized/大鱼/大鱼人像美化/Drop Zone.tiff", + "bytes": 420128, + "sha256": "a7f8e3a2a431dbb3ce9e777040bb55e701cfe9ab9632e8cbb10359732bc8692e" + } + ], + "discovery": { + "exitCode": 0, + "stdout": "com.dayu.beatygril.fxplug(1.1)\t2293B0A5-4D98-4AE9-88F7-7022E3485E14\t2026-10-21 16:21:03 +0000\t/Library/Plug-Ins/FxPlug/beatygril.app/Contents/PlugIns/beatygril XPC Service.pluginkit\n (1 plug-in)", + "stderr": "" + }, + "duplicateInventory": { + "scopes": [ + "/Users/dayu/Documents/PaintFCP", + "/Users/dayu/.codex/worktrees", + "/Users/dayu/Library/Developer/Xcode/DerivedData", + "/Users/dayu/Desktop", + "/Users/dayu/Downloads", + "/Applications", + "/Library/Plug-Ins/FxPlug", + "/Users/dayu/Library/Plug-Ins/FxPlug", + "/private/tmp/paintfcp-format-probe.PsxvYQ", + "/private/tmp/paintfcp-y-review.KpPi8T", + "/private/tmp/paintfcp-live-review.ItH4EG", + "/private/tmp/paintfcp-slim-field.6fDdJj", + "/private/tmp/paintfcp-chin-smoke.rfco16hq", + "/private/tmp/paintfcp-rea.b3j9Te", + "/private/tmp/paintfcp-slim-smoke.3ncdDe" + ], + "matchingOuterApps": [ + { + "path": "/Library/Plug-Ins/FxPlug/beatygril.app", + "bundleIdentifier": "com.dayu.beatygril", + "version": "1.1.2", + "build": "13" + } + ], + "errors": [], + "spotlight": { + "exitCode": 0, + "existingProductPaths": [ + "/Library/Plug-Ins/FxPlug/beatygril.app" + ] + }, + "scopeLimit": "Bounded directories and existing indexed product paths; no full-volume completeness claim." + }, + "nativeQAScope": "native-qa.json" +} diff --git a/docs/verification/v1.1.2/native-qa.json b/docs/verification/v1.1.2/native-qa.json new file mode 100644 index 0000000..d6f2e1b --- /dev/null +++ b/docs/verification/v1.1.2/native-qa.json @@ -0,0 +1,39 @@ +{ + "version": "1.1.2", + "build": "13", + "sourceCommit": "a2e33e8e00a99b95dc29d67a819cb0897eda5756", + "date": "2026-10-21T16:31:02.046442+00:00", + "Motion": { + "formalInstalledPluginLoaded": true, + "numberInput": true, + "singleResetUpdatesSliderAndText": true, + "hostUndoUpdatesSliderAndText": true, + "switchingEditedControlPreservesUndoneState": true, + "saveCloseReopen": { + "shortFace": 0.5, + "jaw": 0 + }, + "earlierSameGeometryBuild11": "Isolated short +1/-1 and jaw +1; same-frame bypass is byte-identical to neutral viewer; profile and tilted-face images inspected. PGFaceProcessor bytes unchanged in final build13." + }, + "FCP": { + "formalInstalledPluginLoaded": true, + "nativePanelEnabled": true, + "numberInput": true, + "singleResetUpdatesSliderAndText": true, + "shapeIsolation": "Smoothing/color cards bypassed; other eight shape values cleared; short +1 and jaw +1 separately rendered on the same frame.", + "viewerRespondedToEachIsolatedControl": true, + "qaTimelineOnly": true + }, + "continuousPreview": { + "production": "Each changed continuous step finishes its FxPlug host action before mouse-up; repeated equal steps are deduplicated.", + "automated": "Three intermediate snapshots published before gesture end; production view/controller exercised under action-scoped mock.", + "nativePointerObservation": "Pending user answer: CUA coordinate drag did not reliably exercise the displayed slider; no native mid-drag frame timing claim." + }, + "limits": [ + "No claim that every mouse event is presented as a separate host frame. Host scheduling and render speed can coalesce rapid updates.", + "Remaining five approximate shape algorithms and full combined-chain pixel equivalence remain outside this repair.", + "Some legacy Motion QA documents retain serialized standard parameter sections; new registration and current FCP template hide them.", + "Native VoiceOver, old independent keyframe-curve migration, and exhaustive multi-face/all-pose testing not performed." + ], + "privateEvidence": "User video, native screenshots, full AX and pixel-coordinate comparisons remain in ignored build/native-112; not uploaded." +} diff --git a/docs/verification/v1.1.2/notarization.json b/docs/verification/v1.1.2/notarization.json new file mode 100644 index 0000000..1070dac --- /dev/null +++ b/docs/verification/v1.1.2/notarization.json @@ -0,0 +1 @@ +{"message":"Processing complete","id":"5f5ce378-8430-467b-ae97-048e6bc81573","status":"Accepted"} diff --git a/docs/verification/v1.1.2/recovery-a2e33e8.json b/docs/verification/v1.1.2/recovery-a2e33e8.json new file mode 100644 index 0000000..b8febed --- /dev/null +++ b/docs/verification/v1.1.2/recovery-a2e33e8.json @@ -0,0 +1,1892 @@ +{ + "target": "a2e33e8e00a99b95dc29d67a819cb0897eda5756", + "remote": "https://dayu.media/git/dayu/paintfcp-fxplug.git", + "startedAt": "2026-10-21T16:20:40.586878+00:00", + "temporaryClone": "/var/folders/t4/kbc10sqs43b0rjf3nfh51nmw0000gn/T/paintfcp-v112-recovery-sfai_c10/checkout", + "scope": { + "cloneTrackedContentAndModes": true, + "gitFsckStrictFull": true, + "requiredResources": true, + "inspectorChecks": 157, + "inspectorASan": true, + "templateCodecAudit": true, + "core961Repeated": false, + "appBuilt": false, + "hostsLaunchedOrOperated": false, + "installedOrSigned": false, + "rootSourceModified": false + }, + "passed": true, + "cloneHead": "a2e33e8e00a99b95dc29d67a819cb0897eda5756", + "remoteMain": "a2e33e8e00a99b95dc29d67a819cb0897eda5756\trefs/heads/main", + "trackedFiles": 149, + "files": [ + { + "path": ".gitignore", + "mode": "100644", + "actualMode": "100644", + "blob": "d2bca6e38076bb5f7574cc7781eadef27b41d9ff", + "bytes": 490, + "sha256": "34e63260d343569ad4d5a1ffd6c15647da5a7da2b8940dc93f6d987c7fec474e", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "README.md", + "mode": "100644", + "actualMode": "100644", + "blob": "bd867e6f59fc2445e12e75dc2f42ab5a4b698a3a", + "bytes": 6595, + "sha256": "7f8dc4bd987eec9bc8b7c784933d5d5ef9858b665d5b9cc78cc63523b8cc3e71", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "RECOVERY.md", + "mode": "100644", + "actualMode": "100644", + "blob": "aa6b57c4de9d2bf794f14766d62fb55a361f5f44", + "bytes": 10377, + "sha256": "6881a09ae1d537b46b3c88dd17fdad8b50d227285681d724054011ea0f53ac3b", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "Templates/大鱼人像美化/Drop Zone.tiff", + "mode": "100644", + "actualMode": "100644", + "blob": "6d15c98bc221f999514f197ff67a7145836e6a38", + "bytes": 420128, + "sha256": "a7f8e3a2a431dbb3ce9e777040bb55e701cfe9ab9632e8cbb10359732bc8692e", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "Templates/大鱼人像美化/PARAMETERS.json", + "mode": "100644", + "actualMode": "100644", + "blob": "0b9ccd4d7e487955e06f22f4a6d5a50145b1c895", + "bytes": 14952, + "sha256": "e71ab50270dd5b2dc4ab76e1ede52e1646dd0ac93b0f7f793fee8725e97f2066", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "Templates/大鱼人像美化/README.md", + "mode": "100644", + "actualMode": "100644", + "blob": "97fb07b2336936567bee9a7df8a5c786a0297c8e", + "bytes": 4046, + "sha256": "a78cd5d79446926e83612a5c435a929ce454032ca74b526830661251abda544c", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "Templates/大鱼人像美化/VALIDATION.json", + "mode": "100644", + "actualMode": "100644", + "blob": "0da1a26ab8833e3cafcf39839152c414f99bbb7b", + "bytes": 9371, + "sha256": "84e8f289e74629ef72511854ba1a8250420aebf09a5d41a6f3ededd6b083b737", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "Templates/大鱼人像美化/大鱼人像美化.moef", + "mode": "100644", + "actualMode": "100644", + "blob": "ed75f3a89d303baefe4a5aef6743bd0da9e032bb", + "bytes": 23073, + "sha256": "e9fa97dc14323d0daa7d3d61b06a78ba4000a70ab9f5e67ebffd750d49df1e15", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril.xcodeproj/project.pbxproj", + "mode": "100644", + "actualMode": "100644", + "blob": "17e015f6d7744c50dff3aca43701ae1b90734b9d", + "bytes": 23083, + "sha256": "d1afc593065bd33122a8e8ba10b1825d3309866545c3f9739e2ea06c9584974c", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril.xcodeproj/project.xcworkspace/contents.xcworkspacedata", + "mode": "100644", + "actualMode": "100644", + "blob": "919434a6254f0e9651f402737811be6634a03e9c", + "bytes": 135, + "sha256": "7f3b00b5c3fdb45242d7b87e1e5c4e25d1fa8129a16c94295ecc4e8ea2235c5f", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/Info.plist", + "mode": "100644", + "actualMode": "100644", + "blob": "6324b554a6150956822d518a7d9e6eaa86237cf9", + "bytes": 3031, + "sha256": "47143998945b538de92eb590be3e0581c379e6718079583b6d0e7a00ae55d302", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/PGBeautyRenderer.h", + "mode": "100644", + "actualMode": "100644", + "blob": "a0a6965c837072e6d837a98b701d59b1cc139655", + "bytes": 1410, + "sha256": "4e9b663c47261e4feceb7ab38c25171b65f36c14417d82a8b7c49ee3201492d3", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/PGBeautyRenderer.m", + "mode": "100644", + "actualMode": "100644", + "blob": "4c9fc6fbb1dc1f2c4048a16435f554cae9f2ca74", + "bytes": 17132, + "sha256": "00b52b1f22c1e875f137ee4ea90f50d6caa38db277bebd0da538d0ba7e66072b", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/PGBeautyTypes.h", + "mode": "100644", + "actualMode": "100644", + "blob": "e1cd3ef21f37b831cdaa7d9f52211cafaf243994", + "bytes": 1149, + "sha256": "6ea8005accc22f85fe8be1b73bf6e89a5b37ffd6e97460d4f6dd69d55eaf33cc", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/PGFaceProcessor.h", + "mode": "100644", + "actualMode": "100644", + "blob": "0b861830a6e9652d81ccfe62f2ce758febee449f", + "bytes": 2178, + "sha256": "a3448bd75fd278c9702f079f55637ba2c26bc820bdbb81f49fb3a3d0e2a4aba5", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/PGFaceProcessor.m", + "mode": "100644", + "actualMode": "100644", + "blob": "c7587905444899b20a26fd52f792e1b66247832a", + "bytes": 47334, + "sha256": "e4122ca95f7ba41bc925b4cc4bf2bf88a72044ea41880cd66acd9c8278a7daf4", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/PGFaceSelectOSC.m", + "mode": "100644", + "actualMode": "100644", + "blob": "ae0aa7ce1c2de355b2c1cb890314a0de689df81a", + "bytes": 11630, + "sha256": "d5e1dd1db6825730803ddc3f21b588cd548cbbacc60760aa45ad9e2feedae307", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/PGInspectorState.h", + "mode": "100644", + "actualMode": "100644", + "blob": "20e8ec2136e8599c5192d0cc6a1aee7998be9f0f", + "bytes": 2170, + "sha256": "b2070ac33d83f36f76933c919a3e2825516548d499a07373c5c5734bd70a7c39", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/PGInspectorState.m", + "mode": "100644", + "actualMode": "100644", + "blob": "1fe45096b078206d2d4b8ce97d3ee033072cccac", + "bytes": 17971, + "sha256": "16be8841ee770cc3b2723926e94366e639c3e6dfd1ea56937df32e8d216bada0", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/PGInspectorView.h", + "mode": "100644", + "actualMode": "100644", + "blob": "90ca9bcbba506a764395d45548989276071dd524", + "bytes": 571, + "sha256": "56a442e44ebd5a9b5211014c8960bba85f9cee98f6000702515aedc51c1e2f69", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/PGInspectorView.m", + "mode": "100644", + "actualMode": "100644", + "blob": "c402e5da79d615759b6e4276677e083a03231380", + "bytes": 28873, + "sha256": "f965ffe5bfe9af789f919e32407ec5260ec324debb073dd256f356e187b7cd40", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/PGParameterIDs.h", + "mode": "100644", + "actualMode": "100644", + "blob": "2786f25aa3febe04365b037723862f6b5bd0f05c", + "bytes": 958, + "sha256": "87bcbbd3d3dabf3f2d7205cf6f1b70fa2b5c7997e9a66ed037e91227849761b7", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/beatygrilPlugIn.h", + "mode": "100644", + "actualMode": "100644", + "blob": "83e3d222dedde9412229f7f02b1847792e8718c0", + "bytes": 377, + "sha256": "941b81873c2fdcfcae37c424700dbd2a14957d05b752246677ba8f793f0b04ad", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/beatygrilPlugIn.m", + "mode": "100644", + "actualMode": "100644", + "blob": "97470c0565613acd2af61158cc1b8a72aa303d96", + "bytes": 27322, + "sha256": "0ffdc3dae7f0a47fd4b5d53651df52b5762940ad15f0c6ffc97922a70a02fb42", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/en.lproj/InfoPlist.strings", + "mode": "100644", + "actualMode": "100644", + "blob": "9a5f27348a39c8e3ee50cffc2fb359c78a1319c8", + "bytes": 85, + "sha256": "1b1cd5b74690bd5a74cf2b0a0c068bbc2c3462c5e9fe5ca3e61541bcbd451a7a", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/en.lproj/Localizable.strings", + "mode": "100644", + "actualMode": "100644", + "blob": "7f52f3dd719cb4f94e24867e36114cb061ef0b92", + "bytes": 132, + "sha256": "b3036a2339b97ebf264516e1e534351d1ceb64f45942595508f4d67d07b07769", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Plugin/main.m", + "mode": "100644", + "actualMode": "100644", + "blob": "34d50d3f8cdf438d3508d0aa94e3f2d20e45f962", + "bytes": 114, + "sha256": "5b812ddb1ef171fe075e4faf13d761935ca73ecbba1be0bd9d4802a64a7759cd", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/AppDelegate.h", + "mode": "100644", + "actualMode": "100644", + "blob": "f3f8e19cfe057114c2289ff37c01c2e6e1aa7ed0", + "bytes": 167, + "sha256": "3fc6516be93176f90c2deb17332c9cf98e670458a33fbad4fe7b8f367ec9494f", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/AppDelegate.m", + "mode": "100644", + "actualMode": "100644", + "blob": "1cb56f073356dd30add33415117bf4c24fdc4ef0", + "bytes": 3003, + "sha256": "acef6ade6591c039cd8b3e603f83d6d06f64da9709a0385b73c8588e824fe6de", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/Base.lproj/MainMenu.xib", + "mode": "100644", + "actualMode": "100644", + "blob": "57d03a50e249d189c5fa0a4602c5ec846f06612d", + "bytes": 50614, + "sha256": "7f0945bc5903a658550b712267870edecbdf1b73ac83c71f1358468f40c1ab1d", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/Info.plist", + "mode": "100644", + "actualMode": "100644", + "blob": "9e3fa301b20381eff178a49622f5b450e01abc1f", + "bytes": 1085, + "sha256": "dfa2a1082edda090513c3961e0a8d684cf29537d1c27b93062a4aba563bd4afb", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/SandboxEntitlements.entitlements", + "mode": "100644", + "actualMode": "100644", + "blob": "852fa1a4728ae4789e3bca55dd07caef3b41f2a5", + "bytes": 240, + "sha256": "b746c74b201e6af4e0864fbd1f4f629f96156a7ec4b7208bc995d0a5089bb592", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/en.lproj/Credits.rtf", + "mode": "100644", + "actualMode": "100644", + "blob": "da779d0f6bec11568066e347a01ccef0308488b2", + "bytes": 264, + "sha256": "ec846e198df85720e8443abb810334411b5690386f3062f90208c23b8575f28a", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/en.lproj/InfoPlist.strings", + "mode": "100644", + "actualMode": "100644", + "blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/main.m", + "mode": "100644", + "actualMode": "100644", + "blob": "99ad4384792f9b2050e0755c07522c0dab9b4b86", + "bytes": 112, + "sha256": "5c3dc97a53d0379af0e0ce75c5541f33c47f2da115d2d0018cfba003d185a63d", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/REA-分析与复刻说明.md", + "mode": "100644", + "actualMode": "100644", + "blob": "6581570f9d140ef8d0e00f19d9285d44a6ae3813", + "bytes": 10519, + "sha256": "ee64e260fd9261856047096570b8fed308284b3a02cd0dd892f3ceda6a5482ab", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/auto-follow-report.json", + "mode": "100644", + "actualMode": "100644", + "blob": "e60d6d055a513ab8e9c21d2b39460c9d0698e1d3", + "bytes": 15665, + "sha256": "1a0c91efcaee058f331f6a7446bea8794af1dcf9120f5c2585f249b188d038e3", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/beauty-preview.png", + "mode": "100644", + "actualMode": "100644", + "blob": "35ace472cb42629b01b3e05660cb7be8b9711fd7", + "bytes": 617622, + "sha256": "37aa97855915a49ff1f225a9e1fa9d8bcbed0be5f4109b6835ba4db17f9113f6", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/chin-report.json", + "mode": "100644", + "actualMode": "100644", + "blob": "b8aa2bbc6cb8706ec2d84ee92f70c082be0616d2", + "bytes": 2873, + "sha256": "4de8733880af4cfaba93dbfb9d4c3d4feea32395648ab900575f4cad563f9506", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/face-preview.png", + "mode": "100644", + "actualMode": "100644", + "blob": "9a5bab3ad706b95ac32875352d16d6580dcd48ab", + "bytes": 713552, + "sha256": "6cc662cbb2b554a0dd8c926d94a0d819506ac76710d9c09c2d3d7f808fbf686b", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/rea-auto-tracking.json", + "mode": "100644", + "actualMode": "100644", + "blob": "2f5738f934f0ce89780cf4535c7257b54a397bef", + "bytes": 2883488, + "sha256": "dc1007f3798fade5e454bb2ef0b58e4cfe2bb0256948c364070fd9af70a97377", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/rea-chin.json", + "mode": "100644", + "actualMode": "100644", + "blob": "ec98c683c0204e8bb31b4ce1766cc51637b88e7b", + "bytes": 13877, + "sha256": "180f56b03039518af5a9f77599c4cd2bf9b14a61cb2334e8815a59fff05616df", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/rea-host.json", + "mode": "100644", + "actualMode": "100644", + "blob": "9de443173a74668f0a2dced3426dae20549a16dd", + "bytes": 10111, + "sha256": "141866459948b19d5378de2f6534de333c795e317416f2ac6c9fdc86c94dd61a", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/rea-image-orientation.json", + "mode": "100644", + "actualMode": "100644", + "blob": "ba9774364a665c7afc4c7606bc651a2d00e3b5c3", + "bytes": 381285, + "sha256": "783a9176401b57ed617a61892bc0da08bef0378a54610b3a86b282672aeda888", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/rea-jaw-short.json", + "mode": "100644", + "actualMode": "100644", + "blob": "6820910ee5936739ddc197ba983e1df57b25ba98", + "bytes": 14330, + "sha256": "7b3fe8891f83487a2fd19c3f85dbb542a55aef0b0a29accd67dd5c2a1e3a1235", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/rea-plugin.json", + "mode": "100644", + "actualMode": "100644", + "blob": "79bcafbcfeda694ed466d95f81f30eb622a95a0b", + "bytes": 343165, + "sha256": "dda6e450915e1054653c28addfed5254c678dccf14ee66643d508e7087c1f0c1", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/rea-slim-pose.json", + "mode": "100644", + "actualMode": "100644", + "blob": "249eb3678b20c378e0d73239e0949cc86c2af436", + "bytes": 343127, + "sha256": "5f4a2dfe5796ce72bb3d022a85a42cd5ed0eceb0cd0655041812126ebec7933a", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/reference-template-parameters.json", + "mode": "100644", + "actualMode": "100644", + "blob": "9947e2ff182a146bc4c9120dfff7eacc8cca9c0c", + "bytes": 1608, + "sha256": "026e47e8ecbd9a967d8b8aabddac2a370479a43b9e1a7a7728b5b01a5002f006", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/short-jaw-air.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "9f87e2ad11ba372f32d6755bb209631a93cb466a", + "bytes": 22414, + "sha256": "f4ade84fdb2303515dab7b4d7eca8a9c2241039b9e6428cd51ceffc32b3f6b9b", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/short-jaw-report.json", + "mode": "100644", + "actualMode": "100644", + "blob": "9b7980d49daeedf11c68294f62fcc65f00af195a", + "bytes": 6799, + "sha256": "0252b98af803c294490b65710484174f4e475c42ddad50e7b43cafde6945de67", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/slim-pose-report.json", + "mode": "100644", + "actualMode": "100644", + "blob": "1db6ae9bd4f1351e66c8f833bda9393e3da58910", + "bytes": 9510, + "sha256": "1d38f246960486bb2b4b97c22b489c62b3d9e2dbc6b9a1241952f8923a19a5a4", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/下巴与坐标分析.md", + "mode": "100644", + "actualMode": "100644", + "blob": "3bc5aee73603c872ef7442b07c75127439d4d034", + "bytes": 6226, + "sha256": "c1867da31d975b295d7b462abd7a98da1e9456424ea6b447c6dc40c291b3637f", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/短脸与下颌骨分析.md", + "mode": "100644", + "actualMode": "100644", + "blob": "92b17d4d9b53c4650f8cc13e7b5bb0e6a3cfad78", + "bytes": 4698, + "sha256": "0874c627f9f7bc6c5fc8c8a959634b8151a71ee15c12925fbf902b19469c124d", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/脸型变形与转脸分析.md", + "mode": "100644", + "actualMode": "100644", + "blob": "42bf39d1a235632e8a34c3fa7110c7bc8559fb3a", + "bytes": 9394, + "sha256": "8a16f7701ea2d1004f58d9fbe93122827d40afc9556916bab1bec5ab48bf3972", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/analysis/面板交互连接修复.md", + "mode": "100644", + "actualMode": "100644", + "blob": "1fb0b1bbe3d34ddf299b4c011b0b437aae8d5531", + "bytes": 4184, + "sha256": "f35d65ac72cdfb6eb2b5a9b3b2456b3f50d56c1459f07391a561c90e0eda92b9", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/installed-signature.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "78fc46fd6aee5443af9eeb53a97502d0251cf2a9", + "bytes": 988, + "sha256": "add93ef0fa60cd32ed766c965e6f2869f56b4da65030e774e76d133b02ef7aec", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/live-face-asan.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "b92d565bec7a49444b638437b4ae8e7400ce90f6", + "bytes": 219, + "sha256": "b956e0fe7a3fccdd8eff8788807c0aaf60da56aa1cb153087f25234cc156c27d", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/notarization.json", + "mode": "100644", + "actualMode": "100644", + "blob": "86d17c6738b9e0aa6f92583ffc798c2e6b6bece1", + "bytes": 98, + "sha256": "91b4f5e239a50467bde83b8c40c1c1809f85cd4eb4b1f1091e1b2197c11a79b6", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/recovery-e03e460-beauty-face.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "2c6f0b5e7f7dedf9571d6da6ce67303bf34faedc", + "bytes": 298, + "sha256": "45698c80fdfc68c2dc68be59ba03380aa6e8194731d4858dc009f827dd06e226", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/recovery-e03e460-host-asan.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "7eeed088f0dad0564aa166232aedb9ae47a56dd0", + "bytes": 380, + "sha256": "65d0226f95e882702484849997fde558fae7af418e9243702f789b1e2fcacf14", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/recovery-e03e460-osc-asan.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "7abde29290bfea1e475af387899fb3160a60cc95", + "bytes": 3336, + "sha256": "2e326d2fc0eb5d2cdd9f07e2318dfd17a41d346a82f383b05b51f416ffdacdb3", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/recovery-e03e460-xcode-list.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "e90278ec1aedf6a1176682ec1037e49ba2f588c1", + "bytes": 570, + "sha256": "ff9ffb300caac840f4e64f97f24712e319af9bbe4cee1dbbd79b0a5caa1432d1", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/recovery-e03e460.json", + "mode": "100644", + "actualMode": "100644", + "blob": "ecd24b6f35c893c3637dc4e268d0acabb4d09967", + "bytes": 25360, + "sha256": "559839e989fb4fa9589847632975a6d4d8548c00e6ad5b87bdba736bb3e1daf3", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/recovery-e03e460.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "ed81f4abdeada50c1afb2ac866d3cc79fd6579d9", + "bytes": 846, + "sha256": "3931beb81cf475ce1c44e5b90c8e9101abb1a7ba20b657d72090b6e7662530cc", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/release-receipt.json", + "mode": "100644", + "actualMode": "100644", + "blob": "e53f21de9e8ea68a40f435cf9e3d1a0d95499bde", + "bytes": 2454, + "sha256": "07ba4f5bbba101a49d4579c0b79fbce0dad70a1e4b5887e61e052741c49486ee", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.5/core-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "76d29d91672ec631950b2f3ada1db39db4c877ac", + "bytes": 427, + "sha256": "408910aeedcf0155bc31ef43ca6e8994d9348f8fbdc0c25eb8a43ce89965e081", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.5/delivery-receipt.json", + "mode": "100644", + "actualMode": "100644", + "blob": "0bc3fedabf83cdddc2b28204e45193d7ee268864", + "bytes": 3714, + "sha256": "5c26aaa043e968284afd9748d4f563b354f4a63d8ec8464c1edc911761cd6c36", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.5/host-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "3e1c1c6b7c104995a2656e142671759634352525", + "bytes": 271, + "sha256": "c727d9d56a0b46a4cdbc79d24eeedc589e5984b38144f28ccf017f4d65f504f7", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.5/installed-discovery.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "1d622a5489046ae31682dbce99f17ab435db7968", + "bytes": 200, + "sha256": "60791b375880f39ee5d9e39fc47ac973701c28367b02a0a02d4c1c7e2f58a784", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.5/installed-signature.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "e187bd1163f873f409be3a40ea95b5902494b209", + "bytes": 988, + "sha256": "9fe71339911482938f3e4af5584911c94c3d9c80b54a4c534d59905b019fe056", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.5/installed-verification.json", + "mode": "100644", + "actualMode": "100644", + "blob": "4557bc7f8f53ba4283dfe9dac3a0fe03b2a1a14f", + "bytes": 1376, + "sha256": "1b8a51bf8b4642d485cb7731fc71c2c65736b5c60d742124a50e0cbd2b0efd2e", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.5/notarization.json", + "mode": "100644", + "actualMode": "100644", + "blob": "fd81f72ba3bdb8f27b44a85fafd8b55eb90713cb", + "bytes": 98, + "sha256": "77bb451ccce2dcf31382015bf6addb557400a20fce0560d442e222254a075057", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.5/osc-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "c9c618896ca3ee0c2a943979103ab3b42335c7e0", + "bytes": 3229, + "sha256": "5e443009bc39635d01a1f6276b48170fe9da73c088646425c6ed140d87ba4518", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.5/recovery-abe97ed-test.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "03d86b12b2426c0b26eee320efab6a133a4f147d", + "bytes": 553, + "sha256": "f6296c73b6f94573d239fc627ec21e6eb6518b2b5ec35e44660097aeca923f8b", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.5/recovery-abe97ed.json", + "mode": "100644", + "actualMode": "100644", + "blob": "9e3278418a588f6ba83f47c30792306f8bc2dda9", + "bytes": 26143, + "sha256": "74eef3111d9207b86d62e0019545cca4a595597d2ea40f60efdcfdf455902e87", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.5/recovery-abe97ed.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "96837e1cfb2ac5102b008b7133324cc04b423aef", + "bytes": 566, + "sha256": "3f59d5be5984fe89376a5eb4cce46888ffd5886fe058303620708999bcaf496d", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.5/slim-real-video-asan.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "0adc11ae33571e14a09302f6bb02c1fa82e1ff99", + "bytes": 207, + "sha256": "2828625fd5bc45a8e0c6e06b1c033e394e5dbc0ff4570200eed673067330f2d7", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/anatomical-summary.json", + "mode": "100644", + "actualMode": "100644", + "blob": "a6c0ab3ba191a83090a6784607a23015442a6d60", + "bytes": 566, + "sha256": "de8fb5f975ad44b47a672899e079d21eb8444d3ad40babe336c43e6bf267b545", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/core-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "c5b30862d71601a1929c897ec232bc4e5e59da41", + "bytes": 427, + "sha256": "a7a955927f6e03f3a2337b1384f0456724dbd2ec324ef678ceaeebc1c9b51aeb", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/delivery-receipt.json", + "mode": "100644", + "actualMode": "100644", + "blob": "ca60856382225c2be7ca361278f7127bc9a4a797", + "bytes": 3573, + "sha256": "623e2c12075861e871e3b458dfde4a6e154d3be265d52b5011be04d186a420ed", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/host-negative-control.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "fd904777740728405cc9b39cb44baecfa6002179", + "bytes": 4206, + "sha256": "d3564b892dfcf58ccce0a4f648afb20493feb50d8eac76e1f1434817e0ea093d", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/host-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "6d9e2d7e251c0ccfaee602ca70435408d6dbfa75", + "bytes": 1565, + "sha256": "4f07103a1732baa5c483863e7cfeb913219e20fa185214923522b8be3eb87aa1", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/installed-discovery.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "fda2720728c751947eb3bb4ad45b01666896b00c", + "bytes": 200, + "sha256": "23faa17aff5e2d62d84f88b665f5fa7ddb977c691e278e4dee1a16859ade6f4a", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/installed-signature.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "69585e53289f540e65cec9d3dc19088f1c0dbba0", + "bytes": 988, + "sha256": "516da2ca2597f321ebb9645b4bddf9eef1dbfc8fdc8f0c0358bdb7fd23e15c2c", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/installed-verification.json", + "mode": "100644", + "actualMode": "100644", + "blob": "ed0ff99d1e2e6e4af9547f76c0c95ecc1b88417f", + "bytes": 4916, + "sha256": "7048c144b35f08c9d8bb237f7b2a530f1f8156472e380ec66e252f64d64b9345", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/notarization.json", + "mode": "100644", + "actualMode": "100644", + "blob": "64df08e4d05e6fca94dc8b0f751617f81d41e471", + "bytes": 98, + "sha256": "9c11532cfb4b6bc44b595144e3244db294abe1506513db165a5e31aee09d39f3", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/osc-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "5b42805af91bf0f7aa331508a71859ce85b6d7d2", + "bytes": 3249, + "sha256": "a3c8c92fb194705c11b360aeb2cb36e555866d3bae811fc4415af1ca92176e76", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/recovery-ad54726-core-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "73b0beb986ca5c280588c9f83295916349d08079", + "bytes": 429, + "sha256": "b6b9ed4b3af54249d18ce2ff9f544b97176a0309ccf5b5612f6eda5ad3afd273", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/recovery-ad54726-fsck.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/recovery-ad54726.json", + "mode": "100644", + "actualMode": "100644", + "blob": "e40dc0529c3800ff2d7773d58a1dc7c4ff112bec", + "bytes": 40689, + "sha256": "5558a5a0eeaf75d153faae6c1b93ebb4d9e368c63d07e671689112e0f4ade49a", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/recovery-ad54726.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "6085bca675afcfc2dd273a10c3d838507d26ffaa", + "bytes": 1293, + "sha256": "6d065604f892fe5e84f88e62606a095f7aa98b5afba1af766870a3810e900b6f", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.0.6/slim-chin-real-video-asan.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "900c6e4a1d44c7add54878214fd08c171ec86158", + "bytes": 213, + "sha256": "16144bf293087ba68359a6d278c99165038d6990458f4acb951367df8055db3d", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/core-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "e46c2c620898fab9a56d4f44b57c0d51e3fce72f", + "bytes": 429, + "sha256": "fc0e9447e4ff539576292d848e3b3d0a8a7685b640ccf8dd8b7dbb5d463ed0e5", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/delivery-receipt.json", + "mode": "100644", + "actualMode": "100644", + "blob": "7aa60897d2becdd86974da29dfb7bf1079a96d19", + "bytes": 3573, + "sha256": "42a7e10eddc8248b4fc890a07c14091578ede411747f6f22c124ac6b75ec10ec", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/host-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "b01837aa3ef0305527a9165a096a3c856232a156", + "bytes": 1565, + "sha256": "09765a58fdf74d475f3a0a0fc46392064605a88c52eb745383c5fd97665f2535", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/inspector-preview.png", + "mode": "100644", + "actualMode": "100644", + "blob": "422a58cbe2b625c564935296c64e42645cccc1e5", + "bytes": 493938, + "sha256": "f02c434eb770c6643580eb6eb6eaa05507d1472750765203a8f041bf7d6803d4", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/inspector-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "abeccc2498147394739c07d74a15fbe9f328603c", + "bytes": 34, + "sha256": "46b76266299eb865ab1af6a9eed5b16bc15fd9bd89013eda7e2e87729e3e5270", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/installed-discovery.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "835e4d8e65d7aa31787c6bd63f09e23b522ae995", + "bytes": 200, + "sha256": "755bbe7625e579dfef5199a9e5913d1e80785d06c771fbe9db2e98366ffe9b5c", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/installed-signature.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "fe24464d2d29837a420fcd3214a4034f07958007", + "bytes": 988, + "sha256": "530b40438c3897aad9b5b3e4bb718dcaaee615e9d84ba8f7d9ffd9da17a4c02c", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/installed-verification.json", + "mode": "100644", + "actualMode": "100644", + "blob": "cdab391803108f9f18caf64ad88adcf9bc5e39b5", + "bytes": 5390, + "sha256": "1d109638b59822bd3dde497fbe2249d5484592b4cdca324fe747cba64e7505ac", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/notarization.json", + "mode": "100644", + "actualMode": "100644", + "blob": "a39f9adfa33d9d2c5808e7687225bdfa8ac12ed5", + "bytes": 98, + "sha256": "29965471dd9efe99437ee5d200646bfb917a1018f0ccfd7b6a865ea10796b7ae", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/osc-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "b2138625f672278e6737298c46db1a444675a451", + "bytes": 3249, + "sha256": "c21e458dc1d39fd8b065afea813d58cb52d627085c09b475fa7f91fe3d7a868e", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/recovered-inspector-tests-asan.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "abeccc2498147394739c07d74a15fbe9f328603c", + "bytes": 34, + "sha256": "46b76266299eb865ab1af6a9eed5b16bc15fd9bd89013eda7e2e87729e3e5270", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/recovered-template-audit.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "43160e09b3afccb874dab10ca2c903ab59c46f89", + "bytes": 1735, + "sha256": "33fb58f2208fddf8d4ae57880c5653ff27a33f4c98b04c94ed9ff5b3e4f96291", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/recovery-f79d24e.json", + "mode": "100644", + "actualMode": "100644", + "blob": "493b7753f24289779e0b77f2467cb1f52ad6423c", + "bytes": 51237, + "sha256": "247bce418cbf8e68f4da6a741b4f6af30f5076c0596bbc47c56fb04003f601d7", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/recovery-f79d24e.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "0f8c867ed66e8939374a024ccda5bb908b5c72a9", + "bytes": 492, + "sha256": "7f9ba9b210055cef8d7a321bc56fa09c0957fdb4f8aad11b2e710b269517d20a", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/template-audit.json", + "mode": "100644", + "actualMode": "100644", + "blob": "43160e09b3afccb874dab10ca2c903ab59c46f89", + "bytes": 1735, + "sha256": "33fb58f2208fddf8d4ae57880c5653ff27a33f4c98b04c94ed9ff5b3e4f96291", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.0/ui-validation.json", + "mode": "100644", + "actualMode": "100644", + "blob": "4a68b344cdc71945e3ba2bf5a20f0c0ebbd16a08", + "bytes": 1183, + "sha256": "03ef2f2378f264bde71080792fa24fa4614894916c82205fa12faad4692131f2", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.1/core-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "45a9615b9b29dd7d009ab6a5e43dfe49667e9b6b", + "bytes": 429, + "sha256": "a5a32ca73802d28a088d3c32d88189df2424815b44ce6568eab0c19728c16945", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.1/host-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "fd28b15384ab61cc55837207019addbd6d0cbfed", + "bytes": 1565, + "sha256": "9f29ef85c3732c56eab1c8a09b608416b71418485127a1d3105b41d58b076bd9", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.1/inspector-before-fix.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "7accdd446bb78b18f6c21bc320767e539d2a3cb3", + "bytes": 414, + "sha256": "baa0802640559da29d376b053d6fd071388acc82285fb3c34ce4d693624e5856", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.1/inspector-tests-asan.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "080b3cafeefb0b4b3e38b86759c82729fde090af", + "bytes": 34, + "sha256": "d1508b9072328ee901d2d09fddfc0f16c161a77dc74e374f260047bac6fa5f2b", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.1/inspector-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "080b3cafeefb0b4b3e38b86759c82729fde090af", + "bytes": 34, + "sha256": "d1508b9072328ee901d2d09fddfc0f16c161a77dc74e374f260047bac6fa5f2b", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.1/interim-delivery-receipt.json", + "mode": "100644", + "actualMode": "100644", + "blob": "471fb7d31c8b8c7d43e6eeed4e9caeda6756b182", + "bytes": 3416, + "sha256": "3e639e20fa3c8140051b1e1727c79c5d2da988f376fc387997015aeab309c5c1", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.1/interim-installed-discovery.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "6bb56eb0ee4fc1ff74fe41192dbe6c1911b624d1", + "bytes": 200, + "sha256": "579c135cfdb36f0a380bff67d347aaa230e4358193916a14ee2f994f5fda6ee0", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.1/interim-installed-signature.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "217a01a1ee68de3dda74d56fb46f3b30a59f18a3", + "bytes": 988, + "sha256": "ed9730a16ca06b47190f6fb7381c40bd65fa9829553a7ba626d3637f1d4284f3", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.1/interim-notarization.json", + "mode": "100644", + "actualMode": "100644", + "blob": "75daa19ae8669c4dc4e4098815d1dfe4681a9965", + "bytes": 98, + "sha256": "c0cd09705f9610b287a460d75147ecda086922ad07f134c26b6f4b2a99ba371b", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.1/interim-stage-cleanup.json", + "mode": "100644", + "actualMode": "100644", + "blob": "f6edea1ea6bf062e7eeb17667464ce076250f835", + "bytes": 506, + "sha256": "4902e784e20d14b0dbf852ee7f7b10e365788bcc365b02161a7f4be059d84b34", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.1/native-interface-log.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "ff351777e80f26af69b571e0191c6cccd3c22889", + "bytes": 1206, + "sha256": "ba9b10a3047db4404bb942d005e8a9ba8cdb48e6b51ad2ccc7825f81b83d44a3", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.1/osc-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "8b804539da30ab9d40688ae54bb4eafe24668301", + "bytes": 3249, + "sha256": "820ab54c4b0c85bb5a7cdbdd79061396c20861eeb7560bf81fecbcaa707247e5", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.1/recovery-53ce88d.json", + "mode": "100644", + "actualMode": "100644", + "blob": "911fa3e22dfe47c26b851a5541ad74f585fef260", + "bytes": 58215, + "sha256": "13b0e08667d4ec84612ebbfa011b6e8f8a8a05f13bbed622e33398be9d5ffb0b", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.1/recovery-53ce88d.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "778ed86b39e21bbd16c88122f491e01f96286483", + "bytes": 846, + "sha256": "39f55b12613f467d79b5046aa6f686d4211077235d95778328fc81fdd59b381e", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.2/automated-tests.json", + "mode": "100644", + "actualMode": "100644", + "blob": "816672619b917e3507659fdcb25d8f19d04bff03", + "bytes": 670, + "sha256": "054305730f06d7a63f280ee3bbda55053b12b4d2aa5301261640fafe2b4c840c", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.2/continuous-preview-before.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "6461e3fe46b9230897adee15cbee21407555d88e", + "bytes": 256, + "sha256": "16aa4765fd42ffe994803d4a2176e7656be68e2c09c6134385360ee3b42e632c", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.2/core-tests.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "c690328d26abfc3a07b9fd173c88c7f4ab39c92e", + "bytes": 429, + "sha256": "cc9fcd6fa43c5d0d195a2215a01b2e62227f6c11e57c61520cb1cae7c86f1c81", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.2/host-adapter-asan.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "eb138dd0ccd606d5bd77d2b3fb1c9411da044974", + "bytes": 2505, + "sha256": "4a3e7b52a56444f2990341e5a3de3b6f49ac9d3a63a54e4feda7f128c842039d", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.2/independent-review.json", + "mode": "100644", + "actualMode": "100644", + "blob": "2ed546832b32dfd2b1a8ee44fb7ebf61b60d4d66", + "bytes": 741, + "sha256": "b556649db60bd10806c7079f3c1f8b6480daf8d12930726f580e6e1ac43f853c", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.2/inspector-asan.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "89813b6bf146f90fb238b00c80b82defb0bd8a43", + "bytes": 34, + "sha256": "1cec6101aaedd3efe40ee3c58b2dfda09f42f9e81cfc17ed06192f23055c18df", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.2/interim-build11.json", + "mode": "100644", + "actualMode": "100644", + "blob": "04529d9ff3cfd6ceae7de8b8609914519c51d166", + "bytes": 3537, + "sha256": "f613e9f4c6ad6699106cc72b0eb36d2df03bd45d08887f1b468253e29547806d", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.2/interim-build12.json", + "mode": "100644", + "actualMode": "100644", + "blob": "4025d0e708853c994404e230db2873f4c7b5bff1", + "bytes": 3613, + "sha256": "f077db600341a3bba2c2a25292a9e405db9a14318e4972588bd4b3a79e9cb9a3", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.2/osc-asan.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "e8143567bba96b27b7eac0893e7ad5849bca50c6", + "bytes": 3249, + "sha256": "71549e45a169349af146e731d99a6459c80b566dc0d6cb51da2d690fe7df7df5", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/verification/v1.1.2/real-frames-asan.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "745dd96797fa590eddf01b0ad708b995ee99a07c", + "bytes": 214, + "sha256": "489e6f5cf26969cbc5da714845fafd98f98a702b93e11eb9d6620d0c21fa2e25", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "docs/验证记录.md", + "mode": "100644", + "actualMode": "100644", + "blob": "2e61dcf7cca20f9683cf3b14d86d0dafe8ae527a", + "bytes": 20061, + "sha256": "485fb64b9e63159bd96bb23548509797c0538863bb1e2a29ee750d02f80a3b56", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "scripts/checkpoint.py", + "mode": "100644", + "actualMode": "100644", + "blob": "8248d1732aceed377d28cdae02873057f442474b", + "bytes": 2218, + "sha256": "3c27b0e603dd2d94512f611cec97bd9afe5809aea0f5a4bb213995d2e23366f8", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "scripts/deliver.py", + "mode": "100755", + "actualMode": "100755", + "blob": "b3d04d62b1a673c33eb9c91ebf6a54ab19b6fb8e", + "bytes": 13444, + "sha256": "5c390ab63aa94a978ac75145ade33c2a4de54c1808a511436419a8fbf4b31c8a", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "scripts/inspect-face-geometry.m", + "mode": "100644", + "actualMode": "100644", + "blob": "d075cf7c8c9a23b9bd01bbcbc31da89fea84d5d3", + "bytes": 6613, + "sha256": "a2c54e7297f9f94e9c56c0b29f9ce607756705f2005c1f13e10996bc26c24b66", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "scripts/inspector-template.py", + "mode": "100644", + "actualMode": "100644", + "blob": "e079861994162d06ca5b5fb57f618cdc6e619709", + "bytes": 12103, + "sha256": "f2956fc983f860d585c9ad2a25644ba1ef8dad07d8a1fb5babe4c9ea28b9c145", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "scripts/test-host.sh", + "mode": "100755", + "actualMode": "100755", + "blob": "4964af978d9c8feb6da2e6bd9c081c4334d818ad", + "bytes": 1216, + "sha256": "b4196edb0331b3cb93458603587000a5d3ce02130c799cf6cb6169cdeab0bb31", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "scripts/test-inspector.sh", + "mode": "100755", + "actualMode": "100755", + "blob": "b4392774ad72f2be36a5c032df4bf79fcd5d6445", + "bytes": 1415, + "sha256": "2db586f0a83da8150f14823374d2d5d53043b58ce481bf4f3eb9c53e077c23b3", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "scripts/test-osc.sh", + "mode": "100755", + "actualMode": "100755", + "blob": "ffaed0b8d449eef6acf2fb352d9fea10fc1649fd", + "bytes": 941, + "sha256": "ed405cd214ce252641074d0ef0a12c4cc0faf3e1869fe92716a98fff7f9ac517", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "scripts/test.sh", + "mode": "100755", + "actualMode": "100755", + "blob": "f13ba656929fe34b43c143bdfeb4a208c44c7428", + "bytes": 932, + "sha256": "3ca9cb120b452a0c402debbe5d3399fa4996e0ea0882253470791494815d530d", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "tests/beauty_render_tests.m", + "mode": "100644", + "actualMode": "100644", + "blob": "24050fb3a2630693253202ae1525c280f4f144eb", + "bytes": 16870, + "sha256": "b04eb2f0d78faec13bbdd2a3286cc74c46c2f536358c7c1c3d5d03c54daa868c", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "tests/face_tests.m", + "mode": "100644", + "actualMode": "100644", + "blob": "44ae9e4992e8fe8222e3238a196e09e22632c385", + "bytes": 33355, + "sha256": "115b1985442d7f0f4deadf9ca5201e510f03f5c10ac1aeb7c1d98da799b84158", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "tests/fixtures/ATTRIBUTION.txt", + "mode": "100644", + "actualMode": "100644", + "blob": "6e439ab97256952b0acd1eef0e1c1b4ab3ea015c", + "bytes": 498, + "sha256": "8823ad8aed1a5c1bdda93946e4b5ed24cd542e996a2b8087517cf62f7f4f2a84", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "tests/fixtures/astronaut.png", + "mode": "100644", + "actualMode": "100644", + "blob": "834cda0012478c5edc8d43bade96d315dedeaab4", + "bytes": 791555, + "sha256": "88431cd9653ccd539741b555fb0a46b61558b301d4110412b5bc28b5e3ea6cb5", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "tests/host_adapter_tests.m", + "mode": "100644", + "actualMode": "100644", + "blob": "fd1c1c2f079f4c0bcc28709b7b193d5a91fc7165", + "bytes": 49006, + "sha256": "15f282b961de5d462a3d6b9e4ea60f2d8561c8de16a05d5b6d496348bb46f3f3", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "tests/inspector_tests.m", + "mode": "100644", + "actualMode": "100644", + "blob": "d40257296c313f1235e676b74fba44ec371ff672", + "bytes": 26784, + "sha256": "d7670b402091ca39435c242aaffee3e682802fdba7c6f5ea8985155be880fca0", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "tests/osc_tests.m", + "mode": "100644", + "actualMode": "100644", + "blob": "66fff5f78f8e0ba08026e53375b184a460a29162", + "bytes": 22495, + "sha256": "a3199147e32facd63373b53f77840408411b04436fb1dd42e2fb71023c8f2f8a", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + }, + { + "path": "tests/slim_tests.m", + "mode": "100644", + "actualMode": "100644", + "blob": "fccbde25793fad86d66f50253e29b45da529f814", + "bytes": 31388, + "sha256": "9615c412245e0c67a85a4138355747d831eefc40fd702874f34805de96cb870e", + "bytesMatchGitBlob": true, + "computedBlobMatchesTree": true, + "modeMatchesTree": true + } + ], + "allTrackedBytesBlobsModesMatch": true, + "lfsPointerFiles": [], + "submodules": [], + "lfsAttributes": [], + "gitmodulesPresent": false, + "workspaceDifferencesFromFrozenSHA": [], + "gitFsck": { + "exitCode": 0, + "output": "" + }, + "requiredResources": [ + { + "path": "Templates/大鱼人像美化/大鱼人像美化.moef", + "exists": true, + "bytes": 23073, + "sha256": "e9fa97dc14323d0daa7d3d61b06a78ba4000a70ab9f5e67ebffd750d49df1e15" + }, + { + "path": "Templates/大鱼人像美化/Drop Zone.tiff", + "exists": true, + "bytes": 420128, + "sha256": "a7f8e3a2a431dbb3ce9e777040bb55e701cfe9ab9632e8cbb10359732bc8692e" + }, + { + "path": "beatygril/beatygril/Wrapper Application/Base.lproj/MainMenu.xib", + "exists": true, + "bytes": 50614, + "sha256": "7f0945bc5903a658550b712267870edecbdf1b73ac83c71f1358468f40c1ab1d" + }, + { + "path": "beatygril/beatygril/Wrapper Application/en.lproj/Credits.rtf", + "exists": true, + "bytes": 264, + "sha256": "ec846e198df85720e8443abb810334411b5690386f3062f90208c23b8575f28a" + }, + { + "path": "beatygril/beatygril/Wrapper Application/en.lproj/InfoPlist.strings", + "exists": true, + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" + }, + { + "path": "beatygril/beatygril/Plugin/en.lproj/InfoPlist.strings", + "exists": true, + "bytes": 85, + "sha256": "1b1cd5b74690bd5a74cf2b0a0c068bbc2c3462c5e9fe5ca3e61541bcbd451a7a" + }, + { + "path": "beatygril/beatygril/Plugin/en.lproj/Localizable.strings", + "exists": true, + "bytes": 132, + "sha256": "b3036a2339b97ebf264516e1e534351d1ceb64f45942595508f4d67d07b07769" + }, + { + "path": "tests/fixtures/astronaut.png", + "exists": true, + "bytes": 791555, + "sha256": "88431cd9653ccd539741b555fb0a46b61558b301d4110412b5bc28b5e3ea6cb5" + }, + { + "path": "tests/fixtures/ATTRIBUTION.txt", + "exists": true, + "bytes": 498, + "sha256": "8823ad8aed1a5c1bdda93946e4b5ed24cd542e996a2b8087517cf62f7f4f2a84" + }, + { + "path": "beatygril/beatygril/Plugin/PGInspectorState.h", + "exists": true, + "bytes": 2170, + "sha256": "b2070ac33d83f36f76933c919a3e2825516548d499a07373c5c5734bd70a7c39" + }, + { + "path": "beatygril/beatygril/Plugin/PGInspectorState.m", + "exists": true, + "bytes": 17971, + "sha256": "16be8841ee770cc3b2723926e94366e639c3e6dfd1ea56937df32e8d216bada0" + }, + { + "path": "beatygril/beatygril/Plugin/PGInspectorView.h", + "exists": true, + "bytes": 571, + "sha256": "56a442e44ebd5a9b5211014c8960bba85f9cee98f6000702515aedc51c1e2f69" + }, + { + "path": "beatygril/beatygril/Plugin/PGInspectorView.m", + "exists": true, + "bytes": 28873, + "sha256": "f965ffe5bfe9af789f919e32407ec5260ec324debb073dd256f356e187b7cd40" + }, + { + "path": "scripts/inspector-template.py", + "exists": true, + "bytes": 12103, + "sha256": "f2956fc983f860d585c9ad2a25644ba1ef8dad07d8a1fb5babe4c9ea28b9c145" + }, + { + "path": "tests/inspector_tests.m", + "exists": true, + "bytes": 26784, + "sha256": "d7670b402091ca39435c242aaffee3e682802fdba7c6f5ea8985155be880fca0" + }, + { + "path": "scripts/test-inspector.sh", + "exists": true, + "bytes": 1415, + "sha256": "2db586f0a83da8150f14823374d2d5d53043b58ce481bf4f3eb9c53e077c23b3" + } + ], + "frameworkReferences": { + "AppKit.framework": true, + "FxPlug.framework": true, + "PluginManager.framework": true + }, + "additionalSystemFrameworks": { + "CoreImage": "module imports in source; not an explicit PBX framework entry", + "Vision": "module imports in source; not an explicit PBX framework entry", + "IOSurface": "module imports in source; not an explicit PBX framework entry", + "Metal": "module imports in source; not an explicit PBX framework entry" + }, + "verificationNotes": [ + "The initial recovery harness incorrectly required all system frameworks as explicit PBX entries. The project uses module imports for those; only actual explicit AppKit/FxPlug/PluginManager entries are required here. No source defect was inferred, and no APP build is performed in this check.", + "UI source membership is verified through Xcode file-system-synchronized groups and target-specific exceptions, rather than requiring duplicate literal filename references." + ], + "uiSourceProjectReferences": { + "mechanism": "PBXFileSystemSynchronizedRootGroup", + "target": "XPC Service", + "sources": [ + "Plugin/PGInspectorState.m", + "Plugin/PGInspectorView.m" + ], + "excludedFromPluginTarget": false, + "explicitNameOccurrenceCountIsNotMembershipTest": true + }, + "inspectorTestOutputTail": "Inspector: 157 checks, 0 failures\n", + "inspectorTestCountParse": [ + [ + "157", + "0" + ] + ], + "inspectorTests": { + "checks": 157, + "failures": 0, + "ASan": true, + "exitCode": 0, + "log": "inspector-tests-asan.txt" + }, + "interactionSourceInspection": { + "review": "Product bytes/modes restored and verified; detailed source review recorded separately. Native QA is separate from recovery." + }, + "templateAudit": { + "status": "structure_verified_native_loading_pending", + "templateSHA256": "e9fa97dc14323d0daa7d3d61b06a78ba4000a70ab9f5e67ebffd750d49df1e15", + "pluginVersion": "1.1.2", + "publications": [ + { + "object": "510000011", + "channel": "./2/100", + "name": "FCP 版本作者→" + }, + { + "object": "510000012", + "channel": "./2/100", + "name": "更多模板浏览器访问→" + }, + { + "object": "510000005", + "channel": "./210", + "name": "" + } + ], + "parameterPathsResolved": 50, + "sourceMediaClosed": true, + "mediaSHA256": "a7f8e3a2a431dbb3ce9e777040bb55e701cfe9ab9632e8cbb10359732bc8692e", + "customState": { + "class": "PGInspectorState", + "schema": 1, + "hasEdits": false, + "values": { + "41": 0.0, + "30": 1.0, + "71": 1.0, + "27": 0.0, + "5": 1.0, + "35": 0.0, + "24": 0.0, + "2": 0.0, + "32": 0.0, + "40": 1.7999999523162842, + "70": 1.0, + "18": 0.0, + "29": 0.0, + "26": 0.0, + "15": 0.0, + "4": 0.0, + "23": 0.0, + "12": 0.0, + "42": 0.0, + "72": 1.0, + "31": 0.0, + "1": 1.0, + "39": 0.0, + "28": 0.0, + "17": 0.0, + "25": 0.0, + "14": 0.0, + "3": 8.0, + "33": 0.0, + "22": 0.0 + }, + "disabled": [], + "classes": [ + "NSDictionary", + "NSSet", + "PGInspectorState" + ], + "innerBytes": 935, + "innerSHA256": "257540ac6079756a76f3d31dff1b9bca2b33393962057927791316965495ab60", + "outerBytes": 1127, + "outerSHA256": "95d5f1e2c35c40e9f1234b1480894bcc0ee68c0822c9bd3f7c04338062e6a26b", + "encodedCharacters": 1516, + "exactTextRoundtrip": true + }, + "nativeLoading": "pending user; no host executed" + }, + "clonePostChecksTrackedDiff": "", + "temporaryCloneRemoved": true, + "completedAt": "2026-10-21T16:20:48.068190+00:00" +} diff --git a/docs/verification/v1.1.2/recovery-a2e33e8.txt b/docs/verification/v1.1.2/recovery-a2e33e8.txt new file mode 100644 index 0000000..97acc8a --- /dev/null +++ b/docs/verification/v1.1.2/recovery-a2e33e8.txt @@ -0,0 +1,11 @@ +Target: a2e33e8e00a99b95dc29d67a819cb0897eda5756 +Remote: https://dayu.media/git/dayu/paintfcp-fxplug.git +Passed: True +Tracked files: 149 +All tracked bytes/blob IDs/modes: True +Git fsck --strict --full: 0 +LFS/submodules: [] / [] +Inspector tests: {'checks': 157, 'failures': 0, 'ASan': True, 'exitCode': 0, 'log': 'inspector-tests-asan.txt'} +Template audit: structure_verified_native_loading_pending +Core 961 tests not repeated; no APP build/host/UI/sign/install. +Temporary clone removed: True diff --git a/docs/verification/v1.1.2/recovery-inspector-asan.txt b/docs/verification/v1.1.2/recovery-inspector-asan.txt new file mode 100644 index 0000000..89813b6 --- /dev/null +++ b/docs/verification/v1.1.2/recovery-inspector-asan.txt @@ -0,0 +1 @@ +Inspector: 157 checks, 0 failures diff --git a/docs/验证记录.md b/docs/验证记录.md index 2e61dcf..31c5410 100644 --- a/docs/验证记录.md +++ b/docs/验证记录.md @@ -117,3 +117,13 @@ Motion:独立普通视频项目,源PTS0、1920×1080/25fps/10秒,媒体通 替换短脸和下颌骨的旧脸框近似,恢复目标76点的11边下半脸区域与六组局部采样,沿用单次图像重采样和图像/四张蒙版共用坐标场。四项已恢复控制缺完整76点时安全直通,其余五项和全链组合仍有近似边界。分析报告、CPU证据和AIR摘要见analysis/短脸与下颌骨分析.md。 1551项全部通过:49美化、116人脸、796瘦脸/下巴/短脸/下颌骨、335宿主适配ASan、98 OSC ASan、157检查器ASan。宿主独立物理行序用例扩展到短脸正负与下颌骨,28种控制/原点组合响应在预期下半脸,瞳孔区差异为0,坐标标签切换逐字节一致;独立upright参考最大差2/255,均差<0.005/255。额外真实正面/侧脸ASan专项886项通过,含重复基础用例,不相加。已核对生产源码与冻结摘要一致。合并版尚待正式构建和原生验收。 + +## 1.1.2(13)正式安装与原生验收 + +最终签名源码`a2e33e8e00a99b95dc29d67a819cb0897eda5756`。通用Release编译、Developer ID逐层签名、Apple公证Accepted(5f5ce378-8430-467b-ae97-048e6bc81573)、票据粘附/验证、安装身份、Gatekeeper及PluginKit正式路径通过。唯一正式APP、模板/TIFF和本次临时副本清理的范围与结果见verification/v1.1.2/installed-verification.json;扫描错误0,未扩张为全部挂载卷搜索。 + +构建前模块回归1551项通过:49美化、116人脸、796几何、335宿主适配ASan、98 OSC ASan、157 Inspector ASan。几何/宿主适配在对应未变化源码上验证,最后两轮只重复与界面修复有关的Inspector;额外真实帧886项包含重复基础用例,不相加。独立从远程恢复最终产品源码149文件和16资源,fsck及157项Inspector ASan通过,克隆已清理。 + +实际操作均在独立测试文档/时间线内:Motion最终版数值输入、重置同时更新slider/text、宿主撤销、切换输入不复活旧值、保存关闭重开(短脸0.5/下颌骨0)通过。相同几何源码在build11中已做单独短脸正负、下颌骨、停用同帧对照及侧脸/歪头图像检查;final build13继续沿用相同几何字节。FCP最终版原生面板启用、数值输入、单击重置同步显示、清零其他脸型后分别短脸1/下颌骨1的同帧画面响应通过。截图、完整AX和物理坐标差只留本机,不上传用户影像。 + +连续预览:生产NSSlider continuous保持开启,view不再把整个拖动包在同一次controller action里;每个有效步进独立结束宿主参数上下文。模拟宿主中三个中间状态在mouse-up前完成发布(旧实现3失败,修复后通过)。CUA坐标拖动未能可靠操纵显示中的滑杆,未记录到可信的原生按住期间排帧证据,已请求用户直接观察;此项保留待反馈,不写作原生连续预览通过。快速更新可能被宿主合并,各项其余五类近似算法和全部组合不宣称原版逐像素一致。详细范围在verification/v1.1.2/native-qa.json。