Commit Graph

308 Commits

Author SHA1 Message Date
2569718930@qq.com f98ab4a9fe Prefer AMSC sessionId over stale cookie 2026-06-15 00:57:10 +08:00
2569718930@qq.com 59f19407cb Use latest AMSC runway timestamp for overlays 2026-06-15 00:43:07 +08:00
2569718930@qq.com 3b34ddbf12 Strip Wunderground data from city cache responses 2026-06-14 23:47:25 +08:00
2569718930@qq.com ddca698406 Disable default Wunderground fetching 2026-06-14 23:32:34 +08:00
2569718930@qq.com 8bbe8f74c1 Extract forecast source bundle from collector 2026-06-14 22:27:05 +08:00
2569718930@qq.com 8f6925108c Reduce polling and batch observation writes 2026-06-08 15:12:41 +08:00
2569718930@qq.com 11fd482378 Refresh product docs and observation freshness 2026-06-06 21:46:23 +08:00
2569718930@qq.com 2af1cf9cd8 feat: add observation collector and source gate 2026-06-05 14:38:58 +08:00
2569718930@qq.com 668f4d9bd3 Optimize terminal batching and cache guards 2026-05-31 18:28:50 +08:00
2569718930@qq.com aa583e7440 Add ops runtime secret rotation 2026-05-30 20:33:30 +08:00
2569718930@qq.com 5228d2b3fd Update landing and weather observation policies 2026-05-29 20:46:35 +08:00
2569718930@qq.com 9e3a4e2f45 Fix WU historical current observation merge 2026-05-29 17:20:07 +08:00
2569718930@qq.com 79b82a34cb fix: use settlement runway endpoint temperatures 2026-05-28 10:55:32 +08:00
2569718930@qq.com 725727d763 fix: restore Hong Kong CoWIN reference curve 2026-05-28 08:14:27 +08:00
2569718930@qq.com 573768846e feat: implement real-time SSE event architecture with Redis stream integration and add associated validation tests 2026-05-27 11:03:04 +08:00
2569718930@qq.com 820dabfbf3 feat: implement real-time observation patch normalization and live temperature threshold visualization logic 2026-05-27 10:17:33 +08:00
2569718930@qq.com e6a673e27d feat: add multiple weather data source scrapers and integrate dashboard temperature chart logic components 2026-05-27 09:31:24 +08:00
2569718930@qq.com 05010d20e2 feat: implement AMOS real-time weather data collection and add corresponding unit and frontend tests 2026-05-27 09:07:48 +08:00
2569718930@qq.com bbd7c768f8 feat: implement live temperature threshold charting component with SSE patch support and data collection logic 2026-05-27 08:42:08 +08:00
2569718930@qq.com 2670e2f8ee feat: implement interactive temperature chart dashboard with runway trend visualization and multi-source data collection support 2026-05-27 01:16:49 +08:00
2569718930@qq.com 645e304b3e feat: implement SSE-based real-time event distribution system with replay support and heartbeat functionality 2026-05-26 22:27:55 +08:00
2569718930@qq.com 88b80d66e8 全局替换旧域名 polyweather-pro.vercel.app → polyweather.top
- payment-host: 移除 vercel 域名,加 www.polyweather.top
- CORS: 移除 vercel,加 www
- bot: 绑定链接 + 市场概览提示
- weather_sources: User-Agent
2026-05-26 19:53:47 +08:00
2569718930@qq.com 7045e11082 修复 weather_sources.py MADIS cache 清理中未定义的 now 变量 2026-05-26 10:40:00 +08:00
2569718930@qq.com 23882ac1ef SSE Patch 增量推送架构全链路实现
- web/sse_manager.py: asyncio.Queue 连接池 + broadcast + event_stream
- web/routers/sse_router.py: GET /api/events + POST /api/internal/collector-patch
- weather_sources.py: 采集后 POST patch 给 web
- Nginx polyweather.conf: /api/events proxy_buffering off
- frontend/api/events/route.ts: Next.js SSE 代理
- frontend/hooks/use-sse-patches.ts: EventSource + useLatestPatch + 重连
- LiveTemperatureThresholdChart: mergePatchIntoHourly 增量合并
- scan-terminal-query: 接入 SSE patch 更新行数据
- 新增 ssePatchArchitecture.test.ts 架构测试
2026-05-26 10:39:17 +08:00
2569718930@qq.com 6e6d27f323 莫斯科数据源简化:移除 METAR 集群 + NOAA 结算,仅保留 UUWW 单站
- city_registry: settlement_source noaa → metar
- weather_sources: 移除 Moscow METAR cluster 5 站配置
- country_networks: 删除 RussiaStationWebNetworkProvider 类
- 文档: Tier 4 备注更新
2026-05-26 09:20:49 +08:00
2569718930@qq.com 0fffc0faa1 修复 weather_sources.py 缺少 timezone 导入 2026-05-26 09:14:34 +08:00
2569718930@qq.com 45365df694 CoWIN 6087 历史持久化 + 跑道曲线聚合 + 模型区间修复 + HKO 曲线对调 + 毛玻璃加载层
- weather_sources: CoWIN 1min 观测写入 official_intraday_observations_store
- country_networks: cowin_obs 源从 DB 回读 1min 历史,不复用 VHHH METAR
- analysis_service: 跑道实测 36h 历史按跑道分组,透传至前端
- scan_terminal_city_row: model_cluster_sources fallback 修复 + runway_plate_history
- 前端: CoWIN 6087 升级为主轴实线,HKO 退为虚线,VHHH METAR 轻虚线
- 前端: Loading 升级为毛玻璃全卡蒙层
2026-05-26 09:13:39 +08:00
2569718930@qq.com 18b5e9cfed 修正深圳 HKO 站名:Shenzhen (LFS) → Lau Fau Shan 匹配天文台 CSV 2026-05-26 08:01:04 +08:00
2569718930@qq.com 20d53e1ae2 新增 CoWIN 6087 数据源:香港保良局陳守仁小學 1 分钟参考站
- cowin_sources.py:从 cowin.hku.hk API 抓取站 6087 的逐分钟温度
- weather_sources.py:CowinSourceMixin 接入采集链,优先级高于 HKO
- country_networks.py:_airport_primary_from_raw 加入 COWIN 优先检查
  airport_primary.source_label 显示为 CoWIN 6087,前端图表默认可见
