Commit Graph

45 Commits

Author SHA1 Message Date
2569718930@qq.com 426bd7deab 统一城市决策卡 Pro 门禁:游客和免费用户点击 Today 引导至账户页 2026-05-18 19:06:04 +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 6c08a68413 @
性能与用户体验全面优化

    前端性能:
    - 移除 Three.js 依赖(~600KB),天气粒子改为纯 CSS 动画 + Canvas 2D
    - Google Fonts 切换为 next/font 自托管,消除跨域字体请求
    - 合并 ScanTerminalLightTheme.module.css (37KB) 到主 CSS,亮/暗主题统一用 CSS 变量
    - 新增 /api/dashboard/init 聚合端点,首次加载 4 次往返 → 1 次
    - 添加 Service Worker 静态资源缓存,修复 PWA manifest 配置

    用户体验:
    - 新增全局错误边界 error.tsx / global-error.tsx,崩溃不再白屏
    - 决策卡和城市详情的更新时间改为相对时间("15秒前"),每秒自动刷新
    - 数据陈旧时状态标签从青色切换为琥珀色提示

    DEB 算法增强:
    - 市场扫描路径接入 Open-Meteo 多模型数据(ECMWF/GFS/ICON/JMA/HRDPS 等)
    - MAE 计算加入时间衰减(decay_factor=0.85),近期模型误差权重更高

    Scope-risk: MEDIUM — 全量 170 测试通过,前端 TypeScript/build 通过,ruff 零告警
    Tested: python -m pytest -q (170 passed), npx tsc --noEmit (0 errors), npm run build (success), ruff check .
@
2026-05-14 21:31:05 +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 de0f037bf4 产品体验修复:P0 阻塞 + P1/P2 改善(产品审查 14 项中修复 10 项)
P0 阻塞:
- Pro 加载不再阻塞整个看板:只显示精简顶栏 + 加载状态,不再遮盖整个页面
- Scan 失败加重试按钮:所有用户(含免费)均可手动重试
- Detail Panel 同步超时后显示提示:"同步时间较长,当前展示的数据可能不完整"

P1 体验:
- 登录页增加"忘记密码"链接:调用 Supabase 密码重置流程
- 登录失败/邮箱未验证增加明确提示:"如刚注册,请先点击验证链接"
- 公告横幅增加 ✕ 关闭按钮:点击后永久隐藏

P2 改善:
- entitlement-required 页面重设计:品牌化、增加返回首页和登录按钮
- 订阅帮助页中英双语:所有 FAQ 和 UI 文案支持中英文切换
- 新增产品审查文档 docs/product-review-jun-2026.md

Tested: npx tsc --noEmit
2026-05-10 16:13:34 +08:00
2569718930@qq.com 2b1d7c0b65 Improve dashboard maintainability before the next release
The dashboard had several oversized orchestration, component, and CSS files that made product-copy changes and mobile/performance work risky. This refactor preserves behavior while splitting scan terminal CSS, opportunity helpers, future forecast panels, history/detail charts, and probability/model sections into smaller ownership boundaries.

Constraint: No user-visible version bump because this batch is architecture and performance cleanup, not a release announcement.

Rejected: Rewrite dashboard state management in the same batch | too broad for a safe upload after CSS and component splitting.

Confidence: high

Scope-risk: moderate

Reversibility: clean

Directive: Keep new component/CSS boundaries instead of moving product copy back into the large dashboard files.

Tested: npm run build; npm run test:business; git diff --check

Not-tested: Browser visual smoke test after push
2026-04-28 20:19:17 +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
2569718930@qq.com ecbba9160d Let chart views avoid the dashboard utility bulk
The intraday chart data builder lived inside dashboard-utils with observation-source and TAF helpers, so chart consumers had to depend on the large dashboard utility surface. This moves chart data preparation, observation-source helpers, and TAF marker labels into focused modules while keeping dashboard-utils re-export compatibility.

Constraint: Preserve existing chart data shape, observation labels, TAF labels, and legacy dashboard-utils exports.

Rejected: Rewrite chart data generation while moving it | this pass is a boundary move only so visual behavior remains stable.

Confidence: high

Scope-risk: moderate

Reversibility: clean

Tested: TypeScript diagnostics for chart-utils, dashboard-utils, observation-source-utils, and taf-utils

Tested: npm run build

