fix(core): 代码审查修复 AI 并发/隐私/解析等多处缺陷
- AIRuntime 加 actor 内串行推理闸门,封死 LLM/VL in-flight 并发解码窄口(jetsam OOM 根因) - prepare 的 .loading 改轮询等待消除假就绪竞态;就绪判据 isReady→isComplete 防半下载崩溃 - applyReanalyzed 重新解读时 unlink 旧 Asset,消除 Vault 孤儿图片(§6 隐私承诺) - parseReportJSON 改 extractBalancedJSON + 裸数组兜底,防 VL 多项输出被静默截断丢指标 - 临时文件改 completeUnlessOpen 修锁屏写失败;parseDate 支持多格式防归档年份错位 - TimelineEntry/DayDetailSheet 修「偏高」文案与血压箭头方向(偏低指标不再显示相反结论) - FileVault.wipe 容错;HealthExportSheet 异常关键词排除否定句;modelTag 取实际枚举值 - 删除 B1-B5 + ArchiveFlow 死代码(含违反 §6 的 AES 加密文案) - 补 3 个回归测试,编译 + 测试全部通过
This commit is contained in:
@@ -458,9 +458,14 @@ struct MarkdownView: View {
|
||||
return trimmed.replacingOccurrences(of: "⚠️", with: "")
|
||||
.trimmingCharacters(in: .whitespaces)
|
||||
}
|
||||
// 一些常见 LLM 表达,也当异常项高亮
|
||||
// 关键词兜底高亮,但排除否定语境(「无异常」「未见偏高」「没有偏低」等),
|
||||
// 否则正常结论会被误标红。判断:信号词前最近 4 字内出现否定词即视为否定。
|
||||
let negations = ["无", "未", "没"]
|
||||
let abnormalSignals = ["偏高", "偏低", "异常", "过高", "过低"]
|
||||
for sig in abnormalSignals where trimmed.contains(sig) {
|
||||
for sig in abnormalSignals {
|
||||
guard let r = trimmed.range(of: sig) else { continue }
|
||||
let window = String(trimmed[..<r.lowerBound].suffix(4))
|
||||
if negations.contains(where: { window.contains($0) }) { continue }
|
||||
return trimmed
|
||||
}
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user