55bb06d213
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
12 KiB
12 KiB
Changelog
1.6.0 - 2026-05-10
- 全面修复前端 UI 设计审查 15 项问题:消除工程债务、统一 token 体系、提升可维护性
- CSS 架构:消除 !important 滥用(134→49,仅保留 Leaflet/图表所必需项)、浅色主题重构为
html.light选择器体系 - 统一断点体系:18→10(480/640/768/960/1024/1200/1280/1360/1440/1680),对齐 Tailwind 标准
- CSS 变量迁移:10 个文件中数百处硬编码颜色(#4DA3FF/#E6EDF3/#9FB2C7/#6B7A90)替换为 token 变量
- 字体系统修复:13 个文件中所有非标准 font-weight(760/850/860/880/950)映射为 Inter 支持值
- 移除未加载的 Geist 字体声明、提升文字对比度 #6B7A90→#7D8FA3
- 修复 accent-green 类错误渲染为蓝色、accent-primary 与 accent-secondary 相同值问题
- 创建 scan-root-styles.ts 桶文件,将 22 个 CSS Module 导入合并为 1 个
- 添加全局 :focus-visible 轮廓环、跳过链接、Tab ARIA 属性
- 添加统一的 empty/error/retry 状态组件、prefers-reduced-motion 支持
- 去重 @keyframes:spin 4→1、loading-spin 2→0、pulse-pending 移至全局
- 添加 CSS 渐变品牌 Logo、按钮层级文档化
- 移除 dead code(1,697 行):public/static/style.css + public/legacy/index.html
- Dashboard.module.css 本地变量桥接至全局 token
- 清理冗余文档:移除 FRONTEND_REDESIGN_REPORT.md、TECH_DEBT.md 重复文件、AGENTS.md
- 参考:docs/frontend-ui-design-review.md 完整修复记录
1.5.5 - 2026-04-27
- Dashboard 新增 v1.5.5 升级公告,提示所有会员已额外延长 7 天,并集中说明 DeepSeek 机场报文解读、日历行动视图、本地时间峰值窗口和 AI 证据护栏
- 城市决策卡空状态与市场不可用文案产品化:将“未接入/缺失”改为“市场价格暂不可用,天气判断仍可参考”,避免用户误以为系统故障
- 城市决策卡新增“为什么推荐/为什么不推荐”短句,优先解释实测突破、峰值窗口已过、METAR 过旧、市场暂不可用或模型一致等关键原因
- 移动端城市决策卡前置当前温度、预测高点和峰值时间;长 AI 解读在手机端默认折叠,可展开查看,市场价格单独成行展示
- 新增 Qingdao / 青岛城市,结算锚点接入 Wunderground 青岛胶东国际机场
ZSQD历史页,并补齐别名、时区、预热、官方来源和前端地区归类 - 城市决策卡顶部状态标签收口为 2-3 个高优先级信号,优先展示“实测突破 / 峰值窗口已过 / METAR 过旧 / AI 解读中 / 市场价暂不可用 / 模型高度一致 / 需要等待下一报文”,让用户第一眼看到重点
- 城市决策卡 AI 机场报文区明确拆分“快速判断已完成,AI 正在补充机场报文细节… / AI 机场报文解读已完成 / AI 解读未完整返回,当前使用规则证据”三种状态,减少 fallback 与流式返回造成的误解
- 城市决策卡新增“数据新鲜度”区块,分别展示 METAR/官方观测、模型、市场价格和 AI 状态;过旧观测会标明“仅作背景参考”
- 日历视图升级为行动视图,按“现在可看 / 1-3 小时内 / 今天稍后 / 已过峰值,等待确认”分组,并为每个城市显示一句核心原因
- 城市决策卡新增 AI 机场报文解读缓存说明:页面内存缓存保留 loading / 流式片段 / 最终结果,
localStorage保存最终成功 payload,后端 AI 缓存不再因local_time变化失效 - 城市决策卡兜底文案明确标记“快速证据模式”,避免在 DeepSeek 未完整返回时误写成“AI 机场报文解读正常”
- 城市决策卡流式 AI 解读改为只请求 METAR/官方观测核心解读与判断依据,最高温中枢、模型一致性和风险清单由后端规则补齐,减少等待时间
- 城市决策卡兜底判断新增实测突破识别:当最新 METAR/观测已高于 DEB 中枢或模型上沿时,改为提示最高温中枢需要上修
- 城市决策卡兜底判断补充实测偏低和峰值窗口已过分支:峰后未追上模型时提示下修压力,峰前偏低时只提示等待确认
- 城市决策卡新增过旧 METAR/观测识别:过旧报文只作为背景参考,不再触发强实况锚点、上修或下修判断;AI 缓存键同步纳入观测时间与 stale 状态
- 城市决策卡新增 AI 结果后处理护栏:完整 DeepSeek 返回若与过旧观测、实测突破、峰后下修等确定性证据冲突,会以后端规则覆盖关键数值和结论文案
- 城市决策卡新增状态标签与数据新鲜度提示,直接标出 AI 是否完成、市场价格是否同步、METAR/官方观测是否过旧或已突破模型区间,减少用户等待和误读
- 后端 Scan Terminal 代码拆出
scan_city_ai_helpers.py,将城市 AI JSON 解析、fallback 文案、schema completion 与证据护栏从主服务文件中剥离,降低后续维护成本 - 城市决策卡市场层改用完整
all_buckets并严格识别 exact / range / or higher / or lower 温度桶方向,避免最高温中枢错配到不合理尾部桶 - 温度桶标签统一规范化
C/F/°C/°F,修复31°°C这类重复单位展示 - 决策卡展示文案将“概率差”收口为“模型-市场差”,明确口径为
模型概率 - 市场隐含概率 - Scan Terminal 新增日历视图:按城市 + 日期去重、按峰值窗口倒计时分组,并在卡片中同时展示用户电脑本地时间与城市窗口
- 日历视图只保留未来 12 小时内或峰后 3 小时内的可行动窗口,避免 London 这类距离峰值过久的城市过早占用日历
- README、前端 README、API 文档和网页
/docs文档同步补充城市决策卡、AI 机场报文解读组成、缓存策略和市场层解释
1.5.4 - 2026-04-18
- 今日日内分析升级为专业气象判断台:主判断、置信度、基准/上修/下修路径、下一观测点、证据链、失效条件和确认条件前置展示
- 日内分析弹窗新增显式
today/future模式,修复点击“今日日内分析”偶发进入未来日期分析布局的问题 - 日内分析在 full detail / market scan 同步完成前锁住旧内容,避免刷新期间短暂展示错误城市、错误日期或旧缓存数据
- 右侧详情面板识别稀疏 detail / 单日 forecast 中间态,并显示同步占位卡,避免用户把未补齐数据误认为完整结果
- 概率区改为“校准模型概率”:有 LGBM 时展示 LGBM 校准概率;模型共识与市场价格降级为辅助参考
- 模型层补齐 DWD ICON、ECMWF AIFS、ECCC GEM/GDPS/RDPS/HRDPS 等开放模型说明,并明确 AIFS 不称作“AI 预报”
- 新增 / 补齐 Manila、Karachi 等城市说明;机场市场以 METAR / 机场主站为结算锚点,Wunderground 仅作为历史页面或参考入口
- 历史对账、模型栈、LGBM、监控、前端 README 与网页
/docs文档同步更新到当前产品口径
1.5.3 - 2026-04-10
- 东京新增
JMA AMeDAS羽田 10 分钟官方增强层,只取温度并作为机场周边官方参考 - 韩国官方增强层补齐
KMA接入链,与METAR锚点保持分离 - 城市点击交互恢复地图
flyTo放大动画,并补回明确的 loading 提示 - 城市点击后新增地图顶部同步提醒与详情面板内同步徽标,降低“看起来像卡住”的误判
- 城市 detail 现在会识别“单模型 / 单日”的稀疏缓存并自动强刷,修复“模型只剩 DEB / 多日预报只剩今天”这类残缺展示
- 前端多日预报在窄面板下改为可横向滚动,并对稀疏日序列给出刷新提示
/ops与/api/system/status新增 prewarm worker 运行态、heartbeat、summary/detail/market 统计,以及缓存桶状态与 summary cache hit/miss- 新增 Dashboard 定向预热脚本、后台 worker 和 docker service,支持热点城市 summary/detail/market 预热
- 共享天气采集 HTTP 层进一步统一到
httpxhelper,并补齐短重试与错误分类 - 今日日内分析改造成更交易化的工作台结构:
锚点状态 / 当前节奏 / 当前命中胜率 / 模型区间与分歧 / 今日日内结构信号 - 今日日内结构解读新增可选
Groq改写层,失败时自动回退到规则文案 - 文档统一更新到
v1.5.3,补充预热 worker、Groq、Vercel 节流与官方增强站网说明
1.5.1 - 2026-03-23
/ops页面增加管理员守卫,前后端双层限制管理员访问/ops支持会员列表、支付异常单、用户查询、周榜和手动补分/ops支付异常单支持按原因筛选、标记已处理,并补充支付异常审计视图- 会员列表支持按
user_id去重,并优先回补 Supabase Auth 邮箱/注册时间 - 新增按邮箱补跑订阅恢复脚本
scripts/reconcile_subscription_by_email.py - 支付确认失败(如
receiver_mismatch)现在会明确落failed,并写入 SQLite 审计事件 - 支付前强制重新拉取
/api/payments/config,并校验最新地址、允许域名和当前支付上下文 - 浏览器钱包选择补齐 EIP-6963 发现、稳定去重和绑定后账户状态即时刷新
- 城市详情页新增
官方参考 / Official Sources区块,覆盖主要城市的官方机构/机场/METAR 链接 - “今日日内分析”结构解读改为后端同源动态短评,并统一网页与 Bot 解释口径
- 台北主结算源切换到
NOAA RCTP,按最终质控后的最高整度摄氏值展示和说明 - 浏览器插件同步台北
NOAA RCTP结算参考标签和说明 /ops手机端收口为卡片化视图,保留桌面表格- 账户中心补充本周积分显示,
weekly_points与周排行同屏展示 - Dashboard 历史对账补充“峰值前 12 小时 DEB 参考(近似)”卡片
- 历史图不再错误混入
settlement_history实测,历史样本仅按可比较样本统计 - 新增
scripts/backfill_recent_daily_actuals_from_metar.py,支持为缺失daily_records的 METAR 城市补最近 14 天actual_high - 历史接口对新接入的 METAR 城市增加自动 bootstrap,避免新增城市历史页整块空白
- 香港历史/日内展示继续坚持
HKO官方口径,不再 fallback 到VHHH METAR连续线 - 香港 HKO 当天官方点位不再落单独 JSON,统一写入 runtime state
- 今日日内结构信号按城市本地时间与峰值窗口分析,不再只看固定下午时段
- 新增高空结构信号:冲高环境、压温风险、午后扰动、冲高效率,并提供中英文说明
- 新增交易动作卡:结合高空结构、市场拥挤度与
edge_percent输出偏暖侧 / 偏谨慎 / 先观察 - 非香港机场城市新增
TAF接入,支持FM / TEMPO / BECMG / PROB30/40时间片解析 - 温度走势图新增
TAF 时段 / TAF Timing标记,并在 tooltip 中显示对应时段摘要 TAF信号与market_signal / edge_percent联动进入交易动作,提示更贴近交易语境TAF展示词已改成普通用户可读版本:基础时段 / 明确切换 / 临时波动 / 逐步转变- 日内结构总摘要补充“TAF 未新增压温不等于继续升温”的解释,避免误读
- 浏览器插件多日预报改为
DEB优先,基础判断卡补充方向、置信度与原因,并统一引流到主站首页
1.5.0 - 2026-03-21
- 运行态状态与缓存支持 SQLite 渐进迁移,新增
POLYWEATHER_STATE_STORAGE_MODE=file|dual|sqlite - 新增
/healthz、/api/system/status、/metrics - 新增支付运行态接口
/api/payments/runtime - 支付侧新增 SQLite 审计事件、事件重放脚本与多 RPC 容灾支持
- 新增支付静态审计脚本与 V2 合约升级草案
- 统一周积分显示口径,
/top中“我的状态”改为累计发言/本周排名/本周积分 - 文档同步更新为 2026-03-20 当前状态
1.4.0 - 2026-03-14
- 统一收费阶段产品口径,发布 PolyWeather Pro
v1.4.0 - 前端交付覆盖账户、支付、权限展示与缓存策略
- 支付链路支持 intent -> submit -> confirm 与自动补单
- 文档统一切换到单一版本源管理