Commit Graph
100 Commits
Author SHA1 Message Date
2569718930@qq.com df892ce9a6 chore(ops): fall back to local trading_system.log in get_ops_logs when docker logs is empty 2026-05-20 08:20:16 +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 3fd52ad9d4 feat: add ops_api service for administrative management of users, subscriptions, and system analytics 2026-05-19 23:57:08 +08:00
2569718930@qq.com a714817cdf feat: implement health check dashboard client and admin service APIs 2026-05-19 23:39:33 +08:00
2569718930@qq.com 4488d6a9b1 关闭3天试用:VPS 禁用 signup trial,不合格入群申请直接拒绝 2026-05-19 19:41:39 +08:00
2569718930@qq.com e1e000e854 后台会员页新增增长趋势图表:累计曲线、每日新增堆叠面积图、统计卡片 2026-05-19 19:28:38 +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 0c2e22e770 feat: implement ScanTerminalShellParts component for loading, topbar, and paywall UI 2026-05-19 17:52:31 +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 89914a296b feat: add AccountCenter component for user profile and subscription management 2026-05-19 17:31:31 +08:00
2569718930@qq.com 6e2baa14ad 账户页付费用户新增城市话题群入口链接 2026-05-19 17:15:16 +08:00
2569718930@qq.com 9d6eb54a4f 移除分布视图地图点击时的 flyTo 放大动画 2026-05-19 17:09:59 +08:00
2569718930@qq.com bddf7f1372 修复地图点击城市跳转决策卡:Pro 用户自动切换到分析视图 2026-05-19 17:06:00 +08:00
2569718930@qq.com ae37e79fbb 修复测试:移除 _attach_russia_official_nearby mock 2026-05-19 16:59:35 +08:00
2569718930@qq.com a6e7d6682d 移除俄罗斯 pogodaiklimat 数据源:周边观测站不需要 2026-05-19 16:57:00 +08:00
2569718930@qq.com f2ab62ba83 修复 NMC 移除后的测试回归:删除 NMC 相关测试用例 2026-05-19 16:25:01 +08:00
2569718930@qq.com 3ca5b71299 移除 NMC(中国国家气象中心)数据源:无实际使用价值 2026-05-19 16:20:48 +08:00
2569718930@qq.com a7be2adbbb 修复测试:AMSC/NMC 用 monkeypatch.setattr 替换模块级常量 2026-05-19 16:03:07 +08:00
2569718930@qq.com 49238cf420 修复测试:AMSC/NMC 测试适配环境变量 URL 模式 2026-05-19 15:56:28 +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 96b642ffac 重写 Pro 升级公告文案:突出交易决策价值,而非功能清单 2026-05-19 15:10:35 +08:00
2569718930@qq.com 3d4a0148fe 修复 KNMI 健康检查 404:列表 API 已移除,改用实际数据端点 2026-05-19 15:00:10 +08:00
2569718930@qq.com 8cb5b3b310 整理文档:删除 4 个已废弃 EMOS/LGBM 文档,更新 8 个引用了已删除功能的其他文档 2026-05-19 14:53:37 +08:00
2569718930@qq.com d07aaf49b4 触发 CI 自动部署验证(ed25519) 2026-05-19 14:33:26 +08:00
2569718930@qq.com d83733399e 清理测试注释,准备 ed25519 CI 部署验证 2026-05-19 14:28:20 +08:00
2569718930@qq.com 9db37c6d7b 修复 CI 部署:使用原生 ssh 替代 appleboy action 2026-05-19 14:22:43 +08:00
2569718930@qq.com cd9de0926b 触发 CI 自动部署验证 2026-05-19 14:14:48 +08:00
2569718930@qq.com 3c013e300a CI 全流程自动化:测试通过后自动部署到 VPS 2026-05-19 13:24:02 +08:00
2569718930@qq.com e56040a855 添加一键部署脚本:deploy.sh (bash) 和 deploy.ps1 (PowerShell) 2026-05-19 13:19:03 +08:00
2569718930@qq.com 53c9ed2118 修复 CI:移除 package.json 中残留的 husky prepare 脚本 2026-05-19 13:15:48 +08:00
2569718930@qq.com b9130cb30a 修复测试:移除已删除的 artifacts 字段断言 2026-05-19 13:09:44 +08:00
2569718930@qq.com c4d4d0cdbc 修复回归测试:移除已删除模块的 mock 引用 2026-05-19 13:04:28 +08:00
2569718930@qq.com cb7526e799 修复 scrub_secrets.py 未使用的 os import 2026-05-19 12:49:18 +08:00
2569718930@qq.com 6d132e6a7f 移除未使用的 husky 依赖,pre-push hook 用手写脚本替代 2026-05-19 12:48:36 +08:00
2569718930@qq.com 476a4f85d8 修复移动端点击城市列表触发 Leaflet flyTo NaN 崩溃:隐藏地图容器跳过动画 2026-05-19 12:41:38 +08:00
2569718930@qq.com b93a75516d 移除未使用的 Groq 和 Meteoblue 服务代码及配置 2026-05-19 00:05:07 +08:00
2569718930@qq.com 19bd8f3636 @
合并 feat/mobile-layout:修复移动端城市列表搜索无数据显示
@
2026-05-19 00:00:10 +08:00
2569718930@qq.com 1326176a85 @
修复移动端城市列表搜索无数据显示:非 Pro 用户回退到基础城市数据源

