From 1008651f6e2111a26d1420021c49f40d6f728b3a Mon Sep 17 00:00:00 2001 From: dayu <506228475@qq.com> Date: Wed, 21 Oct 2026 20:25:32 +0800 Subject: [PATCH] Record signed 1.0.5 installation, contour-slim regressions and user visual test handoff --- RECOVERY.md | 10 +- Templates/大鱼人像美化/VALIDATION.json | 10 +- docs/analysis/slim-pose-report.json | 18 +- docs/analysis/脸型变形与转脸分析.md | 4 + .../verification/v1.0.5/delivery-receipt.json | 49 ++ .../v1.0.5/installed-discovery.txt | 2 + .../v1.0.5/installed-signature.txt | 24 + .../v1.0.5/installed-verification.json | 32 + docs/verification/v1.0.5/notarization.json | 1 + .../v1.0.5/recovery-abe97ed-test.txt | 11 + .../verification/v1.0.5/recovery-abe97ed.json | 740 ++++++++++++++++++ docs/verification/v1.0.5/recovery-abe97ed.txt | 9 + .../v1.0.5/slim-real-video-asan.txt | 2 + docs/验证记录.md | 8 +- 14 files changed, 915 insertions(+), 5 deletions(-) create mode 100644 docs/verification/v1.0.5/delivery-receipt.json create mode 100644 docs/verification/v1.0.5/installed-discovery.txt create mode 100644 docs/verification/v1.0.5/installed-signature.txt create mode 100644 docs/verification/v1.0.5/installed-verification.json create mode 100644 docs/verification/v1.0.5/notarization.json create mode 100644 docs/verification/v1.0.5/recovery-abe97ed-test.txt create mode 100644 docs/verification/v1.0.5/recovery-abe97ed.json create mode 100644 docs/verification/v1.0.5/recovery-abe97ed.txt create mode 100644 docs/verification/v1.0.5/slim-real-video-asan.txt diff --git a/RECOVERY.md b/RECOVERY.md index d97c773..58903f7 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.0.4 +git switch --detach v1.0.5 ``` 需要继续编辑时,基于该提交创建新分支。安装 Xcode 与 Apple FxPlug 4 SDK;盘点版本和构建入口见 README.md。SDK/framework 为 Apple 外部开发依赖,应重新安装匹配版本。证书、私钥和公证凭据需从独立加密备份恢复或重新申请;Git 不包含它们。 @@ -40,3 +40,11 @@ FCP模板从 `Templates/大鱼人像美化/` 恢复,将 `.moef` 和 `Drop Zone ## 瘦脸与侧脸问题的分析节点 `v1.0.4`之后的分析提交包含`docs/analysis/脸型变形与转脸分析.md`、`slim-pose-report.json`、REA证据包及独立Vision离线检测工具`scripts/inspect-face-geometry.m`。产品源码与安装版没有因该分析改变;已查明的问题仍存在于1.0.4。复现检测工具的依赖与命令见分析文档,用户视频、完整人脸坐标和帧图保留本地,不是产品恢复依赖。 + +## 1.0.5 当前恢复入口 + +当前发布标签为 `v1.0.5`,APP版本1.0.5、build7。签名构建的完整源码SHA为 `abe97ed0cbd5a2b5ffda6ebdb486d3bff9170964`;最终标签还包含交付脚本恢复修正及验证记录,产品源码与该SHA一致。该节点已从独立远端克隆恢复,69文件及9项必要资源完整、389项核心测试通过。主工作区另通过604项完整回归及同一用户视频11帧的264项瘦脸ASan场景。 + +从最终标签恢复后,关闭Motion/FCP,运行 `python3 scripts/deliver.py --wait-for-hosts --user-tests` 可完成签名公证安装、只读宿主退出等待、静态发现及副本清理;它不会操作宿主界面。若上次因非产品错误在Accepted且stapled后停止,可加 `--resume-prepared`,脚本必须重新核对签名CDHash、版本、票据及产品源码未变才会继续。缺少原staging或回执时应完整重新构建,不能伪造回执。 + +1.0.5瘦脸需要完整76点;旧离线记录缺该字段时保留其余功能并跳过瘦脸。关闭使用跟踪数据可使用当前帧自动76点,或重新分析生成新记录。没有引入原版metallib或CoreML模型,运行只依赖本产品及Apple系统框架。最终安装、配套模板和扫描范围见验证记录。 diff --git a/Templates/大鱼人像美化/VALIDATION.json b/Templates/大鱼人像美化/VALIDATION.json index 63aa4f2..d8c73b9 100644 --- a/Templates/大鱼人像美化/VALIDATION.json +++ b/Templates/大鱼人像美化/VALIDATION.json @@ -27,6 +27,14 @@ "date": "2026-10-21", "FCP": "Restored input-chain template shows supplied real video; effect parameters and forward analysis responded in independent QA project.", "Motion": "1.0.4 installed formal app loaded the real-video QA project and rendered brightness/geometry with a primary box at different playhead positions; offline tracking disabled.", - "scope": "1.0.5 native visual QA is reserved for user self-testing; no Motion/FCP UI operations in the slimming repair. Historical input/brightness validation remains scoped to prior releases." + "scope": "1.0.5 native visual QA is reserved for user self-testing; no Motion/FCP UI operations in the slimming repair. Historical input/brightness validation remains scoped to prior releases.", + "version105": "Formal 1.0.5 (7) signed/notarized/stapled/installed and PluginKit formal path verified. User closed hosts before replacement; no Motion/FCP UI operated. Native visual testing pending user." + }, + "slimValidation": { + "offlineFullChecks": 604, + "slimChecks": 224, + "extraRealVideoASanChecks": 264, + "sampledVideoFrames": 11, + "maxUVOracleError": 1.09828022e-05 } } diff --git a/docs/analysis/slim-pose-report.json b/docs/analysis/slim-pose-report.json index 755e0df..1db6ae9 100644 --- a/docs/analysis/slim-pose-report.json +++ b/docs/analysis/slim-pose-report.json @@ -381,5 +381,21 @@ "full_native_visual_equivalence": "unverified; screenshots are not a synchronized isolated-parameter capture", "product_fix": "not changed by this analysis; installed 1.0.4 retains the reported issue" }, - "host_boundary": "User controls Motion/FCP; no UI interaction, host shutdown, app install or plug-in replacement in this analysis." + "host_boundary": "User controls Motion/FCP; no UI interaction, host shutdown, app install or plug-in replacement in this analysis.", + "followup_implementation": { + "version": "1.0.5 (7)", + "signed_source_commit": "abe97ed0cbd5a2b5ffda6ebdb486d3bff9170964", + "status": "signed_notarized_installed_user_visual_qa_pending", + "landmarks": "explicit revision3 / 76 constellation, points76 persisted and stabilized", + "warp": "17 sequential UV pins, .025 * pixel-size gain, original thin bbox term removed", + "offline_checks": 604, + "extra_real_video_asan_checks": 264, + "real_video_frames": 11, + "max_uv_oracle_error": 1.09828022e-05, + "limitations": [ + "Other eight controls retain prior approximations", + "Fast multi-face overlapping resampling order is not equivalent to the original single fragment", + "Full native Motion/FCP visual comparison reserved for user" + ] + } } diff --git a/docs/analysis/脸型变形与转脸分析.md b/docs/analysis/脸型变形与转脸分析.md index b98271e..38a2a20 100644 --- a/docs/analysis/脸型变形与转脸分析.md +++ b/docs/analysis/脸型变形与转脸分析.md @@ -78,3 +78,7 @@ xcrun clang -fobjc-arc -Wall -Wextra \ 现有测试只能证明各几何参数改变像素、范围保持和跟踪恢复一致,尚未验证最大瘦脸外观或侧脸形状。修复验证至少应包括同帧正面/半侧/全侧、向左右转脸、歪头、轮廓缺失、正逆播放、100%瘦脸与多个脸型项叠加,和原版在隔离相同其他参数后的对照。 本轮完成机制分析及独立检测,未宣称已修复安装版,也未将用户的“跟踪没问题”扩张为其他未覆盖的原生验收通过。 + +## 后续修复状态 + +1.0.5已实现并安装76点/17组局部瘦脸,旧的矩形框瘦脸已移除。上文“安装版未修复”为本次分析开始时1.0.4的历史状态。新增独立数值场与真实素材回归,签名公证及安装记录见 `../验证记录.md`。Motion/FCP最终视觉由用户自测,其他8类脸型控制与快速多人重叠的既有近似边界仍保留。 diff --git a/docs/verification/v1.0.5/delivery-receipt.json b/docs/verification/v1.0.5/delivery-receipt.json new file mode 100644 index 0000000..0bc3fed --- /dev/null +++ b/docs/verification/v1.0.5/delivery-receipt.json @@ -0,0 +1,49 @@ +{ + "status": "installed_user_qa_pending", + "bundleIdentifier": "com.dayu.beatygril", + "installationPath": "/Library/Plug-Ins/FxPlug/beatygril.app", + "options": { + "waitForHosts": true, + "userTests": true, + "resumePrepared": true + }, + "nativeEffectQA": { + "status": "pending_user", + "performedByScript": false + }, + "source": { + "commit": "abe97ed0cbd5a2b5ffda6ebdb486d3bff9170964", + "trackedWorktreeChanges": [] + }, + "updatedAt": "2026-10-21T12:23:23.275614+00:00", + "version": "1.0.5", + "build": "7", + "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=573debde15f2628c7bc7c6ed9a4cdeabd33f7518\nCandidateCDHashFull sha256=573debde15f2628c7bc7c6ed9a4cdeabd33f7518762fa036f842d998dd623720\nHash choices=sha256\nCMSDigest=573debde15f2628c7bc7c6ed9a4cdeabd33f7518762fa036f842d998dd623720\nCMSDigestType=2\nCDHash=573debde15f2628c7bc7c6ed9a4cdeabd33f7518\nSignature size=8968\nAuthority=Developer ID Application: zhong luo (B3W25FX5H5)\nAuthority=Developer ID Certification Authority\nAuthority=Apple Root CA\nTimestamp=Oct 21, 2026 at 20:20:14\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": { + "id": "7d7034f8-7389-410f-ad8e-9e722408c0fc", + "status": "Accepted", + "message": "Processing complete" + }, + "resumedBy": { + "commit": "a6551c334fd1a0883259700b802174955c78376a", + "trackedWorktreeChanges": [] + }, + "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=573debde15f2628c7bc7c6ed9a4cdeabd33f7518\nCandidateCDHashFull sha256=573debde15f2628c7bc7c6ed9a4cdeabd33f7518762fa036f842d998dd623720\nHash choices=sha256\nCMSDigest=573debde15f2628c7bc7c6ed9a4cdeabd33f7518762fa036f842d998dd623720\nCMSDigestType=2\nCDHash=573debde15f2628c7bc7c6ed9a4cdeabd33f7518\nSignature size=8968\nAuthority=Developer ID Application: zhong luo (B3W25FX5H5)\nAuthority=Developer ID Certification Authority\nAuthority=Apple Root CA\nTimestamp=Oct 21, 2026 at 20:20:14\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)\tF419A538-F395-459D-9984-AC46EAB5E83D\t2026-10-21 12:23:23 +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.0.5/installed-discovery.txt b/docs/verification/v1.0.5/installed-discovery.txt new file mode 100644 index 0000000..1d622a5 --- /dev/null +++ b/docs/verification/v1.0.5/installed-discovery.txt @@ -0,0 +1,2 @@ + com.dayu.beatygril.fxplug(1.1) F419A538-F395-459D-9984-AC46EAB5E83D 2026-10-21 12:23:23 +0000 /Library/Plug-Ins/FxPlug/beatygril.app/Contents/PlugIns/beatygril XPC Service.pluginkit + (1 plug-in) diff --git a/docs/verification/v1.0.5/installed-signature.txt b/docs/verification/v1.0.5/installed-signature.txt new file mode 100644 index 0000000..e187bd1 --- /dev/null +++ b/docs/verification/v1.0.5/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=573debde15f2628c7bc7c6ed9a4cdeabd33f7518 +CandidateCDHashFull sha256=573debde15f2628c7bc7c6ed9a4cdeabd33f7518762fa036f842d998dd623720 +Hash choices=sha256 +CMSDigest=573debde15f2628c7bc7c6ed9a4cdeabd33f7518762fa036f842d998dd623720 +CMSDigestType=2 +CDHash=573debde15f2628c7bc7c6ed9a4cdeabd33f7518 +Signature size=8968 +Authority=Developer ID Application: zhong luo (B3W25FX5H5) +Authority=Developer ID Certification Authority +Authority=Apple Root CA +Timestamp=Oct 21, 2026 at 20:20:14 +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.0.5/installed-verification.json b/docs/verification/v1.0.5/installed-verification.json new file mode 100644 index 0000000..4557bc7 --- /dev/null +++ b/docs/verification/v1.0.5/installed-verification.json @@ -0,0 +1,32 @@ +{ + "version": "1.0.5", + "build": "7", + "uiOperations": 0, + "template": { + "path": "/Users/dayu/Movies/Motion Templates.localized/Effects.localized/大鱼/大鱼人像美化/大鱼人像美化.moef", + "sha256": "ba08de6916cd837b3733aa0c6fcb78f2e8224431d25e1310089ae67d18445f2d", + "resourceVerified": true + }, + "codesign": "", + "xcrun": "Processing: /Library/Plug-Ins/FxPlug/beatygril.app\nThe validate action worked!", + "spctl": "/Library/Plug-Ins/FxPlug/beatygril.app: accepted\nsource=Notarized Developer ID", + "Contents/MacOS/beatygril": "x86_64 arm64", + "Contents/PlugIns/beatygril XPC Service.pluginkit/Contents/MacOS/beatygril XPC Service": "x86_64 arm64", + "duplicateInventory": { + "scopes": [ + "/Users/dayu/Documents/PaintFCP", + "/Users/dayu/Library/Developer/Xcode/DerivedData", + "/Users/dayu/Desktop", + "/Users/dayu/Downloads", + "/Applications", + "/Library/Plug-Ins/FxPlug", + "/Users/dayu/Library/Plug-Ins/FxPlug" + ], + "matchingOuterApps": [ + "/Library/Plug-Ins/FxPlug/beatygril.app" + ], + "errors": [] + }, + "discovery": " com.dayu.beatygril.fxplug(1.1)\tF419A538-F395-459D-9984-AC46EAB5E83D\t2026-10-21 12:23:23 +0000\t/Library/Plug-Ins/FxPlug/beatygril.app/Contents/PlugIns/beatygril XPC Service.pluginkit\n (1 plug-in)\n", + "status": "installed_verified_user_visual_tests_pending" +} diff --git a/docs/verification/v1.0.5/notarization.json b/docs/verification/v1.0.5/notarization.json new file mode 100644 index 0000000..fd81f72 --- /dev/null +++ b/docs/verification/v1.0.5/notarization.json @@ -0,0 +1 @@ +{"id":"7d7034f8-7389-410f-ad8e-9e722408c0fc","status":"Accepted","message":"Processing complete"} diff --git a/docs/verification/v1.0.5/recovery-abe97ed-test.txt b/docs/verification/v1.0.5/recovery-abe97ed-test.txt new file mode 100644 index 0000000..03d86b1 --- /dev/null +++ b/docs/verification/v1.0.5/recovery-abe97ed-test.txt @@ -0,0 +1,11 @@ +Independent remote recovery test +Target: abe97ed0cbd5a2b5ffda6ebdb486d3bff9170964 +Command: zsh scripts/test.sh +Exit code: 0 + +Beauty renderer: 49 checks, 0 failures (Metal). +Face processing: 116 checks passed +PASS: 224 slim alignment checks; maximum UV oracle error 1.09828022e-05 + +2026-10-21 20:20:38.246 face-tests[7122:5413459] FBBA: creating VNFaceBBoxAligner from VNFaceDetectorRevision2: VNFaceDetectorRevision2 +2026-10-21 20:20:40.227 slim-tests[7129:5413512] FBBA: creating VNFaceBBoxAligner from VNFaceDetectorRevision2: VNFaceDetectorRevision2 diff --git a/docs/verification/v1.0.5/recovery-abe97ed.json b/docs/verification/v1.0.5/recovery-abe97ed.json new file mode 100644 index 0000000..9e32784 --- /dev/null +++ b/docs/verification/v1.0.5/recovery-abe97ed.json @@ -0,0 +1,740 @@ +{ + "target": "abe97ed0cbd5a2b5ffda6ebdb486d3bff9170964", + "remote": "https://dayu.media/git/dayu/paintfcp-fxplug.git", + "startedAt": "2026-10-21T12:20:32.822716+00:00", + "temporaryClone": "/var/folders/t4/kbc10sqs43b0rjf3nfh51nmw0000gn/T/paintfcp-recovery-abe97ed-um2yk1vm/clone", + "scope": "Independent source recovery plus scripts/test.sh only; no APP build, host execution/UI, installation, root source changes, commit, host/OSC ASan or delivery-lock operation.", + "cloneHead": "abe97ed0cbd5a2b5ffda6ebdb486d3bff9170964", + "files": { + "count": 69, + "allByteBlobAndModeEqual": true, + "entries": [ + { + "path": ".gitignore", + "mode": "100644", + "kind": "blob", + "blob": "d2bca6e38076bb5f7574cc7781eadef27b41d9ff", + "bytes": 490, + "sha256": "34e63260d343569ad4d5a1ffd6c15647da5a7da2b8940dc93f6d987c7fec474e", + "byteBlobAndModeEqual": true + }, + { + "path": "README.md", + "mode": "100644", + "kind": "blob", + "blob": "d0282233a2a630f2a00a7bd1e3342ba4f3a0791a", + "bytes": 3167, + "sha256": "3f1d5c727a335ef862837db92a57ba684424e802cbdee4d64f6bdae069e43076", + "byteBlobAndModeEqual": true + }, + { + "path": "RECOVERY.md", + "mode": "100644", + "kind": "blob", + "blob": "d97c7731d0a3d349c72982ad156a581ef6a03a87", + "bytes": 4183, + "sha256": "2f310d4b5f4df318b8b522963c3f1bbe35c1e2a3b3ed85a112d59fc10205c36a", + "byteBlobAndModeEqual": true + }, + { + "path": "Templates/大鱼人像美化/Drop Zone.tiff", + "mode": "100644", + "kind": "blob", + "blob": "6d15c98bc221f999514f197ff67a7145836e6a38", + "bytes": 420128, + "sha256": "a7f8e3a2a431dbb3ce9e777040bb55e701cfe9ab9632e8cbb10359732bc8692e", + "byteBlobAndModeEqual": true + }, + { + "path": "Templates/大鱼人像美化/PARAMETERS.json", + "mode": "100644", + "kind": "blob", + "blob": "df2c01f370e6ee639d2950774fe8020742802c17", + "bytes": 9815, + "sha256": "bb561b0dfff90223f0925a60ec05b28518e22163a6bf7922c4efc6d155ddbabb", + "byteBlobAndModeEqual": true + }, + { + "path": "Templates/大鱼人像美化/README.md", + "mode": "100644", + "kind": "blob", + "blob": "46cf59f6b4500b32c5a203a63a79a491a2202cdf", + "bytes": 4420, + "sha256": "c57ef81f43271d566a0488385d5f6b8e492142bae0860049bcbf943206b0c567", + "byteBlobAndModeEqual": true + }, + { + "path": "Templates/大鱼人像美化/VALIDATION.json", + "mode": "100644", + "kind": "blob", + "blob": "63aa4f2ce4e1e72ce8b255d5f98fe209e2354c09", + "bytes": 1872, + "sha256": "558ac5ff3bee28e6d3df41cc5ffd9a43cd51fca2fd001fff8641260c327e351d", + "byteBlobAndModeEqual": true + }, + { + "path": "Templates/大鱼人像美化/大鱼人像美化.moef", + "mode": "100644", + "kind": "blob", + "blob": "f68569a62b399cf7ad1ee2b33427372fc9b6b913", + "bytes": 22996, + "sha256": "ba08de6916cd837b3733aa0c6fcb78f2e8224431d25e1310089ae67d18445f2d", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril.xcodeproj/project.pbxproj", + "mode": "100644", + "kind": "blob", + "blob": "db5251bf3c337b865621e771a4b28690214f1c8e", + "bytes": 22986, + "sha256": "e9b9be100e53003f6bba96658d3a36078bb607236958e43aec6ed59f8c73ce32", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril.xcodeproj/project.xcworkspace/contents.xcworkspacedata", + "mode": "100644", + "kind": "blob", + "blob": "919434a6254f0e9651f402737811be6634a03e9c", + "bytes": 135, + "sha256": "7f3b00b5c3fdb45242d7b87e1e5c4e25d1fa8129a16c94295ecc4e8ea2235c5f", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Plugin/Info.plist", + "mode": "100644", + "kind": "blob", + "blob": "95542fa8c27e6770b9266389f0aa34027053e31f", + "bytes": 3030, + "sha256": "865f1775fb476ff1f22556141b41b25d3569c05e4aa1d2450cccdcb06de6aa4c", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Plugin/PGBeautyRenderer.h", + "mode": "100644", + "kind": "blob", + "blob": "a0a6965c837072e6d837a98b701d59b1cc139655", + "bytes": 1410, + "sha256": "4e9b663c47261e4feceb7ab38c25171b65f36c14417d82a8b7c49ee3201492d3", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Plugin/PGBeautyRenderer.m", + "mode": "100644", + "kind": "blob", + "blob": "4c9fc6fbb1dc1f2c4048a16435f554cae9f2ca74", + "bytes": 17132, + "sha256": "00b52b1f22c1e875f137ee4ea90f50d6caa38db277bebd0da538d0ba7e66072b", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Plugin/PGBeautyTypes.h", + "mode": "100644", + "kind": "blob", + "blob": "e1cd3ef21f37b831cdaa7d9f52211cafaf243994", + "bytes": 1149, + "sha256": "6ea8005accc22f85fe8be1b73bf6e89a5b37ffd6e97460d4f6dd69d55eaf33cc", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Plugin/PGFaceProcessor.h", + "mode": "100644", + "kind": "blob", + "blob": "0b861830a6e9652d81ccfe62f2ce758febee449f", + "bytes": 2178, + "sha256": "a3448bd75fd278c9702f079f55637ba2c26bc820bdbb81f49fb3a3d0e2a4aba5", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Plugin/PGFaceProcessor.m", + "mode": "100644", + "kind": "blob", + "blob": "08c1e85455da07203e4ee30a5410fb10cb9e78c7", + "bytes": 42670, + "sha256": "445aac56a8ff7332c3b94c6ad5b37b9e412af757995a8332ae2e70066d348d7e", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Plugin/PGFaceSelectOSC.m", + "mode": "100644", + "kind": "blob", + "blob": "ae0aa7ce1c2de355b2c1cb890314a0de689df81a", + "bytes": 11630, + "sha256": "d5e1dd1db6825730803ddc3f21b588cd548cbbacc60760aa45ad9e2feedae307", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Plugin/PGParameterIDs.h", + "mode": "100644", + "kind": "blob", + "blob": "4cc0e20af1e659f1e8e666fabe01003c06cfd885", + "bytes": 932, + "sha256": "8fdfa2021131317ce09532d27fd6f34fb0b505f7b17c561819336ad2a06c42cc", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Plugin/beatygrilPlugIn.h", + "mode": "100644", + "kind": "blob", + "blob": "12dca07a744c064d5d474e0294304ca29055a077", + "bytes": 347, + "sha256": "4f00716328c9237b79cc58153ba47d8ac8ddc1786939cb206bd37b01e3b6397e", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Plugin/beatygrilPlugIn.m", + "mode": "100644", + "kind": "blob", + "blob": "3f148956b32770c7db5b0df97700fd96f7e20025", + "bytes": 24193, + "sha256": "b8f4326ed3eb2de74770e4ea266d09ebe4aea70428a4511f0ec501a0cd89b247", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Plugin/en.lproj/InfoPlist.strings", + "mode": "100644", + "kind": "blob", + "blob": "9a5f27348a39c8e3ee50cffc2fb359c78a1319c8", + "bytes": 85, + "sha256": "1b1cd5b74690bd5a74cf2b0a0c068bbc2c3462c5e9fe5ca3e61541bcbd451a7a", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Plugin/en.lproj/Localizable.strings", + "mode": "100644", + "kind": "blob", + "blob": "7f52f3dd719cb4f94e24867e36114cb061ef0b92", + "bytes": 132, + "sha256": "b3036a2339b97ebf264516e1e534351d1ceb64f45942595508f4d67d07b07769", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Plugin/main.m", + "mode": "100644", + "kind": "blob", + "blob": "34d50d3f8cdf438d3508d0aa94e3f2d20e45f962", + "bytes": 114, + "sha256": "5b812ddb1ef171fe075e4faf13d761935ca73ecbba1be0bd9d4802a64a7759cd", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/AppDelegate.h", + "mode": "100644", + "kind": "blob", + "blob": "f3f8e19cfe057114c2289ff37c01c2e6e1aa7ed0", + "bytes": 167, + "sha256": "3fc6516be93176f90c2deb17332c9cf98e670458a33fbad4fe7b8f367ec9494f", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/AppDelegate.m", + "mode": "100644", + "kind": "blob", + "blob": "1cb56f073356dd30add33415117bf4c24fdc4ef0", + "bytes": 3003, + "sha256": "acef6ade6591c039cd8b3e603f83d6d06f64da9709a0385b73c8588e824fe6de", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/Base.lproj/MainMenu.xib", + "mode": "100644", + "kind": "blob", + "blob": "57d03a50e249d189c5fa0a4602c5ec846f06612d", + "bytes": 50614, + "sha256": "7f0945bc5903a658550b712267870edecbdf1b73ac83c71f1358468f40c1ab1d", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/Info.plist", + "mode": "100644", + "kind": "blob", + "blob": "a1fe6cdcfe8e41f2de4ee07525e192e52723d760", + "bytes": 1084, + "sha256": "7b3ff213b68dda774306a96835cf4743e3998e23dd7ac4b20cbdb3cf709d7b8b", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/SandboxEntitlements.entitlements", + "mode": "100644", + "kind": "blob", + "blob": "852fa1a4728ae4789e3bca55dd07caef3b41f2a5", + "bytes": 240, + "sha256": "b746c74b201e6af4e0864fbd1f4f629f96156a7ec4b7208bc995d0a5089bb592", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/en.lproj/Credits.rtf", + "mode": "100644", + "kind": "blob", + "blob": "da779d0f6bec11568066e347a01ccef0308488b2", + "bytes": 264, + "sha256": "ec846e198df85720e8443abb810334411b5690386f3062f90208c23b8575f28a", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/en.lproj/InfoPlist.strings", + "mode": "100644", + "kind": "blob", + "blob": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "bytes": 0, + "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "byteBlobAndModeEqual": true + }, + { + "path": "beatygril/beatygril/Wrapper Application/main.m", + "mode": "100644", + "kind": "blob", + "blob": "99ad4384792f9b2050e0755c07522c0dab9b4b86", + "bytes": 112, + "sha256": "5c3dc97a53d0379af0e0ce75c5541f33c47f2da115d2d0018cfba003d185a63d", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/analysis/REA-分析与复刻说明.md", + "mode": "100644", + "kind": "blob", + "blob": "6581570f9d140ef8d0e00f19d9285d44a6ae3813", + "bytes": 10519, + "sha256": "ee64e260fd9261856047096570b8fed308284b3a02cd0dd892f3ceda6a5482ab", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/analysis/auto-follow-report.json", + "mode": "100644", + "kind": "blob", + "blob": "e60d6d055a513ab8e9c21d2b39460c9d0698e1d3", + "bytes": 15665, + "sha256": "1a0c91efcaee058f331f6a7446bea8794af1dcf9120f5c2585f249b188d038e3", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/analysis/beauty-preview.png", + "mode": "100644", + "kind": "blob", + "blob": "35ace472cb42629b01b3e05660cb7be8b9711fd7", + "bytes": 617622, + "sha256": "37aa97855915a49ff1f225a9e1fa9d8bcbed0be5f4109b6835ba4db17f9113f6", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/analysis/face-preview.png", + "mode": "100644", + "kind": "blob", + "blob": "9a5bab3ad706b95ac32875352d16d6580dcd48ab", + "bytes": 713552, + "sha256": "6cc662cbb2b554a0dd8c926d94a0d819506ac76710d9c09c2d3d7f808fbf686b", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/analysis/rea-auto-tracking.json", + "mode": "100644", + "kind": "blob", + "blob": "2f5738f934f0ce89780cf4535c7257b54a397bef", + "bytes": 2883488, + "sha256": "dc1007f3798fade5e454bb2ef0b58e4cfe2bb0256948c364070fd9af70a97377", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/analysis/rea-host.json", + "mode": "100644", + "kind": "blob", + "blob": "9de443173a74668f0a2dced3426dae20549a16dd", + "bytes": 10111, + "sha256": "141866459948b19d5378de2f6534de333c795e317416f2ac6c9fdc86c94dd61a", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/analysis/rea-plugin.json", + "mode": "100644", + "kind": "blob", + "blob": "79bcafbcfeda694ed466d95f81f30eb622a95a0b", + "bytes": 343165, + "sha256": "dda6e450915e1054653c28addfed5254c678dccf14ee66643d508e7087c1f0c1", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/analysis/rea-slim-pose.json", + "mode": "100644", + "kind": "blob", + "blob": "249eb3678b20c378e0d73239e0949cc86c2af436", + "bytes": 343127, + "sha256": "5f4a2dfe5796ce72bb3d022a85a42cd5ed0eceb0cd0655041812126ebec7933a", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/analysis/reference-template-parameters.json", + "mode": "100644", + "kind": "blob", + "blob": "9947e2ff182a146bc4c9120dfff7eacc8cca9c0c", + "bytes": 1608, + "sha256": "026e47e8ecbd9a967d8b8aabddac2a370479a43b9e1a7a7728b5b01a5002f006", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/analysis/slim-pose-report.json", + "mode": "100644", + "kind": "blob", + "blob": "755e0dfcb6eef016e932415ad8c391b97f8de575", + "bytes": 8724, + "sha256": "512d22abc2b08860adb64c38efa0f8e3474b45e3dbd19cb81406b1d9e7060f06", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/analysis/脸型变形与转脸分析.md", + "mode": "100644", + "kind": "blob", + "blob": "b98271ebd17b745d2e16e6357578eac6a757c1c1", + "bytes": 8789, + "sha256": "0121d022e4ba430b9fd62b9a13da5b84d03866eb0d541e64e4da3204730c03cf", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/verification/installed-signature.txt", + "mode": "100644", + "kind": "blob", + "blob": "78fc46fd6aee5443af9eeb53a97502d0251cf2a9", + "bytes": 988, + "sha256": "add93ef0fa60cd32ed766c965e6f2869f56b4da65030e774e76d133b02ef7aec", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/verification/live-face-asan.txt", + "mode": "100644", + "kind": "blob", + "blob": "b92d565bec7a49444b638437b4ae8e7400ce90f6", + "bytes": 219, + "sha256": "b956e0fe7a3fccdd8eff8788807c0aaf60da56aa1cb153087f25234cc156c27d", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/verification/notarization.json", + "mode": "100644", + "kind": "blob", + "blob": "86d17c6738b9e0aa6f92583ffc798c2e6b6bece1", + "bytes": 98, + "sha256": "91b4f5e239a50467bde83b8c40c1c1809f85cd4eb4b1f1091e1b2197c11a79b6", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/verification/recovery-e03e460-beauty-face.txt", + "mode": "100644", + "kind": "blob", + "blob": "2c6f0b5e7f7dedf9571d6da6ce67303bf34faedc", + "bytes": 298, + "sha256": "45698c80fdfc68c2dc68be59ba03380aa6e8194731d4858dc009f827dd06e226", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/verification/recovery-e03e460-host-asan.txt", + "mode": "100644", + "kind": "blob", + "blob": "7eeed088f0dad0564aa166232aedb9ae47a56dd0", + "bytes": 380, + "sha256": "65d0226f95e882702484849997fde558fae7af418e9243702f789b1e2fcacf14", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/verification/recovery-e03e460-osc-asan.txt", + "mode": "100644", + "kind": "blob", + "blob": "7abde29290bfea1e475af387899fb3160a60cc95", + "bytes": 3336, + "sha256": "2e326d2fc0eb5d2cdd9f07e2318dfd17a41d346a82f383b05b51f416ffdacdb3", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/verification/recovery-e03e460-xcode-list.txt", + "mode": "100644", + "kind": "blob", + "blob": "e90278ec1aedf6a1176682ec1037e49ba2f588c1", + "bytes": 570, + "sha256": "ff9ffb300caac840f4e64f97f24712e319af9bbe4cee1dbbd79b0a5caa1432d1", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/verification/recovery-e03e460.json", + "mode": "100644", + "kind": "blob", + "blob": "ecd24b6f35c893c3637dc4e268d0acabb4d09967", + "bytes": 25360, + "sha256": "559839e989fb4fa9589847632975a6d4d8548c00e6ad5b87bdba736bb3e1daf3", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/verification/recovery-e03e460.txt", + "mode": "100644", + "kind": "blob", + "blob": "ed81f4abdeada50c1afb2ac866d3cc79fd6579d9", + "bytes": 846, + "sha256": "3931beb81cf475ce1c44e5b90c8e9101abb1a7ba20b657d72090b6e7662530cc", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/verification/release-receipt.json", + "mode": "100644", + "kind": "blob", + "blob": "e53f21de9e8ea68a40f435cf9e3d1a0d95499bde", + "bytes": 2454, + "sha256": "07ba4f5bbba101a49d4579c0b79fbce0dad70a1e4b5887e61e052741c49486ee", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/verification/v1.0.5/core-tests.txt", + "mode": "100644", + "kind": "blob", + "blob": "76d29d91672ec631950b2f3ada1db39db4c877ac", + "bytes": 427, + "sha256": "408910aeedcf0155bc31ef43ca6e8994d9348f8fbdc0c25eb8a43ce89965e081", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/verification/v1.0.5/host-tests.txt", + "mode": "100644", + "kind": "blob", + "blob": "3e1c1c6b7c104995a2656e142671759634352525", + "bytes": 271, + "sha256": "c727d9d56a0b46a4cdbc79d24eeedc589e5984b38144f28ccf017f4d65f504f7", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/verification/v1.0.5/osc-tests.txt", + "mode": "100644", + "kind": "blob", + "blob": "c9c618896ca3ee0c2a943979103ab3b42335c7e0", + "bytes": 3229, + "sha256": "5e443009bc39635d01a1f6276b48170fe9da73c088646425c6ed140d87ba4518", + "byteBlobAndModeEqual": true + }, + { + "path": "docs/验证记录.md", + "mode": "100644", + "kind": "blob", + "blob": "2d2d97b0e13e876bc8ddf65aedf671cbeead8b6b", + "bytes": 9154, + "sha256": "8ece9ba47c81980a781ab00b73c961bd32c1acec2e09811f348375e162e29661", + "byteBlobAndModeEqual": true + }, + { + "path": "scripts/checkpoint.py", + "mode": "100644", + "kind": "blob", + "blob": "8248d1732aceed377d28cdae02873057f442474b", + "bytes": 2218, + "sha256": "3c27b0e603dd2d94512f611cec97bd9afe5809aea0f5a4bb213995d2e23366f8", + "byteBlobAndModeEqual": true + }, + { + "path": "scripts/deliver.py", + "mode": "100755", + "kind": "blob", + "blob": "b20e2149f84307afd6198df71f967f4facb444bb", + "bytes": 10848, + "sha256": "dc5df519aaabc695adddff8e9087dcb6c6e9861036ab0efccf242a5fe12e0b78", + "byteBlobAndModeEqual": true + }, + { + "path": "scripts/inspect-face-geometry.m", + "mode": "100644", + "kind": "blob", + "blob": "d075cf7c8c9a23b9bd01bbcbc31da89fea84d5d3", + "bytes": 6613, + "sha256": "a2c54e7297f9f94e9c56c0b29f9ce607756705f2005c1f13e10996bc26c24b66", + "byteBlobAndModeEqual": true + }, + { + "path": "scripts/test-host.sh", + "mode": "100755", + "kind": "blob", + "blob": "ef9c7f6436e3d1babbf272e9d329d65ec6c395cb", + "bytes": 1129, + "sha256": "7f55ed6de05e6cc59884fb7c96062676bd086f4ac745ae847511eacb12316467", + "byteBlobAndModeEqual": true + }, + { + "path": "scripts/test-osc.sh", + "mode": "100755", + "kind": "blob", + "blob": "ffaed0b8d449eef6acf2fb352d9fea10fc1649fd", + "bytes": 941, + "sha256": "ed405cd214ce252641074d0ef0a12c4cc0faf3e1869fe92716a98fff7f9ac517", + "byteBlobAndModeEqual": true + }, + { + "path": "scripts/test.sh", + "mode": "100755", + "kind": "blob", + "blob": "f13ba656929fe34b43c143bdfeb4a208c44c7428", + "bytes": 932, + "sha256": "3ca9cb120b452a0c402debbe5d3399fa4996e0ea0882253470791494815d530d", + "byteBlobAndModeEqual": true + }, + { + "path": "tests/beauty_render_tests.m", + "mode": "100644", + "kind": "blob", + "blob": "24050fb3a2630693253202ae1525c280f4f144eb", + "bytes": 16870, + "sha256": "b04eb2f0d78faec13bbdd2a3286cc74c46c2f536358c7c1c3d5d03c54daa868c", + "byteBlobAndModeEqual": true + }, + { + "path": "tests/face_tests.m", + "mode": "100644", + "kind": "blob", + "blob": "9fe21ddd021d1a2517fa8b75d7a65532f6fefedb", + "bytes": 33180, + "sha256": "0350abe9f206fc371f697c993f5dea420d512259f16947c7a1167569843b215a", + "byteBlobAndModeEqual": true + }, + { + "path": "tests/fixtures/ATTRIBUTION.txt", + "mode": "100644", + "kind": "blob", + "blob": "6e439ab97256952b0acd1eef0e1c1b4ab3ea015c", + "bytes": 498, + "sha256": "8823ad8aed1a5c1bdda93946e4b5ed24cd542e996a2b8087517cf62f7f4f2a84", + "byteBlobAndModeEqual": true + }, + { + "path": "tests/fixtures/astronaut.png", + "mode": "100644", + "kind": "blob", + "blob": "834cda0012478c5edc8d43bade96d315dedeaab4", + "bytes": 791555, + "sha256": "88431cd9653ccd539741b555fb0a46b61558b301d4110412b5bc28b5e3ea6cb5", + "byteBlobAndModeEqual": true + }, + { + "path": "tests/host_adapter_tests.m", + "mode": "100644", + "kind": "blob", + "blob": "8091c1523eb0b05295c391e20637c931d681e049", + "bytes": 30363, + "sha256": "77131c770222d3b404204fb04bf47cf943885eeff6acfc7498d59feb28eb1e73", + "byteBlobAndModeEqual": true + }, + { + "path": "tests/osc_tests.m", + "mode": "100644", + "kind": "blob", + "blob": "66fff5f78f8e0ba08026e53375b184a460a29162", + "bytes": 22495, + "sha256": "a3199147e32facd63373b53f77840408411b04436fb1dd42e2fb71023c8f2f8a", + "byteBlobAndModeEqual": true + }, + { + "path": "tests/slim_tests.m", + "mode": "100644", + "kind": "blob", + "blob": "3f7654f14e642f72ee57c2a5c3e92df39fe7346a", + "bytes": 12759, + "sha256": "701b52d7f803b44680586c215e5a351e4dc67661e5ea1a56ca5038567cd34cd6", + "byteBlobAndModeEqual": true + } + ] + }, + "requiredResources": [ + { + "path": "Templates/大鱼人像美化/大鱼人像美化.moef", + "exists": true, + "bytes": 22996 + }, + { + "path": "Templates/大鱼人像美化/Drop Zone.tiff", + "exists": true, + "bytes": 420128 + }, + { + "path": "beatygril/beatygril/Wrapper Application/Base.lproj/MainMenu.xib", + "exists": true, + "bytes": 50614 + }, + { + "path": "beatygril/beatygril/Wrapper Application/en.lproj/Credits.rtf", + "exists": true, + "bytes": 264 + }, + { + "path": "beatygril/beatygril/Wrapper Application/en.lproj/InfoPlist.strings", + "exists": true, + "bytes": 0 + }, + { + "path": "beatygril/beatygril/Plugin/en.lproj/InfoPlist.strings", + "exists": true, + "bytes": 85 + }, + { + "path": "beatygril/beatygril/Plugin/en.lproj/Localizable.strings", + "exists": true, + "bytes": 132 + }, + { + "path": "tests/fixtures/astronaut.png", + "exists": true, + "bytes": 791555 + }, + { + "path": "tests/fixtures/ATTRIBUTION.txt", + "exists": true, + "bytes": 498 + } + ], + "gitFsck": { + "args": [ + "git", + "fsck", + "--full", + "--strict" + ], + "returncode": 0, + "stdout": "", + "stderr": "" + }, + "submodules": { + "args": [ + "git", + "submodule", + "status", + "--recursive" + ], + "returncode": 0, + "stdout": "", + "stderr": "" + }, + "lfsPointers": [], + "remoteMain": { + "args": [ + "git", + "ls-remote", + "origin", + "refs/heads/main" + ], + "returncode": 0, + "stdout": "abe97ed0cbd5a2b5ffda6ebdb486d3bff9170964\trefs/heads/main\n", + "stderr": "" + }, + "processorUnchangedFromEc22": { + "commit": "ec22f1b2cf541d02e7ffbd5cc4edbc4d0cd97311", + "equal": true + }, + "test": { + "args": [ + "zsh", + "scripts/test.sh" + ], + "returncode": 0, + "stdout": "Beauty renderer: 49 checks, 0 failures (Metal).\nFace processing: 116 checks passed\nPASS: 224 slim alignment checks; maximum UV oracle error 1.09828022e-05\n", + "stderr": "2026-10-21 20:20:38.246 face-tests[7122:5413459] FBBA: creating VNFaceBBoxAligner from VNFaceDetectorRevision2: VNFaceDetectorRevision2\n2026-10-21 20:20:40.227 slim-tests[7129:5413512] FBBA: creating VNFaceBBoxAligner from VNFaceDetectorRevision2: VNFaceDetectorRevision2\n", + "elapsedSeconds": 3.384 + }, + "testCounts": { + "beauty": 49, + "face": 116, + "slim": 224 + }, + "testTotal": 389, + "cloneTrackedWorktreeClean": true, + "passed": true, + "temporaryCloneRemoved": true, + "completedAt": "2026-10-21T12:20:40.364542+00:00" +} diff --git a/docs/verification/v1.0.5/recovery-abe97ed.txt b/docs/verification/v1.0.5/recovery-abe97ed.txt new file mode 100644 index 0000000..96837e1 --- /dev/null +++ b/docs/verification/v1.0.5/recovery-abe97ed.txt @@ -0,0 +1,9 @@ +独立恢复验收:通过 +源码节点:abe97ed0cbd5a2b5ffda6ebdb486d3bff9170964 +远程:https://dayu.media/git/dayu/paintfcp-fxplug.git +远程 main 与节点一致。 +全部 69 个跟踪文件逐 byte/blob/模式一致;9 项必要资源完整。 +git fsck --full --strict 通过;无 LFS 指针、无子模块。 +独立 clone 内 scripts/test.sh:Beauty 49、Face 116、Slim 224;共 389 检查通过。 +未重复 Host/OSC ASan;未构建 APP、启动宿主、操作 UI、安装、修改源码、提交或操作交付锁。 +本次临时 clone 已清理。 diff --git a/docs/verification/v1.0.5/slim-real-video-asan.txt b/docs/verification/v1.0.5/slim-real-video-asan.txt new file mode 100644 index 0000000..0adc11a --- /dev/null +++ b/docs/verification/v1.0.5/slim-real-video-asan.txt @@ -0,0 +1,2 @@ +2026-10-21 20:20:01.427 slim-asan[6677:5410585] FBBA: creating VNFaceBBoxAligner from VNFaceDetectorRevision2: VNFaceDetectorRevision2 +PASS: 264 slim alignment checks; maximum UV oracle error 1.09828022e-05 diff --git a/docs/验证记录.md b/docs/验证记录.md index 2d2d97b..9278469 100644 --- a/docs/验证记录.md +++ b/docs/验证记录.md @@ -50,10 +50,14 @@ Motion:独立普通视频项目,源PTS0、1920×1080/25fps/10秒,媒体通 分析报告见 [脸型变形与转脸分析](analysis/脸型变形与转脸分析.md)。当前安装1.0.4的变形问题尚未修复,本轮的诊断代码/证据/文档不改变已安装产品。 -## 1.0.5 瘦脸修复候选 +## 1.0.5 瘦脸修复 已将最大瘦脸改为76点、17组局部位移;明确revision3/76点,保留图像及四类蒙版共用变形,旧档案缺完整点阵时只跳过瘦脸。新增224项数值与数据回归:48组尺寸/左右侧脸/歪头投影、非零原点、0/50/100%强度、独立double逆向坐标场、旧档案/坏点保护、失检重获及真实Vision76点与存储回放。最大UV坐标误差1.09828022e-5。 完整回归604项通过(渲染49、人脸116、瘦脸224、宿主适配117、OSC98);宿主适配与OSC启用ASan。独立审查另用程序生成的UV图与1×1读取验证36点,最大误差1.12695e-7。位图数值测试曾发现测试输入行方向与CI坐标不一致,修正测试桥接后通过,生产算法未因此反改。 -当前阶段尚未完成1.0.5正式签名公证安装,Motion/FCP界面不操作、最终视觉由用户自测。默认单主要人脸对齐17-pin数学;快速多人仍沿用逐脸采样,重叠区不宣称与原版单fragment全脸序列等价。 +1.0.5(7)已完成通用Release编译、Developer ID逐层签名、Apple公证Accepted(7d7034f8-7389-410f-ad8e-9e722408c0fc)、票据粘附/验证、Gatekeeper、安装身份与正式路径注册验证。用户保存退出宿主后安装;本轮没有操作或启动Motion/FCP界面,最终视觉由用户自测。默认单主要人脸对齐17-pin数学;快速多人仍沿用逐脸采样,重叠区不宣称与原版单fragment全脸序列等价。 + +额外用用户视频11帧(含4秒及18秒明显侧脸)运行264项瘦脸ASan检查,通过且未发现内存错误;此数包含重复的220项基础数值/数据检查,不与604简单相加。独立恢复从远程abe97ed0cbd5a2b5ffda6ebdb486d3bff9170964克隆,69文件/9资源和模式一致、strict fsck通过,clone内389项Metal/人脸/瘦脸测试通过。签名构建源码就是该节点;后续交付脚本补充了已公证产物校验恢复与重复注销兼容,产品源码未再变化。 + +正式安装APP仅位于 `/Library/Plug-Ins/FxPlug/beatygril.app`;配套1.0.5模板及占位资源已同步并逐字节核验。临时构建、旧版APP备份、公证ZIP已清理;项目、DerivedData、桌面、下载、Applications及系统/用户FxPlug目录扫描只发现该正式APP,无扫描错误。原生效果验收状态为用户自测待完成。票据、发现、恢复与检测报告见 `docs/verification/v1.0.5/`。