2026-04-29 变更记录


摘要

1. HKO 预测鲁棒性增强: 新增记忆下限(Memory Floor)机制——当 HKO API 暂时失效时,从上次预测结果中继承 lower_bound,防止模型"失忆"导致预测回退。注意:仅限于同日内存记忆,隔日自动清零(prev_date == today 检查)。

2. 前端盘口深度优化: 盘口深度面板刷新改为保留 DOM 高度避免闪烁;CLOB API 调用加入 10 秒超时控制,防止慢请求阻塞 UI。

3. 前端渲染策略改进: 持仓获取从前端主渲染链路(Promise.all)移至"发射后不管"模式,不再阻塞卡片初始渲染,首屏速度提升。

4. 文档更新: POLYMARKET.md 更新最后维护日期为 2026-04-28,新增 docs/daily/ 变更日志目录引用。LLM 配置备注更新,标注 API 别名信息。

5. 昨日日志修订: 修正 2026-04-28.md 摘要格式,补充数据刷新链路表和验证方法;转义 pipe 符号避免 Markdown 表格渲染异常。

6. [09:00] Memory Floor 隔日 Bug 修复: 历史 lower_bound=29.4°C 跨日污染导致概率分布 97.8% 错误聚集在 29°C。修复:memory floor 增加同日检查(prev_date == today),隔日自动丢弃。

7. [09:12] 轨迹推算 cap: progress_prediction 在早晨小时放大噪声(1.7°C / 0.15 = 11.3°C 总升温 → 33°C 预测)。修复:多源上限裁剪 min(forecast_max+3, inland_max+1, current_max+5)

8. [09:12] 相似日空匹配处理: close_matches 为空时不再 fallback 到 best_match,避免无关日期污染预测。

9. [09:19] 快速升温速率上限: 添加 MAX_REALISTIC_RATE=4.0°C/h(物理极限)和 MIN_WINDOW_HOURS=0.1h(6 分钟最小窗口),防止传感器噪声放大到 7.2°C/h。

10. [09:19] 快速升温预测 cap: 与轨迹推算相同的多源上限裁剪。

11. [09:31] 双进程打架: hko_live_predict.py 不再调用 hko_predict.py,仅 hko_data_fetcher.py(cron)为唯一预测写入者。

12. [09:36] cron 频率提升: hko_data_fetcher.py 从每 5 分钟改为 8:00-15:59 每分钟运行。

13. [09:50] 关键数据缺失 guard: hko_temp=None 时跳过预测(不覆盖文件),防止 HKO API 瞬时故障导致 2°C 骤降。

14. [09:52] 预测平滑: 两次连续预测间 settlement 变化超过 ±1°C 时钳制,防止单点数据故障造成剧烈跳变。

15. [09:57] 快速升温权重降低 + 滞回: override 权重从 60-90% 降至 30-50%,加滞回机制防止 ON/OFF 来回跳。

16. [10:10] 快速升温前置条件: 增加日照指数 ≥0.5 + 基础温度 ≥25°C + 10am 前禁能 + 阈值提升到 3.6°C/h,今天的多云天彻底抑制误触发。

17. [10:33] P0-1: 打破 forecast_max 信号垄断: 9 个信号(weather_text, rain_cooling, warning, humidity_potential, sunshine, wind, cloud_cover, forecast_radiation, rain_forecast, cape, forecast_humidity, warming_accel)的锚点从 forecast_max 改为 _clim_base(过去7天平均);所有负向信号增加 lower_bound 钳制。消除 ~35% 的虚假预报一致性。

18. [10:33] P0-2: bias_correction 默认归零: 原默认 +0.7°C 导致系统性高估,改为 0°C,仅在 ≥3 天历史误差数据可用时激活 ±1.5°C 范围内的自适应修正。

19. [10:33] P0-3: 快速升温从 override 改常规信号: 移除 skip_ensemble=True,快速升温不再绕过全部规则信号。改为 8-15% 权重的常规信号,通过加权集成与其他信号融合。消除二进制 ON/OFF 跳变。


变更文件

POLYMARKET.md | 6 +++++-

config/llm_config.json | 6 +++---

docs/daily/2026-04-28.md | 26 ++++++++++++++++-------

scripts/hko_predict.py | 14 +++++++++++++ (+ ~80 lines 后续修复)

scripts/hko_live_predict.py | 6 +++++- (禁用 run_prediction)

src/web/templates/mm_weather.html | 43 ++++++++++++++++++++-------------------


详细修复


Memory Floor 隔日 Bug (09:00)

症状: lower_bound=29.4°C 从昨天遗留,导致 predicted_max 被钳制到 29.4°C,概率分布 97.8% 集中在 29°C——即使实际观测仅 26.8°C。

根因: hko_predict.py memory floor 无条件 max(current, prev),不检查日期。

修复: 增加 prev_date == today 检查;仅同日内使用记忆下限,隔日丢弃。


双进程写入冲突 (09:31)

症状: 每 5 分钟预测在 26-31°C 间剧烈跳跃。

根因: hko_data_fetcher.py(cron 每 5 分钟)和 hko_live_predict.py(launchd 每 60 秒)同时调用 hko_predict.py,互相覆盖文件。

修复: 禁用 hko_live_predict.pyrun_prediction() 调用,仅 cron 为唯一写入者。


快速升温信号失控 (09:19-09:57)

症状: rapid_warming 权重 90% 压倒所有其他信号,ON/OFF 来回跳导致 3-4°C 震荡。

根因: (1) 速率检测无上限(7.2°C/h 物理不可能)(2) 权重 60-90% 过高 (3) 无滞回机制。

修复: (1) 速率 cap 4.0°C/h + 最小窗口 6min (2) 权重降为 30-50% (3) 前次激活且速率≥1.0°C/h 时保持 25% 最低权重。


数据缺失鲁棒性 (09:50)

症状: hko_temp=None 时预测从 settle=29 骤降到 settle=27,1 分钟后恢复。

修复: hko_temp is None → 直接 return(不写文件);连续预测 settlement 变化 > 1°C → 钳制到 ±1°C。