MobileCityPicker 原依赖扫描终端 API rows,该 API 仅 Pro 用户触发,
导致访客/免费用户 cityListRows 为空,所有城市被 pickCityRow 过滤掉。
现新增 cityListRows fallback:无 scan 数据时从 store.cities +
citySummariesByName 构建行数据,保证所有用户可见并搜索城市列表。

Constraint: fallback rows 缺少 metar/target 字段,但 MobileCityPicker 仅消费 display/temp/deb/airport 字段,不影响渲染。
@
2026-05-18 23:50:18 +08:00
2569718930@qq.com c38dc80f58 后台新增 API 状态检测页:实时检测 Supabase/Open-Meteo/METAR/KNMI/MADIS/Telegram 连通性 2026-05-18 23:25:16 +08:00
2569718930@qq.com 5b1402fc7c refactor: extract analysis signal builders 2026-05-18 23:11:56 +08:00
2569718930@qq.com eaa695ec47 回滚 web 端口 localhost 绑定,Cloudflare Worker 需要外部访问 2026-05-18 23:10:08 +08:00
2569718930@qq.com 4d5a5b674d 修复 web 容器 healthcheck:用 python 替代不存在的 curl 2026-05-18 23:00:03 +08:00
2569718930@qq.com 473ed82202 Docker healthcheck、.env.example 清理死变量并补全缺失配置、web 端口绑定 localhost 2026-05-18 22:57:00 +08:00
2569718930@qq.com d4640a578d 项目体检收尾:更新 CLAUDE.md 移除 EMOS/LGBM 引用,清理前端死字段,移除 git 跟踪的临时文件,VPS 关闭退役钱包监控 2026-05-18 22:54:00 +08:00
2569718930@qq.com 0e4e7aebb2 项目体检修复:删除破损的 LGBM 导入、8个死测试、2个死脚本、移除 pytz/lightgbm 依赖 2026-05-18 22:43:34 +08:00
2569718930@qq.com 2b6b18ec20 修复 city_runtime.py 引用已删除的 probability_snapshot_archive 模块 2026-05-18 22:30:56 +08:00
2569718930@qq.com 0e0aad3171 删除 LGBM 全部代码和模型文件,EMOS 简化为纯 legacy 高斯分桶模式 2026-05-18 22:05:55 +08:00
2569718930@qq.com aec47adda1 缓存分析饼图:移除零值过滤,即使很小的命中数也显示 2026-05-18 21:34:17 +08:00
2569718930@qq.com 2fa27f54ac 修复转化漏斗:前后端数据格式对齐,正确解析 events/rates 结构 2026-05-18 21:29:06 +08:00
2569718930@qq.com 671a862400 总览页升级为综合数据大屏:双列布局、缓存桶图、会员分布饼图、转化漏斗、城市覆盖 2026-05-18 21:18:22 +08:00
2569718930@qq.com a9d71c18aa 后台数据可视化:Recharts 漏斗图、总览页 KPI 卡片和缓存饼图 2026-05-18 20:53:27 +08:00
2569718930@qq.com e12d935cde 会员订阅区分体验用户和付费用户:类型标签、筛选器、来源字段 2026-05-18 20:29:33 +08:00
2569718930@qq.com 546bc0c21e 删除旧的 OpsDashboard 1694 行单页组件 2026-05-18 20:26:24 +08:00
2569718930@qq.com 67701a4715 后台管理系统后端 API:在线配置编辑、手动订阅管理、日志查看(logs 目录避开 gitignore) 2026-05-18 20:18:42 +08:00
2569718930@qq.com 073d0efbb0 后台管理系统基础框架:侧边栏布局、9 个页面模块、共享类型和 API 客户端 2026-05-18 20:10:08 +08:00
2569718930@qq.com 2d1cb55151 非 Pro 用户隐藏城市决策卡标签页和深度分析视图 2026-05-18 19:35:16 +08:00
2569718930@qq.com 2d459f3052 城市 panel/nearby 数据对游客开放,market/full 保留鉴权 2026-05-18 19:28:54 +08:00
2569718930@qq.com 6bdad2eae9 修复游客无法加载城市简报:middleware 白名单遗漏 detail 端点导致 401 2026-05-18 19:22:51 +08:00
2569718930@qq.com ff420c4bec 修复地图点击城市后跳转到决策卡而非右侧简报的问题 2026-05-18 19:13:21 +08:00
2569718930@qq.com 426bd7deab 统一城市决策卡 Pro 门禁:游客和免费用户点击 Today 引导至账户页 2026-05-18 19:06:04 +08:00
2569718930@qq.com 3e941a238a 移除分布视图的 Pro 权限门禁,游客和免费用户可查看地图和城市简报 2026-05-18 18:56:32 +08:00
2569718930@qq.com ad16ae6b3b 账户页 Telegram 区块仅付费用户可见,移除过期的频道升级通知和市场监控链接 2026-05-18 18:44:20 +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
2569718930@qq.com c6321253fe 修复 MADIS HFMETAR 目录路径:NOAA 已将文件迁移到 netCDF 子目录 2026-05-18 17:33:35 +08:00
2569718930@qq.com 4a8eeaae5e 修复 KNMI API key 未传递到 HTTP 请求的 bug 2026-05-18 17:28:56 +08:00
2569718930@qq.com 78b23ef361 feat: implement Telegram account binding and update project structure in documentation 2026-05-18 17:10:44 +08:00
2569718930@qq.com 1b2731ed12 fix: prefer dedicated telegram pricing group 2026-05-18 16:22:16 +08:00
2569718930@qq.com 6041d25f23 feat: add telegram group pricing and direct payments 2026-05-18 16:18:26 +08:00
2569718930@qq.com d99a3c25e9 Add safe Open-Meteo cache diagnostic 2026-05-18 00:21:18 +08:00
2569718930@qq.com fd59cd018d Harden Open-Meteo rate limiting 2026-05-18 00:13:51 +08:00
2569718930@qq.com 6cee86ec7b 修复 ruff E401: 拆分 check_city_cache.py 的合并 import 2026-05-17 23:01:21 +08:00
2569718930@qq.com 44e8921e5c 前端移除 Lagos 城市及相关本地化文案 2026-05-17 22:59:58 +08:00
2569718930@qq.com 4acd0d9da6 机场推送新增 Tel Aviv(LLBG / Ben Gurion)
- HIGH_FREQ_AIRPORT_CITIES 从 30 城扩到 31 城
- 新增论坛子话题 thread_id=3408
- ICAO: LLBG,数据源: IMS + METAR
2026-05-17 22:56:43 +08:00
2569718930@qq.com bd21b05fbc 完全移除预热(prewarm)功能
- 删除 src/utils/prewarm_dashboard.py
- 删除 scripts/prewarm_dashboard_cache.py、prewarm_dashboard_worker.py
- docker-compose.yml 移除 polyweather_prewarm 服务
- runtime_coordinator.py 移除预热循环启动逻辑
- web/core.py 移除 prewarm status 上报
- web/routers/system.py 移除 /api/system/prewarm 端点
- web/services/system_api.py 移除 run_system_prewarm
- city_runtime.py DEFAULT_PREWARM_CITIES 改名为 DEFAULT_STATUS_CITIES
- 清理 env.example、测试、VPS .env 中的预热配置
2026-05-17 22:43:17 +08:00
2569718930@qq.com 22e2409e13 修复 Open-Meteo 冷却期无限循环导致多模型数据缺失
- fetch_all_sources 新增 om_from_cache_only 模式:force_refresh_observations_only
  时直接从内存缓存取 OM 数据,不发起 HTTP 请求。缓存未命中则跳过,
  避免机场推送 60s 周期持续触发 429 限流
