Commit Graph

528 Commits

Author SHA1 Message Date
2569718930@qq.com 53225118c1 修复 Telegram HTML 解析错误:禁止 AI 使用 br 标签,添加 CMA 数据诊断日志 2026-05-23 10:06:52 +08:00
2569718930@qq.com 160dd65a54 接入中国气象局 weather.com.cn 预报数据作为天气日报主数据源
- 新增 CMA 7日预报页 HTML 爬虫,提取白天天气描述和最高/最低温
- 7 城优先使用 CMA 数据,Open-Meteo 仅做 fallback
- 数据来源在 prompt 中标注 weather.com.cn
2026-05-23 09:59:37 +08:00
2569718930@qq.com cfda3a796c 在代码层将 WMO weather_code 转译中文,杜绝 AI 天气误判 2026-05-23 09:53:12 +08:00
2569718930@qq.com a80f34137c 修复 AI 空响应:移除 prompt 中的 HTML 标签示例,加入 finish_reason 诊断日志 2026-05-23 09:50:08 +08:00
2569718930@qq.com dd65adb9d8 强制天气日报逐城格式:天气现象 + 最高温 + 体感建议,禁止结尾客套 2026-05-23 09:45:39 +08:00
2569718930@qq.com faf88387a1 禁止天气日报结尾废话:总结段落、免责声明等 AI 套话 2026-05-23 09:40:49 +08:00
2569718930@qq.com 73a51d73e8 优化天气日报 AI prompt:移除实时观测温度,聚焦预报最高温 + 天气现象代码
- 去掉当前温度和 METAR 报文,仅保留 forecast_high 和 weather_code
- 传入当前日期,防止 AI 猜测日期错误
- 禁止 AI 编造数据缺失声明
- 精简输出至 400 字以内
2026-05-23 09:38:08 +08:00
2569718930@qq.com f49a5bfbb2 新增中国城市天气日报:AI 生成每日天气摘要并推送至 Telegram 论坛群 General 话题
- 新建 src/utils/daily_weather_report.py,覆盖 7 个中国城市(北京、上海、广州、成都、重庆、武汉、青岛)
- 复用 Open-Meteo + METAR 数据源,MiMo AI 生成自然语言日报
- 注册为 runtime_coordinator 独立后台循环,默认每日 8:00 Asia/Shanghai 发送
- 环境变量:DAILY_WEATHER_REPORT_ENABLED / _HOUR / _MINUTE / _TIMEZONE

Constraint: message_thread_id=0 发送到论坛群 General 子话题
Tested: ruff check pass, Python 语法验证通过
2026-05-23 09:24:18 +08:00
2569718930@qq.com f8f0d69e5c 修复 AEROWEB Cookie 提取:httpx session.cookies 替代 resp.cookies.jar
httpx 的 cookies API 与 requests 库不同,resp.cookies.jar 在 httpx 中不存在,
导致 PHPSESSID 提取失败、登录报错。改用 self.session.cookies.get() 直接读取。
2026-05-23 01:04:01 +08:00
2569718930@qq.com 891b4d2422 新增 AEROWEB (Météo-France) 和 NCM (沙特) 实时气象数据源
AEROWEB: 接入 aviation.meteo.fr,LFPB METAR 2 分钟内可获取,
实测温度替代 AROME 模式预报作为 Paris 电报推送数据源。
登录流程: PHPSESSID + MD5 密码 → ajax/login_valid.php,
Session 20 分钟自动续期,XML 解析提取 tempe/td/dd/ff/qnh。

NCM: 沙特气象局 Meteomatics API 代码框架,待凭证激活。
Jeddah settlement_source 从废弃的 wunderground 迁移至 ncm。

同时清理: 日志文件 trading_system.log → polyweather.log,
删除 2026-02-07 的 1.2MB 废弃交易引擎日志。

Constraint: AEROWEB 需 AEROWEB_USERNAME/AEROWEB_PASSWORD 环境变量
Constraint: NCM 需 NCM_API_USERNAME/NCM_API_PASSWORD 环境变量
Confidence: high
Tested: AEROWEB 登录→取数→解析端到端验证通过
2026-05-22 21:50:37 +08:00
2569718930@qq.com 41d740d611 IMS 数据源切换至 10 分钟频率 hourly_observations_full 端点
原 hourly_observations 端点仅整点更新 TT 字段。
hourly_observations_full 提供每 10 分钟 TD (Temperature Dry) 字段,
精度 0.01°C,与 TT 完全一致(r=1.000)。
WS 风速单位 m/s → 内部转换为 km/h 和 knots。
日最高/最低从当天全部 10 分钟槽位扫描计算。