Not-tested: Browser visual regression across every chart city.
2026-04-28 11:58:58 +08:00
2569718930@qq.com e374ad4bf0 feat: add AI city forecast terminal and integration components 2026-04-26 10:43:14 +08:00
2569718930@qq.com f3f75c8cd8 feat: create DetailPanel component for displaying city weather data and charts 2026-04-26 07:12:26 +08:00
2569718930@qq.com 3237f95e8c feat: implement scan terminal dashboard with real-time opportunity tracking and visualization components 2026-04-26 00:24:11 +08:00
2569718930@qq.com 6c4867b757 Fix scan detail rail scrolling 2026-04-24 23:48:59 +08:00
2569718930@qq.com 5fc65cbd85 feat: implement dashboard detail panel with interactive charts and forecast modal components 2026-04-24 13:35:36 +08:00
2569718930@qq.com 79a4333aaf feat: implement PolyWeather dashboard layout with integrated map, weather visualization, and detail panels 2026-04-23 22:35:34 +08:00
2569718930@qq.com fe804bc915 Normalize Wunderground labels to METAR 2026-04-22 23:43:27 +08:00
2569718930@qq.com f521cb537e Show stale detail blocker while refreshing city data 2026-04-18 23:14:25 +08:00
2569718930@qq.com fe6477b09c Use existing loading state for sparse detail 2026-04-18 14:40:29 +08:00
2569718930@qq.com 16033033a7 Show forecast completion state in dashboard panels 2026-04-18 01:04:36 +08:00
2569718930@qq.com 2ead56f59d Simplify detail panel loading state 2026-04-16 13:21:29 +08:00
2569718930@qq.com 2e81894fd1 Remove detail summary card from the dashboard panel 2026-04-16 00:12:00 +08:00
2569718930@qq.com 26c4162f50 Simplify detail panel by removing snapshot copy and scenery 2026-04-16 00:08:29 +08:00
2569718930@qq.com 6249a00382 Refine dashboard detail panel layout 2026-04-15 23:51:54 +08:00
2569718930@qq.com c55b83a134 Remove dashboard prewarm requests 2026-04-15 15:51:08 +08:00
2569718930@qq.com baaccc6636 feat: implement multi-source weather data collection system and dashboard frontend with integrated analysis services. 2026-04-13 18:42:27 +08:00
2569718930@qq.com fef37f6b0f Add KMA nearby weather support for Seoul and Busan 2026-04-09 20:19:07 +08:00
2569718930@qq.com 1fa5645c0d feat: add DetailPanel component for displaying city-specific weather data and charts 2026-04-09 14:24:03 +08:00
2569718930@qq.com 24ef8ee8be Add loading indicators for city detail sync 2026-04-09 08:29:02 +08:00
2569718930@qq.com 799abd71b0 Show syncing state while loading city snapshot 2026-04-08 20:22:32 +08:00
2569718930@qq.com f108c9f7df Restore guest city summaries and refetch missing Pro details 2026-04-08 18:25:25 +08:00
2569718930@qq.com 0af5a84449 Keep dashboard panel visible during city detail loading 2026-04-08 12:55:12 +08:00
2569718930@qq.com c29b560401 Add app analytics tracking for paywall and checkout events 2026-03-31 07:15:54 +08:00
2569718930@qq.com ee114fb5bf Add Polymarket market link and refresh side panel docs 2026-03-30 00:09:35 +08:00
2569718930@qq.com 7caae4dceb Unify city detail panel access for guests and free users 2026-03-26 01:19:56 +08:00
2569718930@qq.com 28db3ed428 Fix guest city panel visibility and header labels 2026-03-26 00:53:38 +08:00
2569718930@qq.com 961451aeff Restore guest city panels while keeping Pro data protected 2026-03-26 00:29:14 +08:00
2569718930@qq.com 4e0ddfa771 Add bilingual docs center and replace the guide modal 2026-03-25 15:55:55 +08:00
2569718930@qq.com 75c2baf1d1 Add ops membership list and official source links 2026-03-21 13:02:07 +08:00
2569718930@qq.com 69f24ddc08 Optimize frontend performance and add route-level web vitals tracking 2026-03-18 20:38:43 +08:00
2569718930@qq.com 1ae9b55509 Add RP5 forecast scraping support 2026-03-17 23:15:13 +08:00
2569718930@qq.com aa3546e2a9 feat: Add city detail panel with weather visualizations and integrate Pro feature paywall components. 2026-03-13 09:06:45 +08:00
2569718930@qq.com 0f51780566 feat: Introduce premium map dashboard with dark theme, pro features, and payment processing. 2026-03-13 08:15:27 +08:00
2569718930@qq.com 54c4a26162 feat: Implement subscription-based premium features, payment processing, and enhanced dashboard components. 2026-03-13 06:41:33 +08:00
2569718930@qq.com 3cbef28b13 feat: Initialize PolyWeather frontend project with Next.js, including core dependencies, root layout, and a dashboard detail panel. 2026-03-11 11:14:03 +08:00
2569718930@qq.com aab4477ab3 feat: Implement the PolyWeather dashboard including frontend components, data collection, analysis, and API endpoints. 2026-03-10 04:45:40 +08:00
2569718930@qq.com 283a935f24 feat: Implement initial weather dashboard with interactive map, city details, and API integration. 2026-03-09 10:36:03 +08:00