2026-05-26 07:52:49 +08:00
2569718930@qq.com b3aabe61ce 清理市场概览残留与 refresh_policy 中的 marketOverview 条目 2026-05-25 23:06:44 +08:00
2569718930@qq.com ea5c6ec71e 清理市场概览残留:删除 MarketOverviewBanner+refresh_policy 中的 marketOverview 条目 2026-05-25 23:04:40 +08:00
2569718930@qq.com 5202ed06ff 巴黎 AROME 仅在 AEROWEB 为主源时作对比展示,避免与当前温度重复 2026-05-25 21:38:10 +08:00
2569718930@qq.com 7a10f4b474 统一 METAR 获取:非 HK/深圳城市走同一条 NOAA 路径,前端移除所有流浮山字样 2026-05-25 21:15:14 +08:00
2569718930@qq.com 7b8826dfa1 清理最后一批 Polymarket 注释+死代码 WeatherDecisionBand 2026-05-25 20:53:03 +08:00
2569718930@qq.com ef8d89e72e 删除 Polymarket 核心文件:readonly 层+WS 缓存 2026-05-25 20:07:32 +08:00
2569718930@qq.com 21a375a198 修复 WS 事件识别:无 type envelope 的价格消息也处理 2026-05-25 07:56:45 +08:00
2569718930@qq.com e6d24c308f WS 新增临时调试日志查看实际接收消息 2026-05-25 07:52:18 +08:00
2569718930@qq.com 5566894e84 修复 WS 订阅格式:type=subscribe channel=market 对齐官方文档 2026-05-25 07:49:55 +08:00
2569718930@qq.com 1ef209ce2f 移除 REST 价格获取,纯 WebSocket 报价;默认开启 WS 价格;修复图表 TS 错误 2026-05-25 07:38:35 +08:00
2569718930@qq.com 81f61370fe _batch_get_token_market_data 批量 WS 预热订阅避免全冷 REST 查询 2026-05-25 07:35:19 +08:00
2569718930@qq.com bf4be0436b 完成 lau fau shan → shenzhen 全量重命名,前端库和文档同步更新 2026-05-25 06:10:54 +08:00
2569718930@qq.com 317c57ccd1 巨鲸盯盘接入 Polymarket Data API /holders 端点,展示真实持仓者数据 2026-05-25 04:38:45 +08:00
2569718930@qq.com 6de29ed2e1 清理调试日志:移除 BIAS_DEBUG/SCAN_DEBUG 临时日志,保留核心修正逻辑 2026-05-25 03:52:07 +08:00
2569718930@qq.com 8849ef8fe6 放宽扫描终端硬过滤默认值,适配 Polymarket 低流动性长尾桶
min_price 0.05→0.001,max_price 0.95→0.999,min_liquidity 500→50,
max_spread 0.03→0.2,edge 过滤从定向改为绝对值以捕获空头信号。
2026-05-25 02:58:41 +08:00
2569718930@qq.com 852010b8d4 _passes_hard_filters 新增过滤原因日志排查扫描行被全部筛掉问题 2026-05-25 02:54:20 +08:00
2569718930@qq.com d2a9e9a9b3 修复概率引擎与 Polymarket 桶不匹配导致 model_p 始终为 None 的问题
_distribution_probability_for_market 新增高斯 CDF fallback:
当离散概率分布桶与 Polymarket 市场桶无精确重叠时(如 NYC 分布 56-59F
但市场桶为 51-70F),用分布的 mu/sigma 构建正态分布计算 CDF 概率,
不再直接返回 None,保证 scan_rows 正常生成。
2026-05-25 02:51:58 +08:00
2569718930@qq.com 032d46ec1d Polymarket 市场扫描新增 SCAN_DEBUG 日志排查终端无数据问题
在 _build_distribution_scan_pack / _row_from_entry 关键路径
添加 logger.info 跟踪 related_markets 数量、批量报价结果、
行过滤原因和最终结果,便于定位 scan_rows 始终为空的原因。
2026-05-25 02:46:05 +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 c9cff88452 更新浏览器图标为新品牌 logo
基于 public/logo.png 重新生成所有尺寸的 favicon 和 PWA 图标。
Tested: npm run build 通过
2026-05-25 00:53:39 +08:00
2569718930@qq.com e9cc9a5eb1 修复机构落地页构建失败并恢复 Polymarket 市场扫描
InstitutionalLandingPage.tsx 补充 "use client" 指令以通过 Next.js 15 构建。
polymarket_readonly.py 集成 WebSocket 报价缓存加速价格获取。
city_payloads.py 复用 Polymarket 层构建真实市场扫描数据替代空返回。

Constraint: 市场扫描需在无 Polymarket 价格 UI 的前提下提供数据
Tested: npm run build 通过
2026-05-25 00:41:56 +08:00