Constraint: TD 字段命名与露点温度易混淆,已在 docstring 注明
Confidence: high
Tested: TD vs TT 在 23 个整点时刻完全吻合
2026-05-22 19:31:09 +08:00
2569718930@qq.com 60ac4bae31 Tel Aviv 机场观测切换至 IMS Lod Airport 实时数据源
新增 IMS (Israel Meteorological Service) 数据抓取模块,以 Lod Airport
(station 225) 官方观测替代 NOAA METAR LLBG 作为 airport_primary。
IMS 数据接入 _airport_primary_from_raw 优先级链,高于 plain METAR
但保留 METAR 集群回退路径。

Constraint: IMS API (ims.gov.il/en/hourly_observations) 仅每小时更新
Confidence: high
Scope-risk: 仅影响 Tel Aviv 城市,其余 51 城数据流不变
Tested: 端到端验证 IMS 取数 → airport_primary → provider 路由链
2026-05-22 19:16:34 +08:00
2569718930@qq.com 79b33599ac 修正韩国 AMOS 跑道显示条件:有 runway_temps 即可展示
Rejected: 韩国 AMOS 无 TDZ/MID/END 点温,display 层自动退化为跑道温度格式
2026-05-22 06:06:20 +08:00
2569718930@qq.com b8a3c223f5 首尔釜山推送模板启用跑道观测格式,与中国城市一致
Directive: is_amsc 扩展为识别 amos 和 amsc_awos 两种源
2026-05-22 05:59:32 +08:00
2569718930@qq.com 105713c799 @
支付提交增加 Tx 预校验:提交前链上验签收款地址与金额,防止转错地址;409 错误展示友好中文提示并自动对账恢复

- 新增 validate_intent_tx 方法及 POST /api/payments/intents/{id}/validate 端点,
  在提交前查链上 receipt 对比收款地址和金额,mismatch 直接拦截
- 新增 handleSubmit409 辅助函数,根据后端错误详情分流处理:
  已支付→自动 reconcile,已过期→提示重下单,其他→透传具体原因
- submit/validate 路由透传后端 detail 字段,生产环境也能看到具体错误
- 手动转账面板粘贴 tx hash 后自动触发验证,绿色/红色提示,
  验证不通过时禁用提交按钮

Tested: tsc --noEmit + ruff check . 均通过
@
2026-05-22 04:44:14 +08:00
2569718930@qq.com dc164205f6 跑道观测推送追加 AMSC 实时 METAR 报文
Constraint: 仅中国城市 is_amsc 时显示,不影响其他城市
2026-05-22 04:12:53 +08:00
2569718930@qq.com 5176dff82d 中国城市电报推送接入 AMSC AWOS 跑道报文温度
Constraint: 仅当 amos 数据含 raw_metar 时才追加 AMSC 块,不影响非中国城市
2026-05-22 03:15:57 +08:00
2569718930@qq.com fe6f8b43b0 DEB 接入小时级误差计算,多模型权重基于每日+小时 MAE 融合
新增 compute_hourly_model_errors 聚合逐模型小时 MAE/RMSE

新增 _blend_mae 按样本数加权混合每日/小时误差(24样本=70%小时权重)

calculate_dynamic_weights 从 daily_record 读取 hourly_error 参与权重计算

update_daily_record 接受并持久化 hourly_error 字段

Tested: ruff check, pytest 186/186
2026-05-21 21:03:49 +08:00
2569718930@qq.com 24f2a82893 feat: fetch and cache hourly multi-model forecast data in SQLite for all cities 2026-05-21 19:50:54 +08:00
2569718930@qq.com 9b9f548de9 从系统彻底移除 Lagos 城市
该城市已不再需要,从城市注册表、时区映射、缓存巡检脚本、测试
中全部清理。52 城市 → 51 城市。

Tested: pytest test_country_networks.py (19/19), ruff check
2026-05-21 14:30:18 +08:00
2569718930@qq.com d04d6c9efb 移除季付和年付计划,仅保留月付 2026-05-20 20:44:13 +08:00
2569718930@qq.com 75dd7464cc 新增积分转账功能:支持管理员手动扣除和划转用户积分 2026-05-20 20:39:51 +08:00
2569718930@qq.com 8ba9567f64 移除深圳宝安机场跑道数据采集,深圳市场结算使用流浮山 HKO 数据 2026-05-20 19:38:07 +08:00
2569718930@qq.com 5fa3bb1b59 非跑道城市推送恢复普通机场格式 2026-05-20 18:41:59 +08:00
2569718930@qq.com 10a0788398 修复 AMSC 风向取第一条跑道可能为空的问题 2026-05-20 18:35:35 +08:00
2569718930@qq.com 9b2ac614cb 重构跑道观测系统:全跑道展示、结算跑道标注、热力模型、风场分析 2026-05-20 18:16:27 +08:00
2569718930@qq.com 66512d2623 完善后台管理功能:订阅管理增强、训练精度面板、支付记录查询 2026-05-20 16:50:19 +08:00
2569718930@qq.com 82d7c0ea6d @
修复 Telegram 内联按钮点击无响应

