# 已登录会话完整视频入口 HOLD/3 同事项续派记录 - 时间:2026-08-06 - 事项:`DEV-PROJECT-INFO-BILI-AUTHENTICATED-SESSION-DOWNLOAD-20260805-001` - 身份:`dev.developer.project.secondary / infodev-2` - 续派:项目管理员在原 owner usage limit 后将同一事项唯一实施 ownership 临时续派给本角色;不是新事项、平行实现或新审核链。 ## 本轮范围 只修审核 HOLD/3 的 F2-R1、F4-R1、F5-R1:并发 start lease 与一次性 `prepare_id`;正式 PyInstaller 6.15.0 onefile 用法;source/build 树外 reviewer/admin approval receipt 信任锚。冻结 bridge、F1/F3 和既有产品边界不修改。 ## 完成与验证 - 延迟 Cookie-store 双击反例:读取 store 1 次、读取 Cookie 1 次、携密 start 1 次,重复请求 `E_BUSY`,首任务不终止。 - build/install 在关键副作用前校验外部信任锚;同目录自洽重签攻击仍 fail closed;正式信任 receipt 未由开发员创建或自签。 - 正式用法仅保留 pinned PyInstaller `6.15.0 --onefile --noupx`,真实构建和安装均为 0。 - 扩展测试 31/31 PASS;冻结 bridge 21/21 PASS;project discover 130 tests / OK / 6 skipped。 - py_compile、Node、PowerShell parser、JSON、严格 UTF-8、无 BOM、无尾随空格、凭据字面量扫描、治理校验均 PASS。 ## 边界与状态 真实 build/install、HKCU、Chrome、Cookie/session、network/download、真实媒体、`F:\video`、正式 `ana-data`、转写均为 0。当前状态为 `FROZEN_PENDING_HOLD3_LIMITED_IMPLEMENTATION_REREVIEW`,下一步只提交原共享审核员一次限定复审。 ## 限定复审终态 - 回执:`HANDOFF-INFOREV-INFODEV2-BILI-AUTHENTICATED-SESSION-HOLD3-MINIMAL-OFFLINE-REPAIR-REREVIEW-RESULT-20260806-001` - 结论:`PASS/0`,三项阻断全部关闭,冻结合同未回退。 - 审计:`DEV-AUDIT-PROJECT-INFO-BILI-AUTHENTICATED-SESSION-HOLD3-MINIMAL-OFFLINE-REPAIR-REREVIEW-20260806-001`。 - reviewer source approval 只允许 exact source manifest 的后续受控 build;install/HKCU 仍待唯一 EXE 与 schema2 receipt 的 hash-only 限定确认。 - 本续修回合未执行 build、install 或其他外部动作。状态=`HOLD3_MINIMAL_OFFLINE_REPAIR_ACCEPTED`。 ## 受控 build 预检 项目管理员随后授权一次 exact-source 受控 build。批准回执与 source manifest 复算一致,预定输出目录不存在;但固定目标环境无 PyInstaller,本机未找到精确 PyInstaller 6.15.0。按合同在 build 脚本调用前 fail closed,`build_count=0`,未生成 EXE/receipt/work/spec,未联网安装依赖。当前阻断为 `E_BUILD_DEPENDENCY_PYINSTALLER_6_15_0_UNAVAILABLE`,等待管理员提供或授权固定离线构建环境;install/HKCU 仍未授权。 管理员已独立复核所有本机 Python/Conda/PATH/离线缓存,确认没有精确 6.15.0 候选,并将状态定为 `BLOCKER_CONFIRMED_BUILD_REMAINS_FROZEN`。当前停止且不重复 preflight;管理员另行申请预置离线环境或新的明确供应链授权。 ## exact-source 受控 build 管理端预置离线 PyInstaller 6.15.0 环境并恢复原单次授权。预检对 Python/PyInstaller、7 个 wheels、provision receipt、reviewer approval、15 个 source 文件及空输出目录全部通过。`build_host.ps1` 只执行一次,exit 0,墙钟 20.839 秒,`build_count=1`。 - EXE:`dev/tmp/bili-auth-controlled-build-20260806-001/project-info-bili-auth-native-host.exe|8608281|F0D3CE2EF12D7D305B8F765169CBF5430DF9F0D36D03FF4447A85378AFF8A26F` - receipt:`dev/tmp/bili-auth-controlled-build-20260806-001/build-artifact-manifest.json|995|9B989A32C92A4EB89911C9D5151F31B416BA8F265785CE575FDD1A23FBEDF63D` - 输出仅两项,work/spec 已清,approval/source/receipt/EXE 链、MZ 与 receipt 编码通过,构建控制台无秘密/签名 URL 命中。 当前=`PENDING_EXACT_BUILD_HASH_ONLY_CONFIRMATION`。未执行 EXE、安装或 HKCU;未接触 Chrome/Cookie/session/network/download/media/`F:\video`/正式 `ana-data`/转写。 ## exact-build hash-only 终态 原审核员返回 `PASS/0`,exact build identity gate 已满足。reviewer-owned 树外 approval=`ai-inforev/worklog/2026-08-06-bili-authenticated-session-build-approval.json|594|244097BC466D969E046F0E64E9D3A1213F5AB64E12C9358DF0807B4BA0F8F816`,仅用于 installer 身份门禁。审核及本线程均未执行 EXE、安装或 HKCU;实际安装必须由管理员/请求方另行明确调度。 ## exact-build 安装预检阻断 管理员授权同一操作者执行一次 exact-build 安装。输入、source/build approvals、两文件输出集合、目标安装目录与 HKCU 键均通过只读身份/缺省状态复核;随后使用获准 PyInstaller 6.15.0 环境的 archive viewer 递归检查 EXE,未执行 EXE。 静态归档包含 `bili_authenticated_extension.worker`,但 `yt_dlp` 条目为 0;构建环境的 `yt-dlp` distribution 亦为 `ABSENT`,`build_host.ps1` 没有 hidden-import/collect 合同。worker 在发送 `READY_PLUGIN_DISABLED` 前必须 import `yt_dlp`,因此该 exact build 无法通过安装后的静态可用性门禁。按 fail-closed 合同在安装前停止,`install_attempt_count=0`,安装目录和 HKCU 键继续不存在,EXE/Chrome/Cookie/session/network/download/media/`F:\video`/正式 `ana-data`/转写动作均为 0。 机器可读证据:`dev/tmp/bili-auth-install-preflight-20260806-001/preflight-blocked.json`。当前状态=`BLOCKED_BEFORE_INSTALL/E_BUILD_RUNTIME_DEPENDENCY_MISSING`;需要原任务链批准修正构建合同并产生新的 exact build,当前 approval 不得用于替换字节。 ## yt-dlp 构建合同最小修复 项目管理员确认旧 exact build 的 `E_BUILD_RUNTIME_DEPENDENCY_MISSING`,并在同一 task、同一 owner、同一审核链授权最小修复。旧 EXE/receipt/approval 保持原字节且固定为 `NOT_INSTALLABLE / SUPERSEDED_FOR_INSTALL`;未覆盖、删除或执行。 - 仅执行一次有界 PyPI 获取命令,得到 `yt_dlp-2026.7.4-py3-none-any.whl|3184705|F11F2B11D5A8AC4059F9BDF29FA4407DC7C6BB00C5097E95CA22A7A9DB518266`。未获取媒体、会话或 provider 数据。 - wheel metadata 中无无条件 `Requires-Dist`;项目私有 dependency manifest=`723/2943A0EF7968523A342C28824CACC16E2E0D8324D36DEEEE2E6FBABB910AC27D`,冻结单 wheel 闭包。 - `build_host.ps1` 新增副作用前依赖门禁、离线 `.deps` 安装、`collect-all/copy-metadata` 和 receipt 前递归归档检查;`install_native_host.ps1` 同步拒绝旧 receipt 及不完整依赖绑定。 - source manifest=`3029/D1CE8C00A50CF17E45FB915577369BADA4AD9937335290852F393DC6BD053FCF`,17/17 文件绑定通过。 - 验证:目标=`31/31 PASS / 184.223s`;冻结 bridge=`21/21 PASS / 0.138s`;project=`133 tests / OK / 6 skipped / 172.091s`。第一次误用 bridge 专用环境运行 project discover,因缺少无关的 numpy/mysql 依赖失败;换用项目基础环境完整复跑通过。 当前新 build_count=0;install/HKCU/EXE execution/Chrome/Cookie/session/media network/download/`F:\video`/正式 `ana-data`/转写均为 0。下一步只向原审核员提交 source+dependency manifest 限定复审;开发员不自签 source approval。 ## yt-dlp 构建合同 HOLD/2 限定修复 原审核员返回 `HOLD/2`,仅要求关闭实际 source tree 精确集合与 builder 环境注入。已按原链完成: - build 与 installer 在任何 Python/输出/复制/HKCU 前递归枚举实际源码树,除 manifest 自身外必须大小写敏感地精确等于 17 个冻结文件;根级/嵌套额外文件和 reparse 均 fail closed。 - build 显式绑定管理员预置的 Python、PyInstaller executable 与树外 provision receipt;首次 Python 调用前移除全部继承 `PYTHON*`,全程使用同一精确 Python 的 isolated 调用。伪 PyInstaller/伪 pip `PYTHONPATH` 注入不会执行伪模块或产生输出。 - production 无测试旁路;合成成功只在 `TemporaryDirectory` 修改脚本副本。source manifest 更新为 `3029/E01C1320F8C7677B7435B4C8B87EA3688BA652585648D7CFD1F88D0DADB26958`。 - 验证:扩展=`31/31 PASS / 113.250s`;冻结 bridge=`21/21 PASS / 0.195s`;project=`133 tests / OK / 6 skipped / 171.664s`;聚焦 F1/F2、installer、source manifest 反例全部 PASS。 - 本轮测试生成的缓存目录已移入 `dev/tmp` 隔离,实际产品源码树恢复精确集合。replacement build/install/HKCU/EXE execution/Chrome/Cookie/session/media network/download/`F:\video`/正式 `ana-data`/转写仍为 0。 当前=`PENDING_HOLD2_SOURCE_REREVIEW`。只向原审核员提交同链限定复审;PASS 和新树外 source approval 前不构建。 ## HOLD/2 PASS 与单次 replacement build 阻断 原审核员返回 `PASS/0`,F1/F2 关闭;新树外 source approval=`373/26AF51848717C47A2915D633B258269EA79213A94BAFEFF9CE7D30CDC2A77F96`,精确绑定 source manifest=`3029/E01C1320F8C7677B7435B4C8B87EA3688BA652585648D7CFD1F88D0DADB26958`。复算通过后按管理员既有授权只调用一次 replacement build。 离线 wheel 安装到临时 `.deps` 成功,但 PyInstaller spec 的 `copy_metadata('yt-dlp')` 未在其 metadata 搜索路径看到该临时 distribution,构建以 `PackageNotFoundError`/exit 1 失败。attempt_count=1,未重试;输出目录已清理为不存在,未形成 EXE 或 schema 2 receipt。旧不可安装构建保持原字节,source 仍为 17/17 且无 reparse;install/HKCU/EXE execution/Chrome/Cookie/session/media network/download/`F:\video`/正式 `ana-data`/转写均为 0。 当前=`BLOCKED_AFTER_SINGLE_BUILD_ATTEMPT/E_BUILD_METADATA_NOT_DISCOVERABLE`。单次构建授权已消耗,等待管理员在原链决定最小 source 修订与新的 source review/build authorization。 ## metadata discovery 最小修复 管理员已在同一 task/reviewer 链授权修复和“source PASS 后一次新洁净构建”,未授权安装。实现只改 `build_host.ps1` 与对应离线测试: - `.deps` 必须位于 owned output 根下、全树非 reparse,并按 pinned wheel、pip `INSTALLER/REQUESTED` 与安装 RECORD 精确验证文件集和内容;唯一 distribution 必须为 `yt-dlp 2026.7.4`,额外 distribution/PyInstaller module、缺件、篡改与错误 owner 均 fail closed。 - exact Python 继续用 `-I`;只在进程内把已验证 `.deps` 插入 `sys.path`,真实确认 metadata version 后再 `run_module('PyInstaller')`。继承 `PYTHON*` 和外部路径仍不会恢复。 - metadata 聚焦=`1/1 PASS / 51.241s`;新旧门禁合并=`2/2 PASS / 128.251s`;扩展=`32 tests / OK / 5 skipped / 150.469s`;冻结 bridge=`21/21 PASS / 0.181s`;project=`134 tests / OK / 6 skipped / 203.739s`。 当前 build=`25586/F5E9FC58313B2CB765772BF3A5C8605BCA9DD91A1FF74D0F03DBEB3174949845`;source manifest=`3029/AC852D40CF2B6FE891BE25D2E6E068A876EAC60E07EE6E9DB6826AC1064B29B8`。修复后 build_count=0;install/HKCU/EXE/Chrome/Cookie/session/network/media/正式路径仍为0。状态=`PENDING_METADATA_REPAIR_SOURCE_REREVIEW`。 ## metadata 完整性门前代码执行 HOLD/1 闭环 原审核员确认第 14 节实现仍在完整性验证前导入临时 `.deps/yt_dlp`,独立 marker 反例实际执行。已只删除该旧 identity probe;现在 `.deps` 必须先通过 canonical owner、全树非 reparse、wheel-derived exact 文件集/哈希、RECORD、`INSTALLER/REQUESTED` 和唯一版本检查,随后 PyInstaller launcher 才是首次 `sys.path` 插入和依赖代码执行点。 新增 post-pip 篡改反例向 `yt_dlp/__init__.py` 追加写 marker 代码;入口返回非零并清理 output/receipt,marker 保持不存在。冻结:build=`25093/43816E7932A785321B545073FEAD9EB38198E5ED3B07F2469062895ADC41238F`;source manifest=`3029/463182C6980734B72831BDF9B387160F8AD21A03B52CBAB4AC74CA98CEB1B7AE`;test=`59374/55F7F4ECA14E370BAB1D5D1CA154BE8BFD1E602C5460B69670A376751C5E08EA`。 验证:聚焦=`1/1 PASS / 54.068s`;扩展=`32 tests / OK / 5 skipped / 149.629s`;bridge=`21/21 PASS / 0.204s`;project=`134 tests / OK / 6 skipped / 205.302s`。本轮 build/install/HKCU/EXE/Chrome/Cookie/session/network/media/正式路径动作均为 0;候选输出 `002` 不存在。状态=`PENDING_F1_PREVALIDATION_SOURCE_REREVIEW`。 机器证据=`dev/tmp/bili-auth-ytdlp-build-contract-repair-20260806-001/prevalidation-code-execution-closure-20260807.json|2686|A3BA1EDB3C5C236C886B17821095481541DA1CAA7A349C3F4C25D279AF6BADF2`;治理=`OK/projects=1/warnings=0`。 ## F1 PASS 后单次 replacement build 阻断 原审核员返回 `PASS/0`,新树外 source approval=`373/54514FCD70D2ED85F33E48433B13241F845A329A3DBD2C089AF416F1D67B2CEB` 绑定 manifest=`3029/463182C6980734B72831BDF9B387160F8AD21A03B52CBAB4AC74CA98CEB1B7AE`。全部精确输入和新输出缺省状态复算通过,`-ValidateOnly` 亦通过。 唯一一次 `002` build 中,离线 yt-dlp 安装和 PyInstaller EXE 组装完成,但 receipt 前静态归档门报告缺少固定 yt-dlp package metadata,exit=1、约69.7s。attempt_count=1、retry=0;输出根回滚 absent,accepted EXE/receipt 均为0,未送 hash-only 审核。证据=`dev/tmp/bili-auth-ytdlp-build-contract-repair-20260806-001/replacement-build-002-blocked-20260807.json|2322|3E184118BEE03C8AA6D536B10C0B41F2B795FF8D4D56D72911B065CA9D50A257`。 历史不可安装产物保持原字节;install/HKCU/EXE/Chrome/Cookie/session/network/media/正式路径动作均为0。状态=`BLOCKED_AFTER_SINGLE_BUILD_ATTEMPT/E_BUILD_ARCHIVE_METADATA_MISSING`,不自行修复或重试。 ## onefile 归档 metadata 合同最小修复 管理员授权后离线确认:`copy_metadata('yt-dlp')` 返回完整 `yt_dlp-2026.7.4.dist-info` 目录;旧阻断来自 `archive_viewer -r` 对 Windows 反斜杠的 `repr` 转义与单分隔符正则不匹配,不是 collection 缺失。 已把 receipt 前门禁改为 PyInstaller 6.15.0 `CArchiveReader` 结构化遍历 CArchive/PYZ。归档路径必须可规范化且无重名;六个冻结模块锚点必须齐全;唯一 metadata 根、7 个相对文件、data 类型、逐文件 bytes、`Name=yt-dlp`、`Version=2026.7.4` 与稳定树哈希 `7C9ABE2387AF3594593BB162C29757B10693F90DD61606272089DB9815C2105C` 均须匹配。installer 同步拒绝缺少新字段的旧 schema 2 receipt。 冻结:build=`32216/4E25D57D8133670D25BACF0E2A38D1C673DB9576413B22EBDC28304CAB6B2A33`;installer=`22467/DBF1A828DC343DCA4B52283B8EE189962007581E42D03D213A55461CE05CFEF6`;source manifest=`3029/508F69CE49224F0B79BA24E25F47CE84E598C3D6747FF284A7B4FD32E7E19910`;test=`62074/66B70D38E983806B82A2D00A1F741A79445E9C9CF80EA2C0951EED2935C1CC2B`。 验证:聚焦=`1/1 PASS / 167.713s`;扩展=`32 tests / OK / 5 skipped / 239.755s`;bridge=`21/21 PASS / 0.147s`;project=`134 tests / OK / 6 skipped / 295.036s`;PowerShell parser=`PASS/0`。缺失、重复、错 Name/Version、残缺、嵌套、替代分发均失败关闭;正常 Windows 路径通过。 本轮 production/replacement build、install、HKCU、EXE、Chrome/Cookie/session、网络/下载/媒体与正式路径动作均为 0;`003` 输出不存在。机器证据=`dev/tmp/bili-auth-ytdlp-build-contract-repair-20260806-001/archive-metadata-contract-repair-20260807.json`;状态=`PENDING_ARCHIVE_METADATA_SOURCE_REREVIEW`。 ## archive metadata source 复审容量阻断 复审请求已可靠入箱=`msg_20260807042629035_d5f27466`。原审核员独立复算 source `17/17`,并完成聚焦归档合同测试=`1/1 PASS / 156.385s`;随后其 turn `019fd8c1-e9de-78e3-b9c5-0758309b621e` 因 usage limit 以 `systemError` 终止,未形成正式 PASS/HOLD、审计或新树外 source approval。 容量阻断已升级项目管理员=`msg_20260807045308506_36bf3f9a`,但管理员 turn `019fd8da-3bb5-7c70-9fcd-6a97b65a1253` 同样因 usage limit 终止,未形成恢复或重路由决定。两处均报告可重试时间为 `2026-08-08 13:31 +08:00`。 部分测试通过不替代正式 approval。source manifest 继续冻结为 `3029/508F69CE49224F0B79BA24E25F47CE84E598C3D6747FF284A7B4FD32E7E19910`,候选 `003` 仍不存在,replacement build/install/HKCU/EXE/真实动作均为0。证据=`dev/tmp/bili-auth-ytdlp-build-contract-repair-20260806-001/archive-metadata-source-review-capacity-blocked-20260807.json`;状态=`BLOCKED_REVIEW_CAPACITY`。 ## archive metadata source PASS 后单次 build-003 阻断 容量恢复后,原审核员返回 `PASS/0`,树外 source approval=`ai-inforev/worklog/2026-08-08-bili-authenticated-session-ytdlp-archive-metadata-source-approval.json|373|A46A8D29A42B85E0DB83AA4EC5153B298BE9C24684637C6B7864AD23EF5B41E8`,精确绑定 source manifest=`3029/508F69CE49224F0B79BA24E25F47CE84E598C3D6747FF284A7B4FD32E7E19910`。构建前 exact source/approval/dependency/wheel/Python/PyInstaller/provision receipt 与输出 absent 均匹配,`-ValidateOnly=PASS`。 唯一一次授权 build-003 在 `2026-08-08T14:04:44+08:00` 启动,离线依赖安装和 PyInstaller onefile 组装完成,但 receipt 前结构化门返回 `E_ARCHIVE_METADATA_TYPE`,exit=1,墙钟 `81.921s`。脚本已回滚新输出根;accepted EXE/receipt=`0/0`,attempt=`1`、retry=`0`。 离线只读定位证明这是类型门的 Windows false rejection:固定 PyInstaller 6.15.0 `building/api.py` 在 `os.access(src_name, X_OK)` 为真时把 DATA 写成 CArchive type `b`;本机已验证 metadata 临时文件 `X_OK=true`、mode=`0o100666`,而 wheel 原始 mode=`0o644`。`CArchiveReader` 返回该 decoded type code;当前实现只接受 `x`,因此在内容精确校验前误拒绝。未修改 source,也未再次构建。 证据=`dev/tmp/bili-auth-ytdlp-build-contract-repair-20260806-001/replacement-build-003-blocked-20260808.json`。install/HKCU/EXE execution/Chrome/Cookie/session/network/download/media/`F:\video`/正式 `ana-data`/转写均为0;历史不可安装产物保持原字节。状态=`BLOCKED_AFTER_SINGLE_BUILD_ATTEMPT/E_BUILD_ARCHIVE_METADATA_TYPE_FALSE_REJECTION`,等待管理员在原链授权最小类型合同修复、复审与新的单次构建。 ## archive metadata type 合同最小修复 管理员通过 `HANDOFF-INFOADMIN-INFODEV2-BILI-AUTHENTICATED-SESSION-YTDLP-TYPE-CONTRACT-REPAIR-BUILD004-AUTH-20260808-001` 限定授权。实现只在唯一 metadata 根及 7 个精确相对文件集合已经通过后,接受 PyInstaller DATA type `x` 或 Windows 因 `os.access(..., X_OK)` 提升的 `b`;其他 type 全部 `E_ARCHIVE_METADATA_TYPE`。`b` 不会扩展为任意 binary/module/script/path/data 许可。逐文件 bytes、Name/Version 与 tree hash 门保持不变;实际 type 集合写入 schema 2 receipt 的 `archive_verification.metadata_type_codes`,installer 同步要求非空且仅含 `b/x`。 新增真实 PyInstaller `CArchiveWriter` 的 `x/b` 正例;合成入口逐一拒绝 `Z/a/d/l/m/n/o/s/z`,并覆盖错误路径下的 `b`。既有 path/file-set/Name/Version 反例继续保留,新增 payload bytes 漂移与 installer receipt tree-hash 漂移反例。一次并发测试产生的两份 `__pycache__` 被 source-tree 门正确拒绝,随后可恢复地隔离到 `dev/tmp/bili-auth-source-pycache-quarantine-type-repair-20260808`;串行复跑时 source=`17/17 exact`。 冻结:build=`33020/3739436920FCEA8BA68DC04BBDAB0F346C08216F49D89A097C50075912A258A0`;installer=`22741/53A1D1AFD9E4571A2491AE66C5E721E77A2201DBFAA29C9094E42CE0CB684C2A`;source manifest=`3029/21009AADBAC3F25AAA15712948232796E813A5973FDE497B11A334915A3C7EB3`;test=`69608/2E7D6BE3B9607A34A90B283F2CDDBC65A31CD2AF02026EB97E8CED6C153075AB`。 验证:real writer=`1/1 PASS / 2.086s`;installer+writer=`2/2 PASS / 17.198s`;完整类型/构建门=`1/1 PASS / 370.155s`;冻结 bridge=`21/21 PASS / 0.225s`;project=`135 tests / OK / 6 skipped / 538.519s`;PowerShell parser=`PASS/0`。机器证据=`dev/tmp/bili-auth-ytdlp-build-contract-repair-20260806-001/archive-metadata-type-contract-repair-20260808.json`。 build-004=`0`,候选 `dev/tmp/bili-auth-controlled-build-ytdlp-20260808-004` 不存在;install/HKCU/EXE execution/Chrome/Cookie/session/network/download/media/`F:\video`/正式 `ana-data`/转写均为0。状态=`PENDING_ARCHIVE_METADATA_TYPE_SOURCE_REREVIEW`;新 reviewer-owned source approval 前不得构建。 ## source PASS 后唯一 build-004 成功 原审核员返回 `PASS/0`,树外 source approval=`ai-inforev/worklog/2026-08-08-bili-authenticated-session-ytdlp-archive-metadata-type-source-approval.json|373|102B30405B81137BD3AC9B81CFA39A6A7BB21531115FB3F361F821B2A093335E`,精确绑定 source manifest=`3029/21009AADBAC3F25AAA15712948232796E813A5973FDE497B11A334915A3C7EB3`。构建前 source 17/17、reparse=0、dependency/wheel、exact Python/PyInstaller/provision receipt、新输出 absent 和 `-ValidateOnly` 均通过。 管理员既有单次条件授权下,build-004 唯一调用 exit=`0`、墙钟=`86.8s`、attempt=`1`、retry=`0`。输出根=`dev/tmp/bili-auth-controlled-build-ytdlp-20260808-004`,仅有两个普通非 reparse 文件,无 `.build/.spec/.deps`: - EXE=`project-info-bili-auth-native-host.exe|21343775|DBF155BCC05B4DF55592D0A4B56612F8BE9C990B3B9AF7691F6A11648866B0B0`;只做 `MZ` 静态检查,未执行。 - receipt=`build-artifact-manifest.json|2874|0B36AA7DCA3AD80F8A370E96D50CAAFB386291EE2741305C7797ED663F5C2B27`;strict UTF-8/schema2/无 BOM/无重复键/无尾空白,文件项和 source/dependency/builder 绑定匹配。 - receipt 归档门=`PASS`;modules 6、metadata files 7、type codes=`[b]`、metadata tree SHA-256=`32F1DC23F6704966AE4511CB173318CD11FCBA031323028D268D9F2488589E70`。 机器证据=`dev/tmp/bili-auth-ytdlp-build-contract-repair-20260806-001/replacement-build-004-success-20260808.json`。install/HKCU/EXE execution/Chrome/Cookie/session/network/download/media/`F:\video`/正式 `ana-data`/转写均为0。状态=`PENDING_EXACT_BUILD_HASH_ONLY_CONFIRMATION`;不得自行安装,等待原审核员 hash-only PASS 与新 install-exact-build approval。 ## build-004 hash-only HOLD/1 原审核员静态复算确认 EXE、receipt、source approval、builder/dependency 和精确输出集合均与提交一致,但结论为 `HOLD/1`。唯一阻断=`F1_BUILD004_RECEIPT_INSTALLER_METADATA_TREE_HASH_MISMATCH`:receipt 与 CArchiveReader 均得到 7 个 yt-dlp metadata 文件、type=`[b]`、tree hash=`32F1DC23F6704966AE4511CB173318CD11FCBA031323028D268D9F2488589E70`;同一受批 source 内 installer=`22741/53A1D1AFD9E4571A2491AE66C5E721E77A2201DBFAA29C9094E42CE0CB684C2A` 仍只接受 `7C9ABE2387AF3594593BB162C29757B10693F90DD61606272089DB9815C2105C`,因此会在 copy/HKCU 前失败关闭。 build-004 EXE/receipt 保留为冻结失败证据,状态=`NOT_INSTALLABLE`;审核员未创建、复用或更新 install-exact-build approval。正式审计=`DEV-AUDIT-PROJECT-INFO-BILI-AUTHENTICATED-SESSION-YTDLP-REPLACEMENT-BUILD-004-HASH-ONLY-CONFIRMATION-20260808-001|376110|5EE85855516E114029ADFF537E23DEFFBB47DBF557E94AEE9AC4DCCB8C65E993`。机器终态证据=`dev/tmp/bili-auth-ytdlp-build-contract-repair-20260806-001/replacement-build-004-hash-review-hold-20260808.json`。 后续必须先由管理员在同链授权最小 source 修复,使 build/installer 对同一 7 文件采用同一 canonical tree-hash 算法,并补 production-equivalent installer preinstall 正例;再走 source 复审、新 source approval、新 absent-output build 与新 hash-only 确认。本轮 build-004 retry/install/HKCU/EXE execution/真实动作均为0。 ## canonical seven-file tree-hash 最小 source 修复 管理员通过 `HANDOFF-INFOADMIN-INFODEV2-BILI-AUTHENTICATED-SESSION-YTDLP-CANONICAL-TREE-HASH-REPAIR-BUILD005-AUTH-20260808-001` 授权同链修复。单一 golden contract 现位于 `source-artifact-manifest.json#archive_metadata_contract`:唯一 root、固定 7 文件、`Name=yt-dlp`、`Version=2026.7.4`、type=`b|x`、canonical 序列算法及最终 `32F1DC23F6704966AE4511CB173318CD11FCBA031323028D268D9F2488589E70` 只从同一受批 manifest 提供;builder 复算后写 receipt,installer 从同一 manifest 做 preinstall 精确比较,产品脚本中旧 `7C9A...105C` 常量已为0处。 离线诊断证明 pip 生成 console launcher 的 ZIP 时间戳会改变 metadata `RECORD`。合同固定标准 distlib `SOURCE_DATE_EPOCH=1786207924`,精确 wheel 的隔离 pip 安装可复现 build-004 七文件:RECORD=`91484/433ED247B6625B8960AD19676BD04EC689640CCE050604A925A3EC013AF07D4F`,tree=`32F1...E70`。builder 仅在 pip 子进程期间设置该值并在 finally 恢复原进程环境。 installer production-equivalent ValidateOnly 正例使用 canonical receipt 通过且 install/registry 副作用为0;历史 `7C9A...105C`、全零和任意漂移值均在 copy/HKCU 前失败。真实 CArchiveWriter `b/x` 保持通过。验证:聚焦=`2/2 PASS / 22.274s`;合成 builder 反例=`1/1 PASS / 348.093s`;bridge=`21/21 PASS / 0.232s`;最终 project=`135 tests / OK / 6 skipped / 489.917s`。首次 project run 唯一失败来自 test seam 选择运行器 Python,修正为 exact builder 后闭环。 冻结:build=`35414/6184EBA087470BB5DBD6FEC29EB22068F8119FBDE2ED640715E8317B5A928C04`;installer=`24079/AA9667A3CD765B21058F234FD82DFDB9621161246041EC595E4BCB17DDCFDE86`;source manifest=`3681/333BA59512C5F68B35C00B8C9738C8B26FB78285F05851F9F35BA3FC44819535`;test=`70133/8913DC78EBB1780C29A518D7AC4DE90E4C8B0E8B8FF82106A3461326A3389045`;source=`17/17 exact/reparse0`。机器证据=`dev/tmp/bili-auth-ytdlp-build-contract-repair-20260806-001/canonical-tree-hash-contract-repair-20260808.json`。 build-005 attempt=`0`、候选 output absent;install/HKCU/EXE execution/真实动作均为0。状态=`PENDING_CANONICAL_TREE_HASH_ONLY_SOURCE_REREVIEW`;正式 PASS/新 reviewer-owned source approval 前不得构建。 ## canonical source PASS 后唯一 build-005 原审核员已返回 `PASS/0`,正式审计=`DEV-AUDIT-PROJECT-INFO-BILI-AUTHENTICATED-SESSION-YTDLP-CANONICAL-TREE-HASH-SOURCE-REREVIEW-20260808-001|381790|9478849A3E760B3B38FFA79B9BFDB8F45BEA8FB0D6CBCB702852F65CB6A81501`;新的树外 source approval=`ai-inforev/worklog/2026-08-08-bili-authenticated-session-ytdlp-canonical-tree-hash-source-approval.json|373|E0D621EB2C5E8149FE9B775CF7EA2F2ECB17C3FC3A6D4911D67CF2D24ACBD3EF`,精确绑定 manifest=`3681/333BA59512C5F68B35C00B8C9738C8B26FB78285F05851F9F35BA3FC44819535`。 构建前复算 source approval、manifest、dependency manifest、wheel、固定 Python/PyInstaller/provision receipt 与历史 build-004 均匹配;build-005 输出根不存在。`-ValidateOnly` 返回 `VALIDATION_PASS_ONLY` 且未创建输出。随后消费管理员授权的唯一一次 build-005:attempt=`1`、retry=`0`、exit=`0`、wall=`66.8s`。 冻结输出根=`dev/tmp/bili-auth-controlled-build-ytdlp-20260808-005`,精确包含两个普通非 reparse 文件、目录=0、`.build/.spec/.deps`=0: - EXE=`project-info-bili-auth-native-host.exe|21343716|CABE09ACC0CC151B3C537F68B9AF1544D6CB5BCAF64FE3B3DB12055D52C732EE`,仅静态 `MZ` 检查,执行=0。 - schema2 receipt=`build-artifact-manifest.json|2874|CC6663A15CDEB375167900730A9F956C9B09839558586E5DFC3D7FC57728ACC0`,strict JSON/UTF-8、无 BOM/重复键/尾随空白;唯一 EXE 项和 source/dependency/wheel/builder 绑定精确匹配,metadata=`7 files/type [b]/tree 32F1DC23F6704966AE4511CB173318CD11FCBA031323028D268D9F2488589E70`。 机器证据=`dev/tmp/bili-auth-ytdlp-build-contract-repair-20260806-001/replacement-build-005-success-20260808.json|4496|3FB4557AD81556068B27F6EBA10017883B511C52DDD66AA505150AAD4977CF57`。历史 build-004 EXE/receipt 哈希未变并继续为 NOT_INSTALLABLE 历史证据。install/HKCU/EXE execution/Chrome/Cookie/session/network/download/media/`F:\video`/formal `ana-data`/transcription 均为0。当前状态=`PENDING_BUILD005_HASH_ONLY_CONFIRMATION`;新的 install-exact-build approval 与管理员安装调度形成前不得安装。 ## build-005 hash-only PASS/0 原审核员独立静态复算后返回 `PASS/0`、阻断0,结论=`BUILD005_EXACT_BUILD_HASH_ONLY_CONFIRMED`。正式审计=`DEV-AUDIT-PROJECT-INFO-BILI-AUTHENTICATED-SESSION-YTDLP-REPLACEMENT-BUILD-005-HASH-ONLY-CONFIRMATION-20260808-001|386985|2F0DBEACE8584940D219CF89BAFD0F5AE6F5C4288B29C137CAC915776A3F7FEA`。审核员确认精确两文件、EXE/MZ、schema2 receipt、source/dependency/builder 绑定及 CArchive 七文件/type `[b]`/Name/Version/modules/canonical tree 全部匹配。 新的树外 install-exact-build approval=`ai-inforev/worklog/2026-08-08-bili-authenticated-session-ytdlp-replacement-build-005-install-approval.json|596|4D18A32DE9DFEB6B90C1A398087BD36CEAE09418D54E1F0DC485D6B95C962A44`,精确绑定 source manifest、receipt 与 EXE。终态机器证据=`dev/tmp/bili-auth-ytdlp-build-contract-repair-20260806-001/replacement-build-005-hash-review-pass-20260808.json|2454|3E4BC53C8419C7D43992F10811A685C5E810F760EA2EA25B0BE087D904F148BE`。 该 PASS/approval 只关闭 exact-build identity 门禁,不授权当前回合安装、HKCU 或 EXE 执行。当前 install/HKCU/EXE execution/Chrome/Cookie/session/network/download/media/`F:\video`/formal `ana-data`/transcription 仍为0;保持 build-005/receipt/source approval/install approval 不可变,等待管理员或请求方另行明确安装调度。 ## build-005 安装前验证失败关闭 收到管理员唯一安装授权 `HANDOFF-INFOADMIN-INFODEV2-BILI-AUTHENTICATED-SESSION-YTDLP-BUILD005-INSTALL-EXACT-BUILD-AUTH-20260808-001` 后,先完成 exact EXE/receipt/source manifest/source approval/install approval、配置、目标目录与 HKCU 前像的只读复算。生成的无秘密配置=`dev/tmp/bili-auth-install-build005-20260808-001/config.json|1265|2F09B69AC9B8B82F90EB16673F71D3418AB73A94092C1785E5F697F50E6F2B50`。 按合同先运行不带 `-Install` 的 installer。该 `VALIDATION_PASS_ONLY` 阶段以 `Actual source tree file set does not exactly match the approved manifest.` 失败关闭:批准清单为17文件,当前实物为19文件,额外项仅为 `__pycache__/__init__.cpython-312.pyc` 与 `__pycache__/constants.cpython-312.pyc`;批准的17文件 bytes/SHA 均未漂移,reparse=0。未删除、忽略或修复额外文件,未重试。 机器证据=`dev/tmp/bili-auth-install-build005-20260808-001/install-preflight-blocked-20260808.json|2269|413AD21E4C836E90E86D7E66CD3C580C24AC8E7BCCD2708A21F108E6E5075A86`。install attempt=`0`、retry=`0`,安装根与 HKCU 均保持缺省;EXE execution/Chrome/Cookie/session/network/download/media/`F:\video` 写入/formal `ana-data`/transcription 均为0。终态=`BLOCKED/E_SOURCE_TREE_SET_DRIFT`。 ## build-005 精确缓存清理后受控安装成功 管理员续发 `HANDOFF-INFOADMIN-INFODEV2-BILI-AUTHENTICATED-SESSION-BUILD005-INSTALL-PREFLIGHT-CACHE-CLEANUP-RESUME-20260808-001`,仅授权对上述两个 `.pyc` 精确复算后删除。两文件普通、非 reparse、bytes/SHA 全匹配;只删除这两文件和删除后的空 `__pycache__` 目录。清理后源码树恢复 `17/17 exact`,missing/extra/hash mismatch/reparse=`0/0/0/0`,全部 source/build/approval/config 哈希保持原值。 第二次且最后一次 `VALIDATION_PASS_ONLY` 返回 PASS,安装根与 HKCU 保持缺省。随后消费唯一实际安装:attempt=`1`、retry=`0`,2026-08-08 21:31:52+08:00 至 21:31:56+08:00 成功。安装根=`C:\Users\Cai\AppData\Local\project-info\bili-auth-native-host\1.0.0+20260805.v002`,精确三文件且目录/reparse=0;installed EXE=`21343716/CABE09ACC0CC151B3C537F68B9AF1544D6CB5BCAF64FE3B3DB12055D52C732EE`,config=`1265/2F09B69AC9B8B82F90EB16673F71D3418AB73A94092C1785E5F697F50E6F2B50`,native manifest=`433/A050B24FBFC879BEB25044D775AC43DC95F7BCDBDCCF153BF4198EF6B8E68B51`。 只读健康检查 PASS:host=`com.project_info.bili_auth_ingress`,allowed origin=`chrome-extension://oidmclckpdmpabbfedplkbdplmfcenbb/`,HKCU 目标仅一个默认 String 值并精确指向安装 manifest;回滚合同静态存在,目标 BV 文件仍为0。机器证据=`dev/tmp/bili-auth-install-build005-20260808-001/install-success-20260808.json|3713|2349894EE33541E54A7452C054C248239E735403F3D4B4ED5649586C3C897AAB`。EXE execution/Chrome/Cookie/session/network/download/media/`F:\video` 写入/formal `ana-data`/transcription 均为0;runtime use 仍未授权。