2569718930@qq.com
|
f38f0893df
|
清理旧 Dashboard 全栈死代码:useDashboardStore、dashboardClient、22个关联组件
删除 6650+ 行死代码:useDashboardStore.tsx(1666)、dashboardClient.ts(576)、CitySidebar/DetailPanel/PanelSections/ProbabilityDistribution 及关联 CSS、9个 opportunity-* 模块、ModelEvidencePanel/AiPinnedCityCard/MobileDecisionCard/AiPinnedForecastView/useAiPinnedCityWorkspace。scan-root-styles 清理 6 个无用 CSS 导入。
|
2026-05-25 17:11:12 +08:00 |
|
2569718930@qq.com
|
33f0ee48b2
|
修复 shenzhen 重复键,移除旧 ZGSZ 条目
|
2026-05-25 06:12:05 +08:00 |
|
2569718930@qq.com
|
bf4be0436b
|
完成 lau fau shan → shenzhen 全量重命名,前端库和文档同步更新
|
2026-05-25 06:10:54 +08:00 |
|
2569718930@qq.com
|
ce667ba1b6
|
气温走势图:多模型逐小时预测曲线 + API 新增 models_hourly 字段
city_payloads 新增 models_hourly 包含 per-model hourly_forecasts。LiveTemperatureThresholdChart 渲染多模型曲线替代点预测卡片。CityDetail 类型新增 models_hourly。
|
2026-05-25 05:58:15 +08:00 |
|
2569718930@qq.com
|
a2da66ca5e
|
移除 AI prompt 中 EMOS/CRPS 禁令文本
EMOS/CRPS 从未在项目中实现,仅存在于 AI prompt 的禁止列表和历史文档中。
|
2026-05-25 05:18:26 +08:00 |
|
2569718930@qq.com
|
074ad1c36c
|
撤除终端内联支付:订阅按钮统一跳转 /account
删除 useTerminalPay.ts、billing-utils.ts,SubscriptionGate 恢复为 <Link href=/account>,全站支付入口统一到账户页。
|
2026-05-25 03:38:15 +08:00 |
|
2569718930@qq.com
|
3534f759d0
|
终端内直接弹出 UnlockProOverlay:订阅支付无需跳转账户页
新增 useTerminalPay hook 和 billing-utils 纯函数,SubscriptionGate 集成支付弹窗。
用户点击订阅后原地弹窗 → 连接钱包 → 链上支付 → 自动刷新进入终端。
|
2026-05-25 02:14:21 +08:00 |
|
2569718930@qq.com
|
e4d123d94d
|
重构首页为机构落地页,新增终端路由,时区感知 Polymarket 市场发现
|
2026-05-25 00:16:53 +08:00 |
|
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
|
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
|
89a82b5fb5
|
@
优化分析漏斗标签文案:付费相关节点更准确
- "点击付费" → "点击高级功能"
- "看到入口" → "看到付费墙"
@
|
2026-05-21 17:08:51 +08:00 |
|
2569718930@qq.com
|
2f9889d63a
|
修复后台漏斗无数据:埋点默认启用、补全 signup_completed 和 dashboard_active 事件上报
|
2026-05-20 20:13:18 +08:00 |
|
2569718930@qq.com
|
6f7e847b01
|
添加后台 Telegram 审计面板
|
2026-05-20 17:12:32 +08:00 |
|
2569718930@qq.com
|
66512d2623
|
完善后台管理功能:订阅管理增强、训练精度面板、支付记录查询
|
2026-05-20 16:50:19 +08:00 |
|
2569718930@qq.com
|
05f5d3c2dd
|
添加后台支付成功记录列表
|
2026-05-20 14:12:35 +08:00 |
|
2569718930@qq.com
|
5e4070ad27
|
feat(ops): add rich analytics charts for overview, health, and payments pages
|
2026-05-20 09:48:12 +08:00 |
|
2569718930@qq.com
|
72e93f8e93
|
Optimize multi-model caching and frontend revalidation
|
2026-05-20 08:58:16 +08:00 |
|
2569718930@qq.com
|
b93a75516d
|
移除未使用的 Groq 和 Meteoblue 服务代码及配置
|
2026-05-19 00:05:07 +08:00 |
|
2569718930@qq.com
|
2fa27f54ac
|
修复转化漏斗:前后端数据格式对齐,正确解析 events/rates 结构
|
2026-05-18 21:29:06 +08:00 |
|
2569718930@qq.com
|
073d0efbb0
|
后台管理系统基础框架:侧边栏布局、9 个页面模块、共享类型和 API 客户端
|
2026-05-18 20:10:08 +08:00 |
|
2569718930@qq.com
|
44e8921e5c
|
前端移除 Lagos 城市及相关本地化文案
|
2026-05-17 22:59:58 +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
|
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
|
a83200d505
|
Fix Ankara decision chart model coverage
|
2026-05-17 19:12:28 +08:00 |
|
2569718930@qq.com
|
c60baaa1e8
|
feat: implement utility modules and AI-pinned city dashboard components for temperature forecasting
|
2026-05-17 14:33:23 +08:00 |
|
2569718930@qq.com
|
8e2317592d
|
feat: implement chart utilities for temperature forecasting, calibration, and observation processing
|
2026-05-16 22:19:10 +08:00 |
|
2569718930@qq.com
|
80ca892611
|
回退 debTemps 首尾填充,修复 canvas CSS 无尺寸导致的图表缩塌
- 首尾填充会画成水平直线不反映预测,回退;past_days=1 已从后端补齐全天数据
- canvas 保留 width/height:100% 但去掉 !important,Chart.js 自管分辨率
|
2026-05-16 22:05:09 +08:00 |
|
2569718930@qq.com
|
a24185e6dc
|
DEB 预测线填充首尾空值,确保全天 00:00-23:00 铺满
|
2026-05-16 21:40:56 +08:00 |
|
2569718930@qq.com
|
4a938395be
|
修复温度曲线三个渲染问题:数据点过少、张力过高、canvas被CSS拉伸
- 小时数据插值为每半小时一点(24→47点)
- 全线 tension 从 0.28-0.32 降至 0.1-0.12
- 移除 canvas CSS width/height !important 声明,交由 Chart.js ResizeObserver 管理
|
2026-05-16 21:30:47 +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
|
861b394e49
|
跑道观测推送时间修正为AMSC/AMOS观测时间,显示HH:MM格式
|
2026-05-15 17:49:37 +08:00 |
|
2569718930@qq.com
|
4cc579ccb3
|
feat: add AMSC runway observations
|
2026-05-15 01:41:49 +08:00 |
|
2569718930@qq.com
|
f9154ff0f2
|
修复 Istanbul/Ankara MGM 实测链接指向机场站点页面
Istanbul: mgm.gov.tr → mgm.gov.tr/?il=Istanbul&ilce=Istanbul Havalimani
Ankara: mgm.gov.tr → mgm.gov.tr/?il=Ankara&ilce=Esenboga
|
2026-05-15 00:41:53 +08:00 |
|
2569718930@qq.com
|
c9d03fd3e1
|
feat: implement dashboard state management, API proxy layer, and modular UI components for weather monitoring and payments
|
2026-05-14 15:05:13 +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 |
|
2569718930@qq.com
|
6c4f43fba6
|
Aurora→Denver 重命名 + 接入 MADIS HFMETAR 5 分钟数据源
|
2026-05-14 01:09:17 +08:00 |
|
2569718930@qq.com
|
40f231b76d
|
优化 Vercel Fluid CPU:API加CDN缓存、缩小middleware范围、跳过公共API的Supabase身份转发
- 7条GET路由加 s-maxage + stale-while-revalidate,fetch 改为 next revalidate
- middleware matcher 从全匹配缩小到9条需auth的路径,移除 isStaticAsset
- 8条公共API路由加 includeSupabaseIdentity: false
- backend-auth getSession 为空时跳过 getUser
- subscription-help 加 I18nProvider,移除 force-dynamic → 静态预渲染
- next.config.mjs 加静态资源 immutable 缓存头
Tested: npx tsc --noEmit 通过,npm run build 通过
|
2026-05-13 14:23:04 +08:00 |
|
AmandaloveYang
|
c50a057562
|
首尔、釜山不再展示周边站(AMOS 跑道传感器已取代 KMA 站网)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-11 18:11:03 +08:00 |
|
AmandaloveYang
|
55bb06d213
|
移除 Masroor Air Base 机场城市(数据源、别名、时区、前端面板、文档、测试)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-11 16:39:04 +08:00 |
|
2569718930@qq.com
|
b26ec05b81
|
AMOS 跑道温度范围:城市决策卡头部展示"跑道实况 14.6~15.2℃"
后端:
- amos_station_sources.py 新增 runway_temp_range (跑道温度 min,max)
- 取所有有效跑道温度的最小值和最大值
前端:
- CityCardHeader 新增 observedLabel prop(标签自定义)
- 有 AMOS 数据时显示"跑道实况"替代"当前温度"
- 温度展示格式:14.6~15.2℃(跑道温度范围)
- 无 AMOS 时回退原有 METAR 温度显示
|
2026-05-10 20:19:48 +08:00 |
|
2569718930@qq.com
|
23e5d10f65
|
Fix Korean AMOS runway parsing
|
2026-05-10 19:34:18 +08:00 |
|
2569718930@qq.com
|
3f351ac60c
|
Busan 机场观测面板:METAR 数据兜底展示
问题:AMOS 仅支持仁川 RKSI,釜山 RKPK 无法获取跑道级数据
解决:AmosRunwayPanel 新增 airportCurrent 回退模式
- 有 AMOS 数据时:展示完整跑道卡片网格(首尔/仁川)
- 无 AMOS 时:展示单张机场观测卡片(釜山/所有其他机场)
包含:温度、风向风速、气压 QNH、能见度
标注数据来源(METAR/AMOS)和是否过旧
- AirportCurrentConditions 类型新增 pressure_hpa 字段
这样首尔有完整的 4 对跑道数据,釜山至少展示机场官方观测值
|
2026-05-10 18:58:42 +08:00 |
|
2569718930@qq.com
|
fe3f48f255
|
城市决策卡新增 AMOS 跑道温度面板
- 新增 AmosRunwayPanel 组件:展示每条跑道的温度/露点/能见度/RVR/风速
- 跑道卡片网格布局 (auto-fit minmax 160px)
- 每条跑道独立显示:跑道编号、温度(含露点)、能见度、RVR、风速范围
- 官方 METAR 标签 vs 跑道中位数标签
- CityDetail 类型新增 AmosData 接口
- 暗色/浅色主题均已适配
- 仅首尔/釜山(有 AMOS 数据)时显示
|
2026-05-10 18:30:59 +08:00 |
|
2569718930@qq.com
|
d94476f943
|
UX 审查修复:统一修正术语、图表"现在"标记、专业术语解释、异常行动建议
P0-1 术语统一:
- WeatherDecisionBand 改用"上修/下修/维持"替代"偏高温/暂不追/等待确认"
- 与 AI 后端提示词使用的术语体系一致
P0-9 图表"现在"标记:
- chart-utils.ts 导出 currentIndex
- AiCityTemperatureChart 在 currentIndex 处绘制竖线(蓝色虚线)
P0-13 专业术语解释:
- DataFreshnessBar 新增 labelTitle 属性(hover tooltip)
- METAR → "机场气象观测报文" / "Meteorological Aerodrome Report"
- HKO → "香港天文台官方实测" / "Hong Kong Observatory official readings"
P0-16 异常行动建议:
- primaryReason 追加行动指引(实测突破→建议关注偏高温区间等待确认 / 峰值已过→建议避免追高 / 观测过旧→建议等待新报文)
P1-8 DEB 路径分段样式:
- 过去部分实线(已确定),未来部分虚线(预测不确定)
P1-11 HistoryChart 单位:
- tooltip 使用 temp_symbol 替代硬编码 °
Tested: npx tsc --noEmit
|
2026-05-10 17:33:15 +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
|
ce1da6a686
|
完成产品审查剩余修复:新手指引、反馈入口、付费墙预览
P1-4:新增 WelcomeOverlay 新手指引
- 首次访问时显示 3 步引导:①从地图选城市 ②查看城市简报 ③解锁 Pro 深入分析
- 圆点进度指示、跳过/下一步按钮、点背景可关闭
- 看过一次后 localStorage 标记不再显示
P1-5:付费墙增加功能预览
- HistoryModal 在付费墙上方展示功能说明文案
- 新增 i18n 键 history.previewTitle / history.previewDesc(中英双语)
P2-9:新增反馈入口
- 顶栏增加 Telegram 反馈按钮(MessageCircle 图标)
- 点击跳转 PolyWeather 社群
Tested: npx tsc --noEmit
|
2026-05-10 16:19:21 +08:00 |
|
2569718930@qq.com
|
9635387beb
|
移除日历视图:功能与决策卡重叠,维护成本高于价值
- 删除 CalendarView.tsx、calendar-action-utils.ts 及其测试文件
- 删除 ScanTerminalCalendar.module.css
- ScanTerminalDashboard:移除日历 tab 按钮、日历渲染分支、ContentView 类型中的 calendar
- ScanTerminalLightTheme:清理所有 .scan-calendar-* 规则(~40 行)
- scan-root-styles.ts:移除 ScanTerminalCalendar 导入
同时完善地理排序:
- scan_terminal_filters.py:market_region_from_tz_offset 细化为 7 个区域(东亚/东南亚/中亚/西亚/欧洲非洲/南美/北美)并增加 sort_order
- scan_terminal_city_row.py:传递 trading_region_sort
- dashboard-types.ts:增加 trading_region_sort 字段
- decision-utils.ts:sortRowsByUserTime 按 trading_region_sort 优先排序
Rejected: keep-calendar-view, calendar-actions-overlap-with-decision-cards
Tested: npx tsc --noEmit, python -m ruff check .
|
2026-05-10 15:48:18 +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 |
|