2569718930@qq.com
|
6de29ed2e1
|
清理调试日志:移除 BIAS_DEBUG/SCAN_DEBUG 临时日志,保留核心修正逻辑
|
2026-05-25 03:52:07 +08:00 |
|
2569718930@qq.com
|
5d6f906adb
|
bias correction 改用已解析的 cur_temp/max_so_far 变量替代错误的 raw 读取
|
2026-05-25 03:29:04 +08:00 |
|
2569718930@qq.com
|
d7903f4387
|
bias correction 新增 BIAS_PRE 日志排查条件入口
|
2026-05-25 03:24:22 +08:00 |
|
2569718930@qq.com
|
54b03321cb
|
bias correction 新增 BIAS_DEBUG 日志排查修正是否生效
|
2026-05-25 03:22:41 +08:00 |
|
2569718930@qq.com
|
c0df56e7b8
|
新增日内偏差修正:用实况与模型小时预报偏差动态修正 DEB 和概率分布
_analyze 在小时数据组装后,对比当前实测温度与模型预报偏差,
按日内时段权重修正 DEB 高温预测和概率分布 mu。
修正量上限 5°F/3°C,上午权重轻、峰值窗口加重、峰值后最强。
同时将 max-so-far 突破 DEB 预测作为辅助趋势修正信号。
|
2026-05-25 03:18:00 +08:00 |
|
2569718930@qq.com
|
ad936bfd91
|
Telegram 高频推送内存优化:LRU 缓存限制、TTL 驱逐、速率控制、连接复用
core.py: _cache 改用 LRUDict(maxsize=256) + threading.Lock 线程安全读写
analysis_service.py: _CACHE_LOCK 保护读写,_SUMMARY_CACHE 改用 LRUDict(maxsize=128)
weather_sources.py: 新增 _maybe_trim_caches() 定期清理 11 个过期缓存条目,防止无限增长
telegram_push.py: requests.Session 连接复用替代裸 requests.get,ThreadPoolExecutor 跨周期复用,
新增 _rate_limited_send 消息发送速率控制防止 API 限流堆积
Tested: ruff check 通过, 182 pytest 通过
|
2026-05-25 02:20:15 +08:00 |
|
2569718930@qq.com
|
76d5a0abe8
|
refactor: remove redundant telegram pricing, align daily forecast date, and hide sunrise/sunset from UI
|
2026-05-20 07:55:47 +08:00 |
|
2569718930@qq.com
|
3ca5b71299
|
移除 NMC(中国国家气象中心)数据源:无实际使用价值
|
2026-05-19 16:20:48 +08:00 |
|
2569718930@qq.com
|
b93a75516d
|
移除未使用的 Groq 和 Meteoblue 服务代码及配置
|
2026-05-19 00:05:07 +08:00 |
|
2569718930@qq.com
|
5b1402fc7c
|
refactor: extract analysis signal builders
|
2026-05-18 23:11:56 +08:00 |
|
2569718930@qq.com
|
0e0aad3171
|
删除 LGBM 全部代码和模型文件,EMOS 简化为纯 legacy 高斯分桶模式
|
2026-05-18 22:05:55 +08:00 |
|
2569718930@qq.com
|
1ab10a9c90
|
Add MGM hourly support for Ankara models
|
2026-05-17 19:19:12 +08:00 |
|
2569718930@qq.com
|
d39534dff4
|
机场推送重构:观测缓存分离 + 全城市覆盖 + 四路并发
- 新增 force_refresh_observations_only 模式:机场推送仅刷新 METAR/AMOS
观测缓存,多模型预报缓存保留 15 分钟,杜绝 Open-Meteo 429 限流后
DEB 回退到实测温度的 bug
- 砍掉夜间静默和温度状态机,每条新观测无条件推送
- HIGH_FREQ_AIRPORT_CITIES 从 19 城扩到 30 城(新增 11 个美国城市)
- 美国城市走 airport_primary (MADIS) 优先取温
- 机场周期从串行改为 ThreadPoolExecutor(max_workers=4),周期时间从
~120s 压缩到 ~33s
Constraint: 单核 VPS 安全并发上限
Tested: docker compose up -d --build polyweather 重建后推送正常
|
2026-05-17 18:04:05 +08:00 |
|
2569718930@qq.com
|
a83d9e7649
|
feat: implement 60-second analysis cache TTL for high-frequency airport cities
|
2026-05-17 13:41:44 +08:00 |
|
2569718930@qq.com
|
4cc579ccb3
|
feat: add AMSC runway observations
|
2026-05-15 01:41:49 +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
|
02add6d994
|
feat: implement city weather detail API routing, dashboard data models, and monitoring infrastructure
|
2026-05-14 14:21:28 +08:00 |
|
AmandaloveYang
|
e344fae75f
|
首尔/釜山 AMOS 数据缓存 TTL 从 300s 降至 60s,对齐官网 1 分钟刷新频率
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-11 17:28:53 +08:00 |
|
2569718930@qq.com
|
8075fb66b7
|
AMOS 增加 info 级别日志追踪数据流
- weather_sources.py: _attach_korean_amos_data 记录 fetch 开始、成功/失败、温度/跑道数据
- amos_station_sources.py: _amos_get_page 记录页面匹配/不匹配
- amos_station_sources.py: fetch_amos_official_current 记录 HTML 获取和解析
- analysis_service.py: _analyze 记录 AMOS 数据是否到达分析层
重启后端后在日志中搜索 "AMOS" 可追踪完整数据流:
AMOS: fetching for city=seoul
AMOS page matched icao=RKSI length=...
AMOS fetch_amos_official_current: got HTML for RKSI...
AMOS: got data for city=seoul temp_c=... source=...
AMOS _analyze: found amos data for city=seoul temp_c=...
|
2026-05-10 19:46:26 +08:00 |
|
2569718930@qq.com
|
40cd8fc2a6
|
修复机场观测面板不显示 + 放宽 AMOS 展示条件
|
2026-05-10 19:06:22 +08:00 |
|
2569718930@qq.com
|
e23a90a961
|
修复釜山 AMOS 数据获取 + 跑道面板容错
AMOS 页面用 JS 切换机场,GET 参数无效。新增策略:
- 先 GET 建立 session,再 POST form data 切换机场
- 尝试多种 form data 组合(icao/stn/airport/code)
- 回退到 GET 参数尝试
跑道面板容错:
- 无温度数据时仍展示跑道风/能见度/RVR
- 温度缺失显示 "--" 而非隐藏整行
- analysis_service 输出条件放宽:有 temp_c 或 runway_obs 即可
Tested: python -m ruff check ., npx tsc --noEmit
|
2026-05-10 18:39:37 +08:00 |
|
2569718930@qq.com
|
ba352feb34
|
首尔/釜山机场报文优先使用 AMOS(更新更快)
- analysis_service.py:AMOS 数据覆盖 airport_current 的 raw_metar、wind、pressure
- source_label 设为 "AMOS"(区别于 aviationweather.gov METAR)
- stale_for_today 强制 false(AMOS 数据本身证明了时效性)
- observation_time 优先使用 AMOS 时间戳
- AI 读取的 city_snapshot.current.raw_metar 来自 AMOS 跑道传感器
优先级:AMOS raw_metar > aviationweather.gov METAR(首尔/釜山)
Reason: AMOS 直连韩国机场系统,延迟更低,更新更快
|
2026-05-10 18:18:40 +08:00 |
|
2569718930@qq.com
|
04b2f0e4a3
|
AMOS 数据接入分析层和 AI 预测判定
问题:AMOS 数据在采集层取出后从未被 _analyze() 读取,AI 无法看到跑道级数据
修复:
- analysis_service.py:_analyze() 新增 AMOS 温度读取优先级
观测来源顺序:结算源 > AMOS跑道传感器 > METAR > MGM > NMC
- AMOS 数据自动覆盖 current.wind_speed_kt、current.pressure_hpa、current.raw_metar
- 输出新增 "amos" 字段携带完整跑道数据(temp_source、runway_temps)
- scan_terminal_service.py:AI prompt 的 current 区块新增 pressure_hpa 和 observation_source
- AI 现在知晓数据来自 AMOS 跑道传感器(observation_source="amos"),可据此判断数据权威性
数据流:
AMOS fetch -> raw["amos"] -> _analyze() -> current.observation_source="amos"
-> result["amos"] -> _build_city_ai_prompt -> city_snapshot.current
-> AI reads runway sensor temp/wind/pressure as authoritative observation
Tested: python -m ruff check ., npx tsc --noEmit
|
2026-05-10 18:16:10 +08:00 |
|
2569718930@qq.com
|
b3ea8dcfa7
|
数据链路 P1 修复:ETag 缓存 + 校准漂移检测
P1-5 ETag 支持:
- 后端新增 _etag_middleware:GET /api/* 自动返回 ETag (MD5)
- 支持 If-None-Match 请求头,匹配时返回 304 + 30s Cache-Control
- 前端 cache: no-store → default,浏览器自动处理 ETag/304 节省带宽
P1-6 校准漂移检测:
- probability_calibration.py 新增 check_calibration_drift()
- 对比最近 200 条 daily_records 的 CRPS 与校准基线
- 漂移 >15% 时返回 warning 提示重新训练
- 集成到 /api/system/status 的 probability.drift 字段
Tested: python -m ruff check ., npx tsc --noEmit
|
2026-05-10 16:54:48 +08:00 |
|
2569718930@qq.com
|
c0bb2acf78
|
修复数据链路 P0 瓶颈:缓存炸弹、Context 重渲染、LGBM 循环、TTL 不匹配
P0-1 sessionStorage 限制:
- writeCityDetailCacheBundle 只保留最近 3 个城市的详情
- 避免 3-10MB JSON 序列化阻塞主线程
P0-2 Context 拆分:
- 新增 CityDetailsContext 独立管理 cityDetailsByName 变更
- 新增 useCityDetails hook,只订阅详情的组件不再因 cities/proAccess 变化重渲染
- DashboardStoreContext 保持不变,向后兼容
P0-3 扫描终端 TTL:
- SCAN_TERMINAL_PAYLOAD_TTL_SEC 30s → 120s
- 匹配 ThreadPoolExecutor(4) x 60 城的实际重算耗时
P0-4 LGBM 循环依赖:
- LGBM 预测值不再作为 DEB 输入参与权重计算
- 保留为独立参考字段 lgbm.prediction 输出给前端展示
- 消除 DEB → LGBM 训练 → DEB 的循环
新增 docs/data-architecture-review.md 完整数据链路审查报告
Tested: npx tsc --noEmit, python -m ruff check .
|
2026-05-10 16:48:28 +08:00 |
|
2569718930@qq.com
|
7b82ba68df
|
回退 _analyze_summary 中未启用的 LGBM 增强步骤
LGBM 当前默认禁用 (POLYWEATHER_LGBM_ENABLED=false),predict_lgbm_daily_high
直接返回 None,在 _analyze 中也未实际参与 DEB 计算,_analyze_summary 无需重复。
Rejected: 在 LGBM 正式启用前,_analyze_summary 不应包含会被跳过的 LGBM 调用
|
2026-05-06 18:30:47 +08:00 |
|
2569718930@qq.com
|
a684586cb4
|
统一 DEB 数据源为单一计算路径
getModelView 优先使用根级 detail.deb.prediction 保证与 AI 证据面板一致,
_build_city_detail_payload 补上缺失的 deb 和 multi_model_daily 字段,
_analyze_summary 补上 LGBM 增强步骤使其与 _analyze 产出相同的 DEB 值。
Constraint: 三个入口 (panel/full/summary) 的 DEB 必须经过同一套 calculate_dynamic_weights + LGBM 重算流程
Tested: ruff + tsc 全过
|
2026-05-06 18:24:15 +08:00 |
|
2569718930@qq.com
|
6c203bee60
|
This version of Antigravity is no longer supported. Please upgrade to receive the latest features.
|
2026-05-01 11:27:16 +08:00 |
|
2569718930@qq.com
|
d54050ceb0
|
feat: implement AI-driven city weather analysis and market decision dashboard components
|
2026-04-26 10:02:54 +08:00 |
|
2569718930@qq.com
|
1595f4a92e
|
feat: implement ScanTerminalDashboard with AI-driven city forecast streaming and opportunity tracking
|
2026-04-26 08:12:31 +08:00 |
|
2569718930@qq.com
|
99ffa717ef
|
Use model cluster for tail no scan signals
|
2026-04-24 15:12:53 +08:00 |
|
2569718930@qq.com
|
ddc0180ae6
|
Implement EMOS scan terminal with REST-only market data
|
2026-04-23 23:49:52 +08:00 |
|
2569718930@qq.com
|
ca81fda287
|
feat: implement analysis service, dashboard components, and data collection utilities for PolyWeather
|
2026-04-23 21:10:22 +08:00 |
|
2569718930@qq.com
|
54b326ff42
|
feat: implement comprehensive Polymarket weather analysis service with frontend dashboard and market scanning capabilities
|
2026-04-23 20:45:32 +08:00 |
|
2569718930@qq.com
|
974b55e34f
|
Add full probability distributions to dashboard
|
2026-04-22 01:43:13 +08:00 |
|
2569718930@qq.com
|
582ded8cfb
|
改进METAR当日状态判断与展示
|
2026-04-21 19:13:33 +08:00 |
|
2569718930@qq.com
|
d6cc3b1b90
|
Fix city-local time display for nearby stations
|
2026-04-19 15:37:13 +08:00 |
|
2569718930@qq.com
|
7e2209e928
|
Include UTC offsets in city and nearby observation times
|
2026-04-19 14:47:18 +08:00 |
|
2569718930@qq.com
|
b2f15ae7d8
|
Clarify intraday suppression headlines
|
2026-04-19 14:15:46 +08:00 |
|
2569718930@qq.com
|
fbbd13b1c3
|
Add nearby station timing sync labels
|
2026-04-19 02:38:34 +08:00 |
|
2569718930@qq.com
|
7909a16002
|
Add open multi-model forecast sources
|
2026-04-17 00:27:57 +08:00 |
|
2569718930@qq.com
|
9ed31b95a4
|
Fix METAR refresh timing and local observation display
|
2026-04-16 18:21:51 +08:00 |
|
2569718930@qq.com
|
9823e3961f
|
Add localized meteorology text and filter implausible METAR temps
|
2026-04-16 17:34:39 +08:00 |
|
2569718930@qq.com
|
e2cb0cfe5e
|
Add professional intraday meteorology analysis
|
2026-04-16 17:13:53 +08:00 |
|
2569718930@qq.com
|
25424700ce
|
Restore observed temperatures on map and trend charts
|
2026-04-16 15:29:26 +08:00 |
|
2569718930@qq.com
|
baaccc6636
|
feat: implement multi-source weather data collection system and dashboard frontend with integrated analysis services.
|
2026-04-13 18:42:27 +08:00 |
|
2569718930@qq.com
|
a27ae564fb
|
Load nearby stations before opening intraday analysis
|
2026-04-12 20:49:51 +08:00 |
|
2569718930@qq.com
|
627bb8aa06
|
Prioritize homepage summary preloading for Asia and Europe
|
2026-04-12 10:42:00 +08:00 |
|
2569718930@qq.com
|
77b4d7b341
|
feat: implement METAR data collection service and dashboard infrastructure
|
2026-04-11 20:11:01 +08:00 |
|