2569718930@qq.com
|
58e6557c66
|
feat: implement mobile scan terminal dashboard and city picker with backend forum automation scripts
|
2026-05-17 17:05:47 +08:00 |
|
2569718930@qq.com
|
04e0369255
|
feat: implement Telegram push notification utility with state management and market filtering
|
2026-05-17 15:06:27 +08:00 |
|
2569718930@qq.com
|
341c6d0a93
|
feat: implement Telegram push utility and add new dashboard components for scan terminal and paywall management
|
2026-05-17 13:59:40 +08:00 |
|
2569718930@qq.com
|
07bb8e1d15
|
feat: implement Telegram push utility and corresponding hashtag validation tests
|
2026-05-17 13:37:51 +08:00 |
|
2569718930@qq.com
|
2e02133696
|
修复图表时间轴不全与城市决策卡模型补齐卡顿
- 后端 Open-Meteo 请求加 past_days=1,小时数据从 00:00 开始
- 前端图表层填充完整 00:00-23:00 时间轴,缺失时段置空
- 城市深度分析门槛从 >1 降为 >=1,单模型城市不再被拦
- hydration 队列加最大重试 3 次,防止永久卡在等待模型补齐
- 移除右侧面板历史对账按钮
|
2026-05-16 20:14:05 +08:00 |
|
2569718930@qq.com
|
b27bedbca3
|
修复网站 API 阻塞与积分同步问题
- uvicorn 改用 import string 格式启动 4 workers,防止数据采集阻塞 event loop
- prewarm 去掉 --force-refresh,仅依赖缓存预热避免每 5 分钟全量采集
- 积分变动时同步写入 Supabase user_metadata,避免前端回退路径失败时显示 0 积分
- /api/auth/me 积分解析增加 Supabase email 回退路径
|
2026-05-16 13:15:30 +08:00 |
|
2569718930@qq.com
|
04d0ae1125
|
卡片结构重组为三层:当前/日高/DEB显式展示→模型区间→市场叙述
叙述函数改为多行解释,增加具体delta和状态描述
|
2026-05-15 23:59:57 +08:00 |
|
2569718930@qq.com
|
6f14ef20db
|
重构跑道观测卡片为市场结构卡:核心指标压缩+多模型结构+市场叙述
|
2026-05-15 23:54:19 +08:00 |
|
2569718930@qq.com
|
9d3aa7fb53
|
修复凌晨伪冲顶误判:夜间直接停推,早晨需日高已形成才激活Peak Watch
|
2026-05-15 23:42:46 +08:00 |
|
2569718930@qq.com
|
5d514a4950
|
推送消息增加市场状态标签:🚀超预期 🔥升温中 ⚠️冲顶观察 ❄️降温中
取消DEB兑现即停推规则,超预期行情为重点信号
|
2026-05-15 23:36:03 +08:00 |
|
2569718930@qq.com
|
87b24aa071
|
重写跑道观测推送规则为热度状态机:盯今日最高而非DEB,夜间停推
|
2026-05-15 23:30:41 +08:00 |
|
2569718930@qq.com
|
e7a13c9be7
|
跑道观测推送增加规则:今日实测最高已达DEB预报则跳过,避免夜间降温噪音
|
2026-05-15 23:26:33 +08:00 |
|
2569718930@qq.com
|
6746650bb1
|
跑道观测推送及前端刷新间隔改回60秒,匹配AMSC每分钟更新频率
|
2026-05-15 17:58:13 +08:00 |
|
2569718930@qq.com
|
861b394e49
|
跑道观测推送时间修正为AMSC/AMOS观测时间,显示HH:MM格式
|
2026-05-15 17:49:37 +08:00 |
|
2569718930@qq.com
|
cbf6a12f79
|
跑道观测推送增加市场最高选项对比,超过市场覆盖范围则跳过
|
2026-05-15 17:43:41 +08:00 |
|
2569718930@qq.com
|
767e0e7de1
|
feat: implement telegram alert notification utility with state persistence and market filtering logic
|
2026-05-15 17:10:16 +08:00 |
|
2569718930@qq.com
|
e93f052559
|
feat: implement telegram notification push utilities with state management and alert filtering
|
2026-05-15 16:38:02 +08:00 |
|
2569718930@qq.com
|
a614cbd298
|
feat: implement runway observations monitoring panel and Telegram alert utilities
|
2026-05-15 16:22:42 +08:00 |
|
2569718930@qq.com
|
f7fb2ec83b
|
feat: add utility module for Telegram alert push notifications and state management
|
2026-05-15 16:20:07 +08:00 |
|
2569718930@qq.com
|
30de937d04
|
feat: add Telegram push notification utility for weather alerts with state persistence
|
2026-05-15 16:09:32 +08:00 |
|
2569718930@qq.com
|
7aea20c956
|
feat: implement telegram notification utilities with alert state management and market filtering
|
2026-05-15 15:46:02 +08:00 |
|
2569718930@qq.com
|
b45010a92e
|
feat: implement runway observations dashboard panel, add telegram alert utility, and create city payload service
|
2026-05-15 15:37:25 +08:00 |
|
2569718930@qq.com
|
747c8aa401
|
feat: tune scan dashboard and telegram monitor
|
2026-05-15 14:36:43 +08:00 |
|
2569718930@qq.com
|
f47ea93ec1
|
AMSC 重命名 _http_get_json 为 _amsc_http_get_json,避免 MRO 被 WeatherDataCollector 的同名方法覆盖
|
2026-05-15 03:47:15 +08:00 |
|
2569718930@qq.com
|
856e9aa6d1
|
AMSC 添加 stderr 调试输出,确认 urllib 代码路径被执行
|
2026-05-15 03:42:14 +08:00 |
|
2569718930@qq.com
|
e981188bf8
|
AMSC 请求从 httpx 改为 urllib,彻底绕过代理干扰
|
2026-05-15 03:33:06 +08:00 |
|
2569718930@qq.com
|
d8639f40f9
|
AMSC 请求绕过代理 trust_env=False,修复容器内 SSL 验证失败
|
2026-05-15 03:19:33 +08:00 |
|
2569718930@qq.com
|
6655476fd4
|
AMSC SSL 硬编码 verify=False,跳过证书验证环境变量依赖
|
2026-05-15 03:13:30 +08:00 |
|
2569718930@qq.com
|
06df0a87dd
|
AMSC 请求添加调试日志,排查 SSL verify 状态
|
2026-05-15 03:03:26 +08:00 |
|
2569718930@qq.com
|
00400f1392
|
AMSC 请求添加 app: AMS header,对齐浏览器完整请求头
|
2026-05-15 02:49:34 +08:00 |
|
2569718930@qq.com
|
bbb47b1634
|
AMSC sessionId 从 Cookie 改为自定义 header,对齐浏览器请求格式
|
2026-05-15 02:46:56 +08:00 |
|
2569718930@qq.com
|
189a77d03d
|
AMSC SSL 改用 httpx.Client(verify=False) 确保跳过证书验证
|
2026-05-15 02:42:03 +08:00 |
|
2569718930@qq.com
|
9f7bbffca1
|
AMSC AWOS 请求添加 SSL 验证开关,兼容国内证书
|
2026-05-15 02:25:33 +08:00 |
|
2569718930@qq.com
|
4cc579ccb3
|
feat: add AMSC runway observations
|
2026-05-15 01:41:49 +08:00 |
|
2569718930@qq.com
|
3bca2093f0
|
修复高频机场数据源:AMOS接入airport_primary、Taipei CWA补充mgm_nearby、Paris AROME缓存
- Seoul/Busan: AMOS 跑道传感器纳入 airport_primary 链路(MADIS之后、MGM之前)
- Seoul/Busan: 跑道温度生效时同步更新 current_obs_time,去重不再依赖慢速METAR
- Taipei: 新增 _attach_cwa_settlement_nearby,将CWA数据注入 mgm_nearby(icao=RCSS)
- Paris: AROME HD 抓取新增 10分钟内存缓存(模型15分钟更新),obs_time 为空时补 UTC 时间
- Istanbul/Ankara MGM 链接修复为直接跳转机场站点页面
Scope-risk: LOW — 170 测试通过,ruff 零告警
Tested: python -m pytest -q (170 passed), ruff check .
|
2026-05-15 00:10:03 +08:00 |
|
2569718930@qq.com
|
6c08a68413
|
@
性能与用户体验全面优化
前端性能:
- 移除 Three.js 依赖(~600KB),天气粒子改为纯 CSS 动画 + Canvas 2D
- Google Fonts 切换为 next/font 自托管,消除跨域字体请求
- 合并 ScanTerminalLightTheme.module.css (37KB) 到主 CSS,亮/暗主题统一用 CSS 变量
- 新增 /api/dashboard/init 聚合端点,首次加载 4 次往返 → 1 次
- 添加 Service Worker 静态资源缓存,修复 PWA manifest 配置
用户体验:
- 新增全局错误边界 error.tsx / global-error.tsx,崩溃不再白屏
- 决策卡和城市详情的更新时间改为相对时间("15秒前"),每秒自动刷新
- 数据陈旧时状态标签从青色切换为琥珀色提示
DEB 算法增强:
- 市场扫描路径接入 Open-Meteo 多模型数据(ECMWF/GFS/ICON/JMA/HRDPS 等)
- MAE 计算加入时间衰减(decay_factor=0.85),近期模型误差权重更高
Scope-risk: MEDIUM — 全量 170 测试通过,前端 TypeScript/build 通过,ruff 零告警
Tested: python -m pytest -q (170 passed), npx tsc --noEmit (0 errors), npm run build (success), ruff check .
@
|
2026-05-14 21:31:05 +08:00 |
|
2569718930@qq.com
|
37494a7192
|
@
将 web/routes.py 拆分为模块化 router + service 架构
- 新增 web/app_factory.py 集中注册 7 个域名 router
- 新增 web/routers/ 薄壳路由层(auth/city/system/scan/ops/payments/analytics)
- 新增 web/services/ 业务函数下沉(每域独立 service 文件)
- web/routes.py 缩减为 city_runtime 的兼容重导出 facade
- analysis_service.py/app.py 适配新入口并清理冗余导入
Scope-risk: LOW — 全量 170 测试通过,router 注册顺序与原路由一致
Tested: python -m pytest -q (170 passed), ruff check . (All checks passed)
@
|
2026-05-14 20:01:26 +08:00 |
|
2569718930@qq.com
|
eb056a890b
|
移除 PolyWeather 市场提醒功能及监控基础设施
- 删除 market_alert_engine.py:交易预警引擎
- 删除 alertmanager_telegram_relay.py:Alertmanager 到 Telegram 转发
- 移除 telegram_push.py 中市场监控推送循环
- 移除 runtime_coordinator.py 中 trade_alert_push 协程
- 移除 docker-compose.yml 中 Prometheus/Alertmanager/Grafana 服务
- 移除 monitoring/ 目录:prometheus/alertmanager/grafana 配置
Tested: ruff check . ✓
|
2026-05-14 18:23:39 +08:00 |
|
2569718930@qq.com
|
8dd9aa59b3
|
接入新加坡 MSS 1分钟实时温度及 MGM/JMA/FMI/KNMI 高频源到 airport_primary
- 新建 singapore_mss_sources.py:拉取 data.gov.sg 1分钟干球温度(S24 樟宜站)
- country_networks.py:_airport_primary_from_raw 新增 MGM/JMA/FMI/KNMI/SG_MSS 分支
- weather_sources.py:注入 jma_current/fmi_current/knmi_current/singapore_mss_current
- 前端 MonitorPanel:resolveSourceLabel 根据 airport_primary.source_code 显示数据源标签
- 文档:更新 AIRPORT_REALTIME_SOURCES.md 新增新加坡
Tested: ruff check . ✓ npx tsc --noEmit ✓
|
2026-05-14 17:12:11 +08:00 |
|
2569718930@qq.com
|
96676e7097
|
修正市场监控温度数据源:接入 NOAA MADIS 5分钟高频数据并优化展示
- 首尔/釜山:隐藏大号跑道温度值,改为"跑道温度"标签(跑道表面温度 ≠ 空气温度)
- US 城市:MADIS HFMETAR 5分钟小数温度接入 airport_primary,前端优先读取
- 其他城市:整数值不再强制 toFixed(1) 追加虚假 .0 精度
- 后端:weather_sources.py 注入 madis_hfmetar_current 到 results
- 后端:country_networks.py 的 _airport_primary_from_raw 新增 MADIS 优先分支
- 文档:更新 AIRPORT_REALTIME_SOURCES.md 新增 11 个 US 城市
- 文档:更新 CLAUDE.md 补充市场监控、高频数据管道、Country Network Provider 架构
Tested: npx tsc --noEmit ✓ ruff check . ✓
|
2026-05-14 16:00:55 +08:00 |
|
2569718930@qq.com
|
6c4f43fba6
|
Aurora→Denver 重命名 + 接入 MADIS HFMETAR 5 分钟数据源
|
2026-05-14 01:09:17 +08:00 |
|
2569718930@qq.com
|
1a4d75c126
|
推送消息时间改为观测数据时间,不再用当前本地时间
|
2026-05-13 21:43:26 +08:00 |
|
2569718930@qq.com
|
d97bb76480
|
移除 city_daily_max 表及 upsert 逻辑,日最高已改用 intraday_path_snapshots_store
|
2026-05-13 21:14:28 +08:00 |
|
2569718930@qq.com
|
cac84dcc0c
|
修复今日最高:新增 city_daily_max 表,所有数据源写入日最高
- DB: city_daily_max(icao,max_temp,obs_date,max_time) upsert
- AMOS/JMA/KNMI/FMI/HKO/METAR集群/CWA 采集后均写入
- Rust: 读 city_daily_max 获取准确日最高 + 时间
- 卡片恢复 High 行,显示最高温 + 达成时间
- new_high 提醒也基于真实日最高重新生效
Tested: cargo build + ruff check 均通过
|
2026-05-13 20:50:46 +08:00 |
|
2569718930@qq.com
|
067ee63ba4
|
首尔/釜山跑道数据:Python 存 RKSI_RWY_0/1,Rust 查询展示
- weather_sources: AMOS 采集时每条跑道单独写 airport_obs_log
- Rust: 按 RKSI_RWY_0、RKSI_RWY_1 等 icao 查询跑道温度
- 跑道标签 18L/36R、18R/36L 写死在 config 中
|
2026-05-13 20:39:15 +08:00 |
|
2569718930@qq.com
|
041c9fb4fa
|
撤回 METAR 兜底,改走 CWA 10min 实时数据(需配 API key)
|
2026-05-13 20:20:16 +08:00 |
|
2569718930@qq.com
|
1d3ccbb7cf
|
台北走 METAR 集群兜底:ICAO 从 CWA 站号 466920 改为 RCSS
- weather_sources: 放开 cwa settlement_source 的 METAR 拦截
- Rust: ICAO 改用 RCSS,匹配 METAR 集群数据
- 原因: CWA_OPEN_DATA_AUTH 未配置,CWA 接口静默失败致 airport_obs_log 无数据
|
2026-05-13 20:17:12 +08:00 |
|
2569718930@qq.com
|
86467d4e92
|
HK/LFS 数据延迟重试:obs_time 未变且距上次推送超 9min 时等 4s 重拉
HKO API 在 x7 分发布数据但有 3-5s 延迟,推送检查可能刚好在
API 更新前拿到旧数据被去重跳过。现在检测到数据过期时等待重拉。
Constraint: 仅影响 hong kong / lau fau shan,其他城市无额外延迟
|
2026-05-13 15:29:28 +08:00 |
|
2569718930@qq.com
|
1680bd5871
|
香港/流浮山推送间隔改为 60s:obs_time去重防重复,x7分放数据即时捕获
HKO 每 10min 在 x7 分(07/17/27…)发布数据,600s 间隔容易与
发布时刻错位导致延迟一整轮。改为 60s 轮询,obs_time 去重机制
保证同一观测不重复推送。
|
2026-05-13 15:08:34 +08:00 |
|
2569718930@qq.com
|
6802f647b3
|
Busan 高温窗口 fallback:peak 偏窄(13-14)时拓宽到 12-16
沿海城市受海风影响,Open-Meteo 算出的 peak 窗口仅 1 小时,
导致 time_ok 在 16:01 就关窗。加 _AIRPORT_PEAK_FALLBACK,
last_h - first_h < 3 时用 fallback 值。
Constraint: 仅影响 Busan,其他城市无 fallback 保持原逻辑
|
2026-05-13 15:04:54 +08:00 |
|