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
2569718930@qq.com
118d4e44df
This version of Antigravity is no longer supported. Please upgrade to receive the latest features.
2026-05-01 11:37:09 +08:00
2569718930@qq.com
113c0131b5
This version of Antigravity is no longer supported. Please upgrade to receive the latest features.
2026-05-01 11:17:20 +08:00
2569718930@qq.com
9d0570a36b
This version of Antigravity is no longer supported. Please upgrade to receive the latest features.
2026-05-01 11:11:17 +08:00
2569718930@qq.com
569f3eef97
Make weather-market UI reliable before shipping
...
Proxy routes now share one upstream-error adapter so client-actionable statuses such as auth, entitlement, validation, and rate limits survive the BFF instead of becoming opaque 502s. The scan terminal mobile overrides also load last and remove desktop rail constraints so phones get a single readable column.
Constraint: Mobile users reported the dashboard was unreadable, and BFF proxy errors were masking expected client states.
Rejected: Let every route keep bespoke error JSON | continued inconsistent status codes and production detail leakage.
Confidence: high
Scope-risk: moderate
Directive: Keep ScanTerminalMobile.module.css imported after desktop scan-terminal CSS so mobile breakpoints win.
Tested: npx tsc --noEmit --pretty false --project frontend/tsconfig.json
Tested: npm run build
Tested: npm run test:business
Tested: Chrome mobile smoke test at 390px with no horizontal overflow
Not-tested: Real device Safari/Android manual QA
2026-04-29 11:22:49 +08:00
2569718930@qq.com
a77d613c2b
Move weather summaries out of the dashboard utility bulk
...
Weather labels, METAR translation, risk badges, and hero meta chips were still embedded in dashboard-utils even though panel, modal, and detail views use them as focused presentation helpers. This moves them into weather-summary-utils while keeping dashboard-utils re-export compatibility.
Constraint: Preserve existing weather/METAR/risk/hero meta wording.
Rejected: Move airport narrative in the same pass | it has broader AI narrative coupling and should be separated independently.
Confidence: high
Scope-risk: narrow
Reversibility: clean
Tested: TypeScript diagnostics for weather-summary-utils, dashboard-utils, PanelSections, DetailPanel, and FutureForecastModal
Tested: npm run build
Not-tested: Visual snapshot of every weather icon/label combination.
2026-04-28 12:17:42 +08:00