Files
Viper_VSCode/packages
TermiNexus 065ab18231 fix(viper): --version 判定跳过 [ 开头的诊断行(ASan traceback 横幅)
用户实测:带 ASan 运行时的编译器 <exe> --version 会先在 stderr 打三行
[traceback] …(stack dump / DbgHelp note / ready 提示),之后才是
"Viper 1.0.5-dev.970 2026-09-28 Non-LTS"。

Node 侧 stdout/stderr 是两条流、到达顺序不定,按"整个缓冲前 5 字符"判定会
误报 PREFIX_ERR。改为 FirstMeaningfulLine:跳过空行与以 [ 开头的行继续往下读,
取第一行有效内容判前缀(同时对行首空白宽容)。VET 把两条流接进同一管道,
不存在该问题,故口径仍是"第一行内容以 Viper 开头"。

已用等价 Node 脚本对真实 exe 实测(脚本已删):
* TransPyV\output\TransPyV.exe:PE 头 5a4d/lfanew=120/4550/magic 20b/
  machine 8664→x86_64,命中 .PRVERSN(rawPtr=4574208/rawSize=512)→
  版本串 0.0.5-dev.479;--version 捕获跳过 3 行 [traceback] 后判定通过。
* notepad.exe → NO_PRVERSN、.js 文本 → NOT_EXE、不存在路径 → NOT_FOUND。

顺带把 ViperCheckResult 改为 import type(类型专用导入,运行时不再 require
./types,便于独立转译/校验)。
2026-10-02 19:48:21 +08:00
..