infinity_polling allowed_updates 未包含 callback_query,导致确认绑定按钮无响应
@
2026-05-20 11:50:32 +08:00
2569718930@qq.com 60093d3162 @
统一月付价格为 10 USDC 并清理所有 trial 文案

- 默认月付 fallback 从 5U 改为 10U(contract_checkout.py、AccountCenter.tsx)
- 移除 LoginClient / HeaderBar / AccountCenter / UnlockProOverlay 中的试用推广文案
- VPS 同步: PLAN_CATALOG_JSON、GROUP_MEMBER_PRICE_USDC 更新为 10
- SIGNUP_TRIAL_ENABLED=false 保持关闭
@
2026-05-20 11:12:29 +08:00
2569718930@qq.com 9ff0685756 Unify subscription pricing to 10 USDC, update documentation, and improve manual payment address copy experience 2026-05-20 09:20:07 +08:00
2569718930@qq.com 72e93f8e93 Optimize multi-model caching and frontend revalidation 2026-05-20 08:58:16 +08:00
2569718930@qq.com d50ced1b8f 将群 -1003965137823 纳入发言积分体系:新增积分群白名单、防误计分 2026-05-19 18:55:47 +08:00
2569718930@qq.com f4949212d8 修复 ruff lint:移除未使用的变量 2026-05-19 18:34:37 +08:00
2569718930@qq.com 82d60cf05f feat: implement Telegram-to-Web account binding flow and add supporting database and UI components 2026-05-19 18:26:45 +08:00
2569718930@qq.com a5c508cce8 feat: implement SQLite database management and Supabase integration for user authentication and points synchronization 2026-05-19 18:07:39 +08:00
2569718930@qq.com ac4f70e33d feat: implement basic command handlers, orchestrator, database manager, and account binding UI 2026-05-19 17:47:51 +08:00
2569718930@qq.com a6e7d6682d 移除俄罗斯 pogodaiklimat 数据源:周边观测站不需要 2026-05-19 16:57:00 +08:00
2569718930@qq.com 3ca5b71299 移除 NMC(中国国家气象中心)数据源:无实际使用价值 2026-05-19 16:20:48 +08:00
2569718930@qq.com 6b741cc1ec 修复 Russia 数据源 f-string 嵌套引号语法错误 2026-05-19 15:44:52 +08:00
2569718930@qq.com 3b8098051e 将商业核心数据源 URL 从源码迁移到环境变量,VPS .env 已补全 2026-05-19 15:42:03 +08:00
2569718930@qq.com 7e0d955d22 修复语法错误:多余括号 2026-05-19 15:19:32 +08:00
2569718930@qq.com 4c6a93498c 移除源码中硬编码的 API token:NOAA MesoWest 密钥和 CWA 占位符 2026-05-19 15:18:49 +08:00
2569718930@qq.com b93a75516d 移除未使用的 Groq 和 Meteoblue 服务代码及配置 2026-05-19 00:05:07 +08:00
2569718930@qq.com 0e4e7aebb2 项目体检修复:删除破损的 LGBM 导入、8个死测试、2个死脚本、移除 pytz/lightgbm 依赖 2026-05-18 22:43:34 +08:00
2569718930@qq.com 0e0aad3171 删除 LGBM 全部代码和模型文件,EMOS 简化为纯 legacy 高斯分桶模式 2026-05-18 22:05:55 +08:00
2569718930@qq.com 1c4287380e 修复 KNMI 维度名称为字符串类型的兼容性问题 2026-05-18 18:30:12 +08:00
2569718930@qq.com 8c640b8616 适配 KNMI netCDF 新数据布局:(station,time) 替代 (time,station) 2026-05-18 18:28:18 +08:00
2569718930@qq.com 8a5e8957c5 适配 KNMI station ID 格式变更:3位码→5位WMO码,修复前导零丢失 2026-05-18 18:23:57 +08:00
2569718930@qq.com 06ac6bab32 修复 KNMI S3 下载被 Auth header 污染导致 netCDF 解析失败 2026-05-18 18:19:05 +08:00
2569718930@qq.com abdce3cd3b 适配 NOAA MADIS HFMETAR netCDF 新格式:stationId 替代 icaoId,开尔文转摄氏度,气压 Pa 转 hPa 2026-05-18 17:48:56 +08:00