6573b8b326
- src/versions.ts:ADAPTER/MAPPING/SANITIZER_VERSION 三常量(bump 语义 JSDoc 冻结: 映射表/清洗白名单实质变更才 bump 对应项,三者独立演进)+ PARSER_VERSION(saxes 硬编码) - src/adapter.ts:runWxrAdapter 串联 parseWxrStream→mapItem→sanitizeBodyHtml 为 AsyncGenerator<AdapterEvent>;term 旁路直通;bodyHtml 为空跳过清洗零 diff; changed 用 html!==input(Task 5 移交:diffs.length===0 ≠ 未变更);validateUniversalRow 加法式契约复检(不动 contracts);解析/清洗分段计时(parser.next() await 窗口归属解析) - src/report.ts:runWxrAdapterReport 聚合(首条版本块/按 sourceType Created-Skipped(无 变化)-Failed-Unsupported/清洗统计按 diff.type+changedRows/行级错误 rawLocation+message +excerpt/致命 WxrError 记 fatalError 不上抛——wxr:probe 消费通道);renderReportHtml 所有动态文本经 escapeHtml(<>&"',Task 5 移交的标记注入面防线) - test/adapter.test.ts:19 用例(mini 全链/changed 语义/报告结构/恶意样本转义/ unsupported-error 汇聚/wppop 失败贯通/JSON 可序列化/致命解析错误交付确定性) Co-Authored-By: Claude Code <noreply@anthropic.com>