2569718930@qq.com
|
20c8395c0b
|
全局配置更新:OAuth 回调修复、支付安全加固、站点 URL 工具
- 新增 NEXT_PUBLIC_SITE_URL 支持及 site-url.ts 工具模块
- 修复 OAuth 回调域名:import.meta.env 统一读取站点 URL
- 支付 API 路由新增收款地址校验
- 后端支付服务更新
- middleware 清理
- 新增 paymentSecurity 测试
|
2026-05-24 18:33:47 +08:00 |
|
2569718930@qq.com
|
2be0b71018
|
修复 Telegram 绑定按钮被浏览器 popup 拦截:先同步打开窗口再设置跳转
|
2026-05-24 18:12:07 +08:00 |
|
2569718930@qq.com
|
5db20061eb
|
移除 command_guard 中的群成员检查,更新对应测试
|
2026-05-24 17:59:32 +08:00 |
|
2569718930@qq.com
|
2415167132
|
修复 OAuth 回调域名:优先使用 NEXT_PUBLIC_SITE_URL 并添加根路径 code 兜底
|
2026-05-24 17:55:32 +08:00 |
|
2569718930@qq.com
|
5aa2a9e384
|
更换 Telegram Bot 为新账号 polyyuanbot,更新群链接和推送配置
- Bot token/用户名全局替换:WeatherQuant_bot → polyyuanbot
- 群 ID 更新为新群 polyweather售后群(-1003927451869)
- 群邀请链接更新为 https://t.me/+Io5H9oVHFmVjOTQ5
- 修复机场推送:Paris/Taipei/Denver/Tel Aviv 支持 airport_primary/current 回退
- 修复跑道数据展示:has_runway 直接检测数据而非依赖 source 字段
- 创建新群 30 城 Forum Topics(data/city_thread_ids.json)
- 配置 AMSC AWOS 数据源 URL
Constraint: 旧 Telegram 账号已注销,Bot 完全重建
Tested: VPS 部署验证,所有城市推送正常,Topic 路由生效
|
2026-05-24 16:03:29 +08:00 |
|
2569718930@qq.com
|
89394e12ef
|
拆分 AccountCenter 超大组件:提取类型、常量、钱包、支付等独立模块
- AccountCenter.tsx 从 3565 行缩减约 1000 行
- 新增 8 个模块:types / constants / formatters / account-copy / wallet / payment-utils / usePaymentState / AccountInfoRow
- 同步更新 paymentShell 测试
Confidence: high
|
2026-05-23 23:30:48 +08:00 |
|
2569718930@qq.com
|
b2dd758977
|
扩展模型区间端点至首尔和釜山,并做前端小幅清理
- GET /api/cities/model-range 新增 seoul/busan,总计 9 城
- 移除未使用的 react-leaflet 依赖
- 提取 chart Tooltip contentStyle 为共享常量 CHART_TOOLTIP_STYLE,消除 6 个文件中 15 处重复内联样式
Tested: npx tsc --noEmit pass
Confidence: high
|
2026-05-23 22:59:50 +08:00 |
|
2569718930@qq.com
|
0012eddc81
|
修复电报推送偶发高温:目标机场站缺失时不再冒用 mgm_nearby[0]
Constraint: fetch_mgm_nearby_stations 并发抓取,17128/17058 偶发超时导致回退到市区站(热岛 +2-3°C)
Tested: ruff OK, pytest 184 passed
|
2026-05-23 22:04:09 +08:00 |
|
2569718930@qq.com
|
e79bc2d291
|
清理废弃代码并同步全部文档:删除钱包异动监控模块,移除已废弃功能的文档引用
- 删除 polymarket_wallet_activity_watcher.py(914行)及 runtime_coordinator 调度
- 移除 LGBM / Polymarket 价格层 / Groq / prewarm 等 v1.7.0 已废弃功能的文档引用
- 清理 6 个死文档链接,更新文档索引和版本日期
- 移除 POLYMARKET_WALLET_ACTIVITY_* / PREWARM_* 等废弃环境变量
Directive: 文档与代码同步清理,无功能变更
Tested: pytest tests/test_bot_runtime_coordinator.py pass
Confidence: high
|
2026-05-23 21:42:46 +08:00 |
|
2569718930@qq.com
|
864b1fa1f9
|
修复前端长时间挂机内存累积:城市缓存 LRU 逐出 + AI 预测缓存上限
Constraint: cityDetailsByName/citySummariesByName/cityDetailMetaByName 只增不减,52 城全量可达 ~5MB+
Constraint: aiCityForecastStateCache 无上限,随城市×日期组合膨胀
Tested: tsc --noEmit OK, ruff OK, pytest 184 passed
|
2026-05-23 21:18:32 +08:00 |
|
2569718930@qq.com
|
3bad968844
|
修复地图瓦片长时间挂机后加载失败:Observer 去重 + tileerror 重试
Constraint: MutationObserver subtree=true 导致任意 class 变化触发全量瓦片重载,长期运行触发 CDN 限流
Tested: tsc --noEmit OK, ruff OK, pytest 184 passed
|
2026-05-23 21:02:54 +08:00 |
|
2569718930@qq.com
|
4c97314805
|
修复测试:high_freq_airport_push 测试适配全城市覆盖
Tested: pytest 184 passed
Directive: 测试断言从单城市精确匹配改为验证 force_refresh_observations_only 参数 + qingdao 在调用列表中
|
2026-05-23 20:44:47 +08:00 |
|
2569718930@qq.com
|
219fda39d9
|
发布 v1.7.0:市场监控面板、天气日报、后台重写、新数据源、LGBM 移除
Constraint: CHANGELOG 覆盖 v1.6.0 以来 ~340 个提交
Confidence: high
Tested: git diff --stat 11 files, sync_version.py 通过
v1.7.0
|
2026-05-23 20:31:34 +08:00 |
|
2569718930@qq.com
|
6cbc56ac5a
|
修复业务测试:AI 预测最高温需等待 AI 就绪,不再回退行数据
|
2026-05-23 12:45:19 +08:00 |
|
2569718930@qq.com
|
f5fc3ca0cd
|
加速 AI 报文解读:精简 snapshot 负载,默认 max_tokens 1200→800
|
2026-05-23 12:40:46 +08:00 |
|
2569718930@qq.com
|
5817d4157d
|
AI 未就绪时不再用集群中位数冒充 AI 预测最高温
|
2026-05-23 12:34:26 +08:00 |
|
2569718930@qq.com
|
348dfe132a
|
移除 Polymarket 价格层 UI:删除 MarketDecisionLine 组件及相关数据流
|
2026-05-23 12:24:49 +08:00 |
|
2569718930@qq.com
|
eeb5f563db
|
移除 Polymarket 价格拉取:删除 _market_layer、market_scan 返回空、清理健康检查和配置验证
|
2026-05-23 12:04:40 +08:00 |
|
2569718930@qq.com
|
442a9c8560
|
修复支付代币匹配问题:direct 模式遍历所有支持代币查 Transfer 事件,未知代币不再伪装 USDC
- _extract_direct_transfer_event: 遍历 supported_tokens 所有合约而不仅是 intent.token_address
- _default_token_meta: 未知代币显示地址缩写而非 USDC
- _token_symbol_for: 未知代币同样不伪装 USDC
|
2026-05-23 11:41:01 +08:00 |
|
2569718930@qq.com
|
f661350990
|
新增 GET /api/cities/model-range 端点:返回 7 城 DEB 预测和模型区间
|
2026-05-23 10:42:53 +08:00 |
|
2569718930@qq.com
|
2aa44dd5c7
|
天气日报末尾添加粗略预测免责提醒(代码拼接,不依赖 AI)
|
2026-05-23 10:33:46 +08:00 |
|
2569718930@qq.com
|
678b94000c
|
简化 AI prompt 为纯文本格式,降低 MiMo 空响应概率
|
2026-05-23 10:27:07 +08:00 |
|
2569718930@qq.com
|
0a7aaf19a6
|
修复 CMA 温度提取:_extract_first 添加 re.DOTALL 标志支持多行 HTML 内容
|
2026-05-23 10:20:59 +08:00 |
|
2569718930@qq.com
|
c18ff504e4
|
修复 CMA 温度提取:改用纯文本数字匹配替代 HTML 标签猜测,天气优先 CMA、温度回退 OM
|
2026-05-23 10:13:16 +08:00 |
|
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
|
b1b1f76bcb
|
修复测试:Paris settlement_source 已切换为 aeroweb
|
2026-05-22 21:59:42 +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
|
5e0dc3ec53
|
移动端城市列表移除可交易城市过滤,始终显示全部监测城市
Constraint: MobileCityPicker 数据源仅使用 store.cities
Scope-risk: 仅影响 cityListRows 构建逻辑
|
2026-05-22 04:24:01 +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
|
dbc8923b76
|
修复 Polymarket 价格层在 MacBook 上被压缩成一列的问题
grid 改为 flex-wrap 自适应,描述列设 min-width:180px 防止文字被挤压
|
2026-05-21 18:40:32 +08:00 |
|
2569718930@qq.com
|
fb81e01aae
|
将 scratch/ 加入 .gitignore,避免临时脚本误触发 pre-push lint
Directive: scratch/ 目录用于本地调试,不应提交也不应参与 CI 检查
|
2026-05-21 18:04:55 +08:00 |
|
2569718930@qq.com
|
a39a74de2f
|
@
修复决策卡片 grid minmax(0,1fr) 导致的内容溢出
MacBook 上 minmax(0,1fr) 会使列宽坍缩为 0,内容被截断。
改为 1fr + width:100% 确保决策带和市场决策区正常展示。
@
|
2026-05-21 17:58:33 +08:00 |
|
2569718930@qq.com
|
4fc4b538a5
|
@
调低地图详情面板隐藏断点 1680→1400px,MacBook 14" 可见
原 1680px 导致 MacBook Pro 14" (1512px) 地图模式详情面板被隐藏。
同时 max-height 从 900→860 避免误触发。
@
|
2026-05-21 17:31:43 +08:00 |
|
2569718930@qq.com
|
ecec3fc087
|
@
修复 MacBook Safari 布局崩溃:100vw/dvh 和 -webkit-backdrop-filter
Safari 将滚动条宽度计入 100vw 导致内容被裁切,100vh 被地址栏撑破。
- root 容器: 100vw → width:100% + max-width:100vw
- 详情面板/扫描终端: 100vh → 叠加 100dvh 兼容 Safari 视口
- 详情面板: 添加 -webkit-backdrop-filter 前缀
@
|
2026-05-21 17:27:45 +08:00 |
|