Skip to content

v2.28.0

Latest

Choose a tag to compare

@sunnylqm sunnylqm released this 23 Sep 03:16
b28b95b

English

Features

  • Redact the Hermes base equivalence-check detail before it is reported at version/create. Quoted string operands, function names and file paths coming from compiler stderr become stable tokens (str#<hash>/<length>, fn#<hash>, path#<hash>.<ext>); opcodes, registers, counts and literal kinds are kept, so a report is still triageable. The local console keeps printing the unredacted text. (#87)
  • Report hermesBaseFingerprint: a grouping key computed from the redacted detail with registers, ids and offsets removed, so the same defect groups together across apps and builds. Servers that do not know the field ignore it. (#87)

Test tooling

  • The fuzzer's dedup key is now the same fingerprint function the CLI reports, so a fuzz finding and the same defect seen in the field land in one group. (#87)

Validation and compatibility

  • Passed all seven CI jobs, including the HBC 96 and HBC 98 compiler regressions, Node.js 18.17 runtime checks and the publish dry run.
  • Update-package formats and the Node.js >=18.17.0 requirement are unchanged. The server protocol only gains one optional field.

Full changelog: v2.27.1...v2.28.0

中文

新功能

  • version/create 上报 Hermes base 等价校验的 detail 前先脱敏:引号内的字符串操作数、函数名、编译器 stderr 带出的文件路径替换为稳定标记(str#<hash>/<长度>、fn#<hash>、path#<hash>.<扩展名>),保留 opcode、寄存器、计数和字面量类型,仅凭上报内容仍可排查。本地控制台照常输出原文。 (#87)
  • 新增上报 hermesBaseFingerprint:在脱敏后的 detail 上去掉寄存器、id 与偏移后计算的分组键,同一缺陷在不同应用、不同构建之间归为一组。不认识该字段的服务端会忽略它。 (#87)

测试工具

  • fuzz 的去重键改用与上报相同的指纹函数,fuzz 发现的问题与线上同一缺陷落在同一组。 (#87)

验证与兼容性

  • 通过全部七项 CI 任务,包括 HBC 96 和 HBC 98 编译器回归、Node.js 18.17 运行时检查和发布预演。
  • 更新包格式与 Node.js >=18.17.0 要求不变;服务端协议只新增一个可选字段。

完整变更: v2.27.1...v2.28.0