Skip to content

Fix Agentic cross-hardware engine selection#579

Merged
adibarra merged 9 commits into
masterfrom
fix/agentic-cross-hardware-engine-selection
Jul 15, 2026
Merged

Fix Agentic cross-hardware engine selection#579
adibarra merged 9 commits into
masterfrom
fix/agentic-cross-hardware-engine-selection

Conversation

@adibarra

@adibarra adibarra commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Summary

  • scope Agentic STP engine exclusions to each hardware SKU
  • allow configurations such as B200 SGLang and MI355X vLLM on the same chart
  • preserve same-SKU engine conflicts and global MTP comparability restrictions
  • propagate exclusion scope through official/overlay selection handling

Verification

  • resolver smoke: cross-hardware selection allowed; same-hardware conflict blocked
  • pnpm --filter @semianalysisai/inferencex-app test:unit -- src/lib/exclusion.test.ts src/components/inference/utils/comparison-exclusion.test.ts (2,610 tests passed)
  • pnpm --filter @semianalysisai/inferencex-app exec cypress run --component --spec cypress/component/scatter-graph.cy.tsx (16 tests passed)
  • pnpm typecheck
  • changed-file oxfmt --check

Note

Medium Risk
Changes core legend/GPU selection and comparability logic for Agentic charts; mistakes could show incomparable engines together or block valid comparisons, but behavior is heavily unit- and component-tested.

Overview
Agentic Traces STP engine rules no longer treat different GPUs as one global engine pick. Exclusion specs gain optional scope: 'hardware' and compiled rules expose scopesOf, so cross-engine STP is blocked only on the same SKU (e.g. B200 SGLang vs B200 vLLM) while mixes like B200 SGLang and MI355X vLLM can stay on one chart. Global MTP cross-engine limits are unchanged.

The exclusion resolver (pickStickyGroup, toggles, legend universe) resolves conflicts per scope, correlates global MTP with hardware STP when picking a sticky engine, and reports partial families when one engine remains on another GPU. effectiveLegendItems accepts a remembered multi-GPU selection so solo/restore-all does not drop idle SKUs or forget each hardware’s engine.

InferenceContext passes scopesOf for official/overlay keys, keeps preferredHwTypesRef for legend toggles, and surfaces conflict toasts when resolution is partial. Toast copy distinguishes partial vs whole-family drops.

Tests cover resolver behavior, comparison-exclusion matrix, toast messaging, and Cypress scatter/table scenarios aligned with hardware-scoped STP.

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

@vercel

vercel Bot commented Jul 15, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
inferencemax-app Ready Ready Preview, Comment Jul 15, 2026 1:56pm

Request Review

Comment thread packages/app/src/lib/exclusion.ts Fixed
Comment thread packages/app/src/lib/exclusion.ts
Comment thread packages/app/cypress/component/scatter-graph.cy.tsx
Comment thread packages/app/src/lib/exclusion.ts
Comment thread packages/app/src/lib/exclusion.ts
Comment thread packages/app/src/lib/exclusion.ts
Comment thread packages/app/src/lib/exclusion.ts
Comment thread packages/app/src/lib/exclusion.ts

@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 f8cb82f. Configure here.

Comment thread packages/app/src/components/engine-comparison-conflict-toast.tsx Outdated
@adibarra adibarra merged commit cdc270c into master Jul 15, 2026
26 checks passed
@adibarra adibarra deleted the fix/agentic-cross-hardware-engine-selection branch July 15, 2026 14:12
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