Skip to content

fix(inference): allow mixed engines in unofficial previews / 修复:允许非官方预览混合显示多个引擎#576

Merged
cquil11 merged 1 commit into
masterfrom
agent/unofficial-multi-engine-preview
Jul 14, 2026
Merged

fix(inference): allow mixed engines in unofficial previews / 修复:允许非官方预览混合显示多个引擎#576
cquil11 merged 1 commit into
masterfrom
agent/unofficial-multi-engine-preview

Conversation

@cquil11

@cquil11 cquil11 commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #575. Unofficial-run preview mode is diagnostic, so it should allow results from multiple engine families to remain visible on the same graph.

  • Bypass the production engine-family exclusion when ScatterGraph has unofficial overlay data.
  • Keep official and unofficial series active together during rendering, legend toggles, and reset.
  • Preserve mixed-engine official and overlay rows in table mode and across preview scope changes.
  • Keep the existing cross-engine guard unchanged for official-only comparisons.

Root cause

#575 changed the sticky engine family from the official selection to the unofficial overlay. That made the overlay visible, but it still resolved the combined selection down to one engine family and hid the conflicting official series. Preview mode needs to bypass that restriction rather than choose which side wins.

Tests

  • tsc --noEmit
  • oxlint and oxfmt on changed files
  • Vitest: 2,985 tests passed across app, constants, DB, and MCP packages
  • Cypress component suite: 178 tests passed
  • Focused scatter-graph.cy.tsx: 12 tests passed, including mixed-engine rendering, table rows, scope changes, legend selection, and the official-only guard
  • Full local Cypress integration run: all inference and unofficial-overlay specs passed; 9 of 481 assertions failed in unrelated redirect/evaluation/feature-gate selector timing paths under the local webpack fallback

Overlay support

This change applies specifically to ?unofficialrun= / ?unofficialruns= previews. It covers both official and overlay data paths, respects active overlay hardware filters, and keeps dismissal/reset behavior intact. Preview deployment verification with a real unofficial run will be added once the deployment is available.

中文说明

这是 #575 的后续修复。非官方 run 预览用于诊断和对比,因此同一图表应允许同时展示多个引擎家族的结果。

  • ScatterGraph 存在非官方 overlay 数据时,绕过生产环境的引擎家族互斥规则。
  • 渲染、图例切换和重置时同时保留官方与非官方系列。
  • 表格模式及预览范围切换后,继续展示跨引擎的官方行和 overlay 行。
  • 纯官方对比仍保持现有的跨引擎限制,不改变生产对比行为。

根因

#575 只是将“粘性”引擎家族从官方选择改为非官方 overlay。这样虽然能显示 overlay,但合并后的选择仍会被压缩为单一引擎家族,冲突的官方系列会被隐藏。预览模式不应决定哪一方优先,而应完全绕过这项限制。

测试

  • tsc --noEmit
  • 对变更文件运行 oxlintoxfmt
  • Vitest:app、constants、DB 和 MCP 共 2,985 项测试通过
  • Cypress 组件测试:178 项通过
  • 聚焦的 scatter-graph.cy.tsx:12 项通过,覆盖跨引擎渲染、表格行、范围切换、图例选择及纯官方限制
  • 本地完整 Cypress 集成测试中,所有 inference 和非官方 overlay 相关 spec 均通过;481 项断言中有 9 项在无关的重定向、evaluation 与功能开关选择器时序路径失败(本地使用 webpack 回退模式)

Overlay 支持

本变更专门作用于 ?unofficialrun= / ?unofficialruns= 预览,同时覆盖官方与 overlay 数据路径,遵守启用中的 overlay 硬件过滤,并保持关闭 run 与重置行为不变。部署可用后,将使用真实非官方 run 补充预览环境验证结果。


Note

Medium Risk
Behavior changes only when unofficial overlay data is loaded, but it affects legend selection, table rows, and overlay reconciliation—areas users rely on for comparing runs across engines.

Overview
Unofficial-run preview (?unofficialrun=) is treated as diagnostic: official and overlay series from different engine families can stay on the same chart and table instead of being collapsed to one family.

ScatterGraph skips resolveComparisonSelection whenever overlayData is present, so rendering and legend state keep the full combined selection. Legend toggles use plain computeToggle instead of the production toggleComparisonSelection guard, and reset selects all scoped series without overlay-preferring sticky resolution. Official-only charts still run the existing cross-engine exclusion.

ChartDisplay aligns table/export row visibility with that policy: overlay scoping no longer runs the production comparison resolver, and visibleComparisonRows filters official and overlay rows by active keys only.

Cypress expectations are updated for mixed-engine preview (chart opacity, table row counts, scope changes).

Reviewed by Cursor Bugbot for commit cd37863. Bugbot is set up for automated code reviews on this repo. Configure here.

Bypass production engine-family exclusions while an unofficial overlay is present so official and unofficial results can render, toggle, reset, and appear in tables together. Keep the guard unchanged for official-only comparisons.\n\n中文:非官方 overlay 预览期间绕过生产环境的引擎家族互斥规则,使官方与非官方结果可在同一图表中共同渲染、切换、重置并展示于表格中;纯官方对比仍保留原有互斥限制。
@cquil11
cquil11 requested a review from adibarra as a code owner July 14, 2026 00:33
@vercel

vercel Bot commented Jul 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
inferencemax-app Building Building Preview, Comment Jul 14, 2026 12:33am

Request Review

@cquil11
cquil11 merged commit 33f5a67 into master Jul 14, 2026
17 of 18 checks passed
@cquil11
cquil11 deleted the agent/unofficial-multi-engine-preview branch July 14, 2026 00:33

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit cd37863. Configure here.

Comment thread packages/app/src/components/inference/ui/ScatterGraph.tsx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant