[ai slop, not humna veirifed] feat(overview): add presentation and comparison controls / 新增总览演示与对比控件 - #700
Conversation
Add a focused presentation view, customizable platform columns, and 1-week, 30-day, and 2-month development-speed windows with bilingual UI and shareable URLs. 中文:新增专注的演示视图、可自定义的平台列,以及 1 周、30 天和 2 个月的开发速度区间;中英文界面与可分享 URL 同步支持。
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 3 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 53d7312. Configure here.
| document.body.style.overflow = previousOverflow; | ||
| document.removeEventListener('keydown', onKeyDown); | ||
| }; | ||
| }, [presentation]); |
There was a problem hiding this comment.
Escape exits over open dropdown
Medium Severity
In presentation mode, Escape always leaves the view even when the platform-columns MultiSelect is open. Both listeners sit on document in the bubble phase, the presentation handler is registered first, and stopPropagation does not block sibling listeners on the same node, so Escape exits presentation instead of only dismissing the menu.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 53d7312. Configure here.
| <table data-testid="overview-desktop-matrix" className="w-full border-collapse text-sm"> | ||
| <caption className="sr-only"> | ||
| {comparisonMode === 'history' ? strings.historyCaption : strings.caption} | ||
| {comparisonMode === 'history' ? strings.historyCaption(historyDays) : strings.caption} |
There was a problem hiding this comment.
Sticky offset gap in presentation
Medium Severity
The desktop matrix keeps sticky top-14 in presentation mode. That offset exists to clear the site header, but presentation covers the header with a fullscreen overlay, so the stuck column headers leave an empty band at the top while scrolling.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 53d7312. Configure here.
| presentation | ||
| ? 'fixed inset-0 z-[100] flex flex-col gap-3 overflow-auto bg-background p-3 lg:p-5' | ||
| : 'flex flex-col gap-4' | ||
| } |
There was a problem hiding this comment.
Presentation loses page scroll
Medium Severity
Entering presentation sets the page section to fixed, which pulls it out of normal flow and collapses the main content height, but the code never saves or restores window.scrollY. Exiting therefore drops users back at the top instead of their prior place on /overview.
Reviewed by Cursor Bugbot for commit 53d7312. Configure here.


Summary
Addresses the latest
/overviewfeedback with three complementary controls:?hw=.?compare=7d|30d|60d. Each view compares current results with the latest validated result in the corresponding bounded historical window.Validation
bun run fmtbun run lintbun run typecheckE2E_FIXTURES=1 bun run build— 929 static pages generatedoverview.cy.tsin headless Chrome — 29/29 passedLocal broad-suite notes: the MCP workspace currently fails during setup on current
masterwithz.enumundefined before its tests execute; the quick smoke launcher also expects Cypress 15.19 while the available local binary is 15.17. The focused overview suite ran successfully with that available binary, and GitHub Actions remains the authoritative broad browser run.中文说明
本 PR 针对最新的
/overview反馈补充三类互相配合的控件:?hw=可直接分享当前列配置。?compare=7d|30d|60d分享。每个视图都会在对应的有界历史窗口内选取最近一次有效结果,与当前结果比较。中文验证说明
bun run fmtbun run lintbun run typecheckE2E_FIXTURES=1 bun run build:成功生成 929 个静态页面overview.cy.ts:29/29 通过本地广泛测试说明:当前
master的 MCP workspace 在测试执行前即因z.enum未定义而初始化失败;快速 smoke 命令需要 Cypress 15.19,而本地可用二进制版本为 15.17。聚焦的总览 E2E 已使用该可用版本完整通过;GitHub Actions 仍是广泛浏览器覆盖的权威结果。Note
Medium Risk
Changes overview URL resolution, historical benchmark window math, and matrix assembly paths used by EN/ZH pages and the overview JSON API; risk is moderate due to breadth across UI and data layers rather than auth or payments.
Overview
Extends
/overviewwith shareable view controls and a cleaner comparison UX.Development-speed history replaces the single “30-day change” mode with 1 week / 30 days / 2 months (
?compare=7d|30d|60d). Baseline windows scale with the chosen length (target = N days back, floor = 2N). Copy and methodology text are parameterized by that window in EN/ZH.Visible platform columns are user-selectable via a multi-select (
?hw=), canonical order, at least one platform, and preserved across tier/engine/compare/locale navigation.Presentation view is a full-viewport mode: compact desktop matrix, mobile list hidden, body scroll locked, comparison switcher hidden, exit via button or Escape.
Server pages,
/api/v1/overview, link builders, and soft navigation all threadhistoryDaysandvisibleHardware; matrix rendering filters columns by selection.Reviewed by Cursor Bugbot for commit 53d7312. Bugbot is set up for automated code reviews on this repo. Configure here.