数据隔离修复
MATRIX 缓存串台(严重)
get_competitiveness_matrix 的缓存 cmd/partner/period/reporter 全填 0,不同产品在同(市场,年份,出口国)下命中同一份矩阵——查咖啡机拿到蓝牙耳机的出口大国数据。修复:partner_code 存 HS 编码,与 COMPARE/TOPEXP 对齐;HS 为空跳过缓存(宁可 cache miss,不能 cache wrong hit)。
限流并发锁
_rate_hits 全局 dict 的读-改-写非原子,加 threading.Lock。
新增能力
Blast Radius 测试(8 项)
A→B 串台 / A→B→A 回环 / COMPARE/TOPEXP/LLM 缓存隔离 / 缓存行物理证据。测试有效性已验证:还原无修复版 3 项失败、恢复修复版 8 项全过。
报告级快照 _snapshot
/api/analyze 和 /api/trade/query 返回加 _snapshot 字段,打包 calc_version / prompt_version / model / sources——以后能回答「这份报告基于哪批数据、哪个公式、哪个提示词、哪个模型」。
unit 字段绑定
pricing 返回 "unit": "USD/kg";trade_evidence 加 "unit": {"trend":"亿美元","weight_trend":"千吨"}。单位与数值绑定,防 USD/kg 与 USD 混用。
测试:147 项 pytest 全部通过(原 139 + 新增 8 项 Blast Radius)。