- nws_open_meteo_sources 三类 fetch 函数冷却期加磁盘缓存兜底:
  内存未命中时 force-reload SQLite 磁盘缓存再查一次
- 预热停止后冷却期自然过期(900s),下一次正常请求会填充缓存
2026-05-17 22:31:10 +08:00
2569718930@qq.com 415f03466d 修复 CI: mobileAnnouncement 测试适配公告移除 2026-05-17 21:52:50 +08:00
2569718930@qq.com 4c6eaa6390 feat: add useAiCityForecast hook to manage streamed AI city weather forecasting logic 2026-05-17 21:50:20 +08:00
2569718930@qq.com 3351991fe1 feat: add AiCityTemperatureChart component and useAiPinnedCityWorkspace hook for deep-analysis city tracking 2026-05-17 21:37:51 +08:00
2569718930@qq.com 1645fd88d0 移除 v1.5.6 升级公告横幅
- ScanTerminalDashboard: 删除 showAnnouncement 状态、localStorage 检测逻辑、渲染代码
- ScanTerminalShellParts: 删除 ScanUpgradeAnnouncement 组件
2026-05-17 21:24:28 +08:00
2569718930@qq.com 9d8c59f741 修复城市决策卡切换时地图白屏和第二城市加载失败
- MapCanvas 改为始终挂载,视图切换用 display:none 隐藏而非卸载,
  避免 Leaflet 重初始化时容器尺寸为 0 导致白屏
- handleMapCitySelect 在 matchedRow 为空时主动调用 ensureCityDetail
  预加载城市详情,不再依赖 hydration 队列异步补拉
2026-05-17 21:20:17 +08:00
2569718930@qq.com deec8221ea 重构温度曲线图表数据模块,修复 DEB offset 基准
- 新建 temperature-chart-paths.ts:抽取 8 个纯函数(buildChartTimeAxis、
  buildDebBaselinePath、buildCalibratedPath、buildObservationGrid 等)
- DEB offset 基准改为优先用 hourly 曲线自身 max,forecast.today_high
  降级为 fallback,防止不可靠的 today_high 整体抬升/压低曲线
- chart-utils.ts 精简 ~280 行,清除重写的 normalizeTafHm/chartHmToMinutes
- temperatureChartData.test.ts 新增 Moscow/Ankara/正常城市 3 个测试场景
2026-05-17 20:57:52 +08:00
2569718930@qq.com 9e400a3802 Document airport push worker cap 2026-05-17 20:25:27 +08:00
2569718930@qq.com c74c193b02 移除市场监控推送功能及相关代码
- telegram_push.py: 删除 MARKET_MONITOR_CITIES/INTERVAL、_build_market_monitor_message、
  _run_market_monitor_cycle、start_market_monitor_push_loop、_format_percent/_format_prob
- telegram_chat_ids.py: 删除 get_market_monitor_chat_ids_from_env
- runtime_coordinator.py: 删除 _start_market_monitor_push_loop 及调用
- 移除 #市场监控 hashtag
2026-05-17 20:22:42 +08:00
2569718930@qq.com 07f61f8ca9 Bump city detail cache for chart rebuild 2026-05-17 19:48:09 +08:00
2569718930@qq.com 38ac9844c1 Ensure DEB chart path covers full day 2026-05-17 19:34:42 +08:00
2569718930@qq.com 1ab10a9c90 Add MGM hourly support for Ankara models 2026-05-17 19:19:12 +08:00
2569718930@qq.com a83200d505 Fix Ankara decision chart model coverage 2026-05-17 19:12:28 +08:00
2569718930@qq.com 8ade6dd7d2 Improve scan decision card hydration 2026-05-17 18:57:02 +08:00
2569718930@qq.com 5c2977fe71 修复温度曲线图 DEB 路径不显示:后端 v2 API 的 timeseries.hourly 映射到前端 CityDetail.hourly
- normalizeCityDetailPayload 新增 timeseries.hourly → hourly 字段提升
- 预热列表 DEFAULT_CITIES 扩展到 33 城,覆盖全部机场推送城市
2026-05-17 18:41:53 +08:00
2569718930@qq.com ff6d6c550f 预热城市列表扩展到 33 城:覆盖全部机场推送城市
- 原 19 城缺少 amsterdam/helsinki/lau fau shan 及 11 个美国城市
- 导致这些城市 detail API 冷启动时 OM 缓存未命中,hourly 数据为空,温度曲线图无法渲染 DEB 路径
2026-05-17 18:34:51 +08:00