edit | blame | history | raw

视频转文字助手 EOF 稳定性修复

一、当前结论

DEV-PROJECT-INFO-VIDEO-TEXT-HOST-WRITE-EOF-STABILITY-20260806-001 已在只读来源映射阶段停止代码替换。已安装 Windows Native Messaging host 与上游 v1.0.5 host_win.py 的归一化字节码指纹完全一致,不是弹窗堆栈指向的 Node host.cjs。项目管理员已接受该反证并撤回“已安装 Python host 导致弹窗”的因果声明。因此,不修改 active Python host,不宣称已消除现场弹窗。

事项当前仅保留为 EVIDENCE_AWAITING_NO_PRODUCT_MUTATION:如弹窗再次出现且现场提供 PID、父 PID、可执行文件路径或等价 WER 记录,才进行一次有界只读身份核对。不构建、不安装、不替换,不建立常驻监视器;本事项不再阻断认证下载运行时发布。

二、只读来源证据

  • Registry: HKCU\Software\Google\Chrome\NativeMessagingHosts\com.video_text.transcriber 指向 C:\Users\Cai\AppData\Roaming\VideoTextHost\manifest.json
  • Native host manifest: 275 / 4CC85582F0BFD45114E081F7FAB8E8AC2B255A868F3412806943095D8D50F705pathhost-win.bat,唯一 allowed_originschrome-extension://ikdcnnpejkfnpakmmddnfemenokhnmoc/
  • host-win.bat: 38 / 18F1C7B231E853756CC1492EE4C0920FDE6B2A3196C76866AE94171A0B8A58EF,唯一动作是启动同目录 native-host.exe
  • Active native-host.exe: 1943105 / BEAE2752888EFB468A5C38FC0685F6FE74F42D8BC9CE1C54432DF227BA61818F
  • Active video-text-transcriber.exe: 15996098 / EA54C72B29406299A0FE12E2DDA9F5E63EBDF340330E6BB96F4664BC34FB6C08
  • Chrome 扩展 1.0.5_0/manifest.json: 1683 / B8C03B5CA688E5DEFAD632A13831465B2202116C4AF0CBE4B54945B913508873
  • 上游 annotated tag v1.0.5 的 tag object 为 6c386da41865726f7b731553b820aeff2a5fd2ef,解引用后的 full commit 为 537f424866fd3736f5845224208e3dcc67352b70
  • 该 commit 的源码归档: 2702422 / 411FEE86FC4A78CD864FB8966003FCAA60271C962A3E859786D8454C3A4DDC2A
  • 上游 native-host/host_win.py: 7094 / FB1D24F7BE5C299D73972B1B68EE9FCDD4F77D5F5DC7BEA6B2BDB97F2B10ECB8
  • 上游 native-host/host.cjs: 7814 / 8A88D3A95D52D2144CD58C7F0241E598793F4D3960AD1FE12FFFE98E6506F7DC

三、active binary 到源码的精确映射

  1. PyInstaller CArchive 只读目录显示 active native-host.exe 的业务入口为 host_win,不包含 host.cjs
  2. 从 active EXE 只读提取的 host_win marshal code object 为 11476 / 054750D6C70986748124895D6AC257DFAB01AFE16C96FF61F6BB1DF27A9EFC54
  3. 使用 Python 3.11 分别对 active code object 和固定 commit 源码编译结果递归指纹;忽略绝对文件名与行号,保留 bytecode、constants、names、variables、flags 和 exception table。
  4. 两者指纹均为 DB5F1CE9DE4695B9D72F1060D16BA70C0979C85A724D83BC9FC4B052EF54D753,结果 match=True

这一映射比版本号或文件时间更强:active EXE 实际执行的就是固定 commit 中的 host_win.py

四、不能忽略的矛盾

  • 现场截图显示 A JavaScript error occurred in the main process / Error: write EOF / WriteWrap.onWriteComplete / node:internal/stream_base_commons
  • Active Windows host 是 PyInstaller/Python host_win.py;其 send_message() 已把 header、payload 和 flush 包在一个 try/except Exception 内,不会产生 Node WriteWrap 堆栈。
  • Active transcriber 同样是 PyInstaller/Python mini_transcriber。已安装 node.exe 的产品元数据是标准 Node.js 20.11.1,安装树中没有 Electron/app.asar/active host.cjs
  • 上游 host.cjs 确有两次未等待回调的 process.stdout.write,但上游 Windows build spec 和 active EXE 都不执行它。

因此当前唯一阻断是:**弹窗时实际抛出 Node/Electron write EOF 的进程及可执行文件尚未定位,已验证的 active legacy host 不是该进程。**

五、需要的单一补充证据

下次弹窗时,由管理员或请求方只读记录弹窗所属 PID、父 PID 与可执行文件绝对路径(或提供包含 faulting application path 的 WER/Application Error 记录)。不需要、也不得收集 Cookie、token、签名 URL、命令行或媒体内容。

只有当该路径与可审计源码/构建物建立不可变映射后,才恢复最小补丁、50 轮门禁、构建和审核。

六、外部动作边界

  • installed root/HKCU/Chrome/extension 修改=0
  • 真实 Cookie/session/secret log 读取=0
  • 已安装二进制执行=0
  • 网络媒体/真实下载=0
  • F:\video/formal ana-data/转写=0
  • 补丁/构建/安装=0

七、管理员范围纠正

  • 回执:HANDOFF-INFOADMIN-INFODEV-VIDEO-TEXT-HOST-WRITE-EOF-SCOPE-CORRECTION-20260806-001
  • 接受:原 exact provenance 证据、源码指纹和零产品变更记录全部保留。
  • 撤回:“active Python host 是弹窗来源”的因果声明。
  • 终止:active host 的 patch/build/install/replace;不进入开发审核或安装授权链。
  • 保留:仅弹窗真实复发且上游提供最小进程身份证据时,进行一次有界只读核对。
  • 禁止:常驻 watcher、命令行捕获、Cookie/token/session/签名 URL、媒体和下载动作。
  • 关系:本事项不再是 authenticated-download release blocker。