Skip to content

enable enableJsxOutlining in React compiler config#3020

Draft
dimaMachina wants to merge 31 commits intomainfrom
enableJsxOutlining
Draft

enable enableJsxOutlining in React compiler config#3020
dimaMachina wants to merge 31 commits intomainfrom
enableJsxOutlining

Conversation

@dimaMachina
Copy link
Copy Markdown
Collaborator

@dimaMachina dimaMachina commented Apr 5, 2026

blocked by facebook/react#36217 facebook/react#36218

closes #2806

  /**
   * If enabled, this will outline nested JSX into a separate component.
   *
   * This will enable the compiler to memoize the separate component, giving us
   * the same behavior as compiling _within_ the callback.
   *
   * ```
   * function Component(countries, onDelete) {
   *   const name = useFoo();
   *   return countries.map(() => {
   *     return (
   *       <Foo>
   *         <Bar>{name}</Bar>
   *         <Button onclick={onDelete}>delete</Button>
   *       </Foo>
   *     );
   *   });
   * }
   * ```
   *
   * will be transpiled to:
   *
   * ```
   * function Component(countries, onDelete) {
   *   const name = useFoo();
   *   return countries.map(() => {
   *     return (
   *       <Temp name={name} onDelete={onDelete} />
   *     );
   *   });
   * }
   *
   * function Temp({name, onDelete}) {
   *   return (
   *     <Foo>
   *       <Bar>{name}</Bar>
   *       <Button onclick={onDelete}>delete</Button>
   *     </Foo>
   *   );
   * }
   *
   * Both, `Component` and `Temp` will then be memoized by the compiler.
   *
   * With this change, when `countries` is updated by adding one single value,
   * only the newly added value is re-rendered and not the entire list.
   */

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 5, 2026

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

Project Deployment Actions Updated (UTC)
agents-api Ready Ready Preview, Comment Apr 5, 2026 3:05pm
agents-docs Ready Ready Preview, Comment Apr 5, 2026 3:05pm
agents-manage-ui Error Error Apr 5, 2026 3:05pm

Request Review

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 5, 2026

⚠️ No Changeset found

Latest commit: 7de42e5

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel vercel Bot temporarily deployed to Preview – agents-docs April 5, 2026 01:52 Inactive
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 5, 2026

Preview URLs

Use these stable preview aliases for testing this PR:

These point to the same Vercel preview deployment as the bot comment, but they stay stable and easier to find.

Raw Vercel deployment URLs

@itoqa
Copy link
Copy Markdown

itoqa Bot commented Apr 5, 2026

Ito Test Report ❌

15 test cases ran. 7 failed, 8 passed.

Across 15 test cases, 8 passed and 7 failed, with the dominant and highest-impact issue a PR-introduced React compiler regression (enableJsxOutlining enabled while panicThreshold='all_errors') that causes deterministic transform/parse failures in shared Manage UI TSX modules (notably model-configuration.tsx and output-schema-filters.tsx), leading to route crashes and even a critical HTTP 500 on /login that blocks project settings, agent/sub-agent model editing, and related configuration workflows. When the UI was executable (often under local compile-stability bypasses), key behaviors validated successfully: malformed provider-options JSON was safely rejected with last valid state preserved, XSS-like provider-options payloads remained inert, rage-click and stale-tab save races converged coherently, agent metadata and unsaved-change navigation behaved correctly, and the docs compiler smoke and protected-route auth/session deep-link checks showed no product defect.

❌ Failed (7)
Category Summary Screenshot
Adversarial 🚨 Manage UI returns HTTP 500 on /login because compile-time transform errors prevent the app from rendering. ADV-5
Edge ⚠️ Fallback add/cancel/add workflow cannot be reliably executed because the shared model config path crashes. EDGE-2
Edge ⚠️ Navigating to project settings triggers compile-time failures in model configuration rendering, preventing the rapid-switch scenario from running. EDGE-3
Logic ⚠️ Inherited-to-explicit switch cannot run because the same compiler crash prevents settings UI render. LOGIC-1
Logic ⚠️ Allowed-providers ordering workflow is unreachable because the settings route fails during compilation. LOGIC-2
Happy-path ⚠️ Project settings model configuration flow is blocked by a compile-time crash in imported UI modules. ROUTE-1
Happy-path ⚠️ Manage UI compile errors block sub-agent model editor and save/reload validation. ROUTE-3
🚨 Manage UI fails to compile on login due React compiler transform errors
  • What failed: The app returns HTTP 500 instead of rendering the login page because compile-time transform/parser errors occur in UI source files.
  • Impact: Users cannot access login, project settings, or agent pages in the manage UI when this build is deployed with the same compiler settings. This is a full UI availability break for core management workflows.
  • Steps to reproduce:
    1. Start the local development services for manage UI and API on localhost.
    2. Open http://localhost:3000/login in the browser.
    3. Observe the HTTP 500 response and compile-time errors referencing model-configuration.tsx and output-schema-filters.tsx.
  • Stub / mock context: A local developer auth/bootstrap flow and seeded viewer/project/agent data were used to exercise the permission scenario on localhost, but no fake route responses or UI-level behavior stubs were used for the observed 500 failure.
  • Code analysis: I reviewed the compiler config patch and the referenced failing UI modules. The PR enables enableJsxOutlining by default in the React compiler patch, and the failing files include TSX patterns now reported as transform/parser failures, which aligns with a real code regression rather than a mocked response or bypassed assertion path.
  • Why this is likely a bug: The failure is caused by deterministic compile-time errors in shipped UI source/configuration, so the application cannot serve core routes and this cannot be explained by test-only mocks or environment stubbing.

Relevant code:

patches/babel-plugin-react-compiler.patch (lines 27-33)

@@ -84356,7 +84356,7 @@ var EnvironmentConfigSchema = external_exports.object({
   * With this change, when `countries` is updated by adding one single value,
   * only the newly added value is re-rendered and not the entire list.
   */
-  enableJsxOutlining: external_exports.boolean().default(false),
+  enableJsxOutlining: external_exports.boolean().default(true),
  /*

agents-manage-ui/src/components/shared/model-configuration.tsx (lines 31-37)

const AllowedProvidersSection: FC<{
  allowedProviders?: string[];
  inheritedAllowedProviders?: string[];
  onAllowedProvidersChange: (providers: string[]) => void;
  disabled: boolean;
}> = ({ allowedProviders, inheritedAllowedProviders, onAllowedProvidersChange, disabled }) => {

agents-manage-ui/src/components/evaluation-jobs/output-schema-filters.tsx (lines 101-117)

{filters.map((filter, index) => (
  <div key={index} className="flex gap-2 items-center">
    <div className="flex-1 min-w-[200px]">
      <Select
        value={filter.key || 'none'}
        onValueChange={(value) =>
          updateFilter(index, 'key', value === 'none' ? '' : value)
        }
      >
        <SelectTrigger className="bg-background">
          <SelectValue placeholder="Select field" />
        </SelectTrigger>
⚠️ Fallback model add-cancel-add has no phantom entries
  • What failed: The shared model configuration path is affected by compiler transform failures, so fallback controls cannot be trusted as a stable executable path in the baseline build.
  • Impact: Fallback model management is blocked or unstable in affected settings pages, preventing reliable resilience configuration. This can delay safe rollout of model failover behavior for projects.
  • Steps to reproduce:
    1. Navigate to /default/projects//settings and expand Configure default models.
    2. Use Add fallback model, cancel, and add again, then save and reload.
    3. Observe that baseline runs are blocked by the same compiler regression on the shared model configuration path.
  • Stub / mock context: The retry flow created a local test project and briefly ran with the React compiler disabled to probe fallback behavior, but baseline verification still showed the compiler regression blocking the original settings path.
  • Code analysis: The fallback UI and handlers live in ModelConfiguration and are rendered behind the same route that crashes on compiler diagnostics. The PR’s compiler defaults change is a plausible root cause because disabling the compiler was used only as a temporary workaround during retries, while final verification still confirms baseline failure in the unmodified path.
  • Why this is likely a bug: The route fails in baseline production code/configuration, so fallback workflow failure is attributable to a real app regression rather than just test orchestration.

Relevant code:

patches/babel-plugin-react-compiler.patch (lines 27-33)

@@ -84356,7 +84356,7 @@ var EnvironmentConfigSchema = external_exports.object({
    * With this change, when `countries` is updated by adding one single value,
    * only the newly added value is re-rendered and not the entire list.
    */
-  enableJsxOutlining: external_exports.boolean().default(false),
+  enableJsxOutlining: external_exports.boolean().default(true),
   /*

agents-manage-ui/src/components/shared/model-configuration.tsx (lines 248-262)

{showPendingSelector && (
  <div className="flex items-center gap-2">
    <span className="text-xs text-muted-foreground w-4 shrink-0">
      {savedModels.length + 1}.
    </span>
    <div className="flex-1">
      <ModelSelector
        value=""
        gatewayOnly
        defaultOpen
        onValueChange={(newValue) => {
          setShowPendingSelector(false);
          if (newValue) {
            onFallbackModelsChange([...(fallbackModels ?? []), newValue]);

agents-manage-ui/next.config.ts (lines 39-42)

reactCompiler: {
  // Fail the build on any compiler diagnostic
  panicThreshold: 'all_errors',
},
⚠️ React compiler JSX outlining breaks project settings render path
  • What failed: The settings surface fails to render due to compile-time React/Babel errors, so rapid model switching cannot be executed; expected behavior is a successful render that allows model edits and save attempts.
  • Impact: Project settings model configuration is blocked in this build, preventing admins from editing or validating model behavior in the UI. This also blocks downstream scenarios that depend on this route.
  • Steps to reproduce:
    1. Open http://localhost:3000/default/projects and navigate to a project settings page.
    2. Expand the default model configuration UI so ModelConfiguration and related settings components render.
    3. Observe compile-time React/Babel errors and route render failure before rapid model switching can be executed.
  • Stub / mock context: No feature-level mock data or route interception was used while reproducing this failure. The check exercised the live local compile path, where project settings failed before user interactions could proceed.
  • Code analysis: The run fails in production code paths, not in a test stub: the PR enables enableJsxOutlining by default in the React compiler patch, and this build keeps compiler panics as hard failures. The failing route renders ModelConfiguration and related settings JSX, and the reported compile failures (including output-schema-filters.tsx) are consistent with compiler/codegen regressions after that config change.
  • Why this is likely a bug: Valid project settings code is crashing under the enabled compiler configuration, and the route cannot render in normal app execution, which is a real product defect rather than test setup interference.

Relevant code:

patches/babel-plugin-react-compiler.patch (lines 27-33)

@@ -84356,7 +84356,7 @@ var EnvironmentConfigSchema = external_exports.object({
   * With this change, when `countries` is updated by adding one single value,
   * only the newly added value is re-rendered and not the entire list.
   */
-  enableJsxOutlining: external_exports.boolean().default(false),
+  enableJsxOutlining: external_exports.boolean().default(true),
  /*

agents-manage-ui/next.config.ts (lines 39-42)

reactCompiler: {
  // Fail the build on any compiler diagnostic
  panicThreshold: 'all_errors',
},

agents-manage-ui/src/components/shared/model-configuration.tsx (lines 96-116)

{effectiveProviders.map((provider, index) => (
  <li
    key={provider}
    className={cn(
      'flex items-center gap-2 px-3 py-2 transition-colors',
      index > 0 && 'border-t',
      dragOverId === provider ? 'bg-muted/30' : 'hover:bg-muted/30'
    )}
    draggable={!disabled && !isInherited}
    data-id={provider}
    onDragStart={(e) => setDraggingId(e.currentTarget.dataset.id as string)}
    onDragOver={(e) => {
      e.preventDefault();
      setDragOverId(e.currentTarget.dataset.id as string);
    }}
⚠️ Inherited-to-explicit model switch clears stale provider options
  • What failed: The route crashes before the inherited/explicit controls render, so stale-provider-options clearing logic cannot execute at all.
  • Impact: Teams cannot verify or apply inheritance-to-explicit model transitions in project defaults. This blocks a high-risk configuration path and leaves expected behavior untestable in the affected build.
  • Steps to reproduce:
    1. Navigate to /default/projects//settings.
    2. Expand Configure default models.
    3. Attempt to reach the inherited model section and switch to an explicit model.
    4. Observe the compiler crash before controls render.
  • Stub / mock context: No stubs, mocks, or bypasses were applied for this test in the recorded run.
  • Code analysis: I traced LOGIC-1 to the same shared ModelConfiguration path used by project settings and confirmed the compiler pipeline is configured to fail hard on diagnostics. With JSX outlining enabled by the PR patch, transform diagnostics prevent the settings component tree from loading, which blocks LOGIC-1 before business logic runs.
  • Why this is likely a bug: The feature path is blocked by a compiler regression in shipped source/configuration, not by test-only mocking or missing setup.

Relevant code:

patches/babel-plugin-react-compiler.patch (lines 27-33)

@@ -84356,7 +84356,7 @@ var EnvironmentConfigSchema = external_exports.object({
    * With this change, when `countries` is updated by adding one single value,
    * only the newly added value is re-rendered and not the entire list.
    */
-  enableJsxOutlining: external_exports.boolean().default(false),
+  enableJsxOutlining: external_exports.boolean().default(true),
   /*

agents-manage-ui/next.config.ts (lines 39-42)

reactCompiler: {
  // Fail the build on any compiler diagnostic
  panicThreshold: 'all_errors',
},

agents-manage-ui/src/components/projects/form/project-models-section.tsx (lines 56-66)

<ModelConfiguration
  value={field.value || ''}
  providerOptions={
    providerOptionsField.value ? JSON.stringify(providerOptionsField.value, null, 2) : ''
  }
  label=""
  placeholder="Select base model"
  canClear={false}
  isRequired={true}
  onModelChange={field.onChange}
⚠️ Allowed providers order persistence after drag-and-drop
  • What failed: The route-level compilation failure prevents a stable render of the settings UI path, so ordering persistence behavior cannot be exercised in the normal product flow.
  • Impact: Provider-priority ordering cannot be safely validated or configured through the project settings UI. This blocks a key fallback/routing control path for model traffic.
  • Steps to reproduce:
    1. Navigate to /default/projects//settings and open Configure default models.
    2. Select a gateway-routable base model and switch to Specific providers mode.
    3. Attempt to perform drag-and-drop ordering and save.
    4. Observe compile/runtime instability on the settings route in baseline verification.
  • Stub / mock context: During retries, the run temporarily disabled the React compiler and enabled local AI gateway capability flags to attempt the ordering workflow, then used baseline verification to confirm the original compiler regression remained the root defect.
  • Code analysis: I reviewed both the failing settings component tree and the second file reported by diagnostics. Runtime compiler output reports duplicate declaration generation in output-schema-filters.tsx and parse failure in model-configuration.tsx under the enabled JSX outlining configuration, which supports a real code/config regression rather than a transient test harness issue.
  • Why this is likely a bug: Multiple deterministic compiler diagnostics hit production components after this PR’s compiler config change, and they block the user flow before LOGIC-2 assertions can run.

Relevant code:

patches/babel-plugin-react-compiler.patch (lines 27-33)

@@ -84356,7 +84356,7 @@ var EnvironmentConfigSchema = external_exports.object({
    * With this change, when `countries` is updated by adding one single value,
    * only the newly added value is re-rendered and not the entire list.
    */
-  enableJsxOutlining: external_exports.boolean().default(false),
+  enableJsxOutlining: external_exports.boolean().default(true),
   /*

agents-manage-ui/src/components/evaluation-jobs/output-schema-filters.tsx (lines 101-107)

{filters.map((filter, index) => (
  <div key={index} className="flex gap-2 items-center">
    <div className="flex-1 min-w-[200px]">
      <Select
        value={filter.key || 'none'}
        onValueChange={(value) =>
          updateFilter(index, 'key', value === 'none' ? '' : value)

agents-manage-ui/src/components/shared/model-configuration.tsx (lines 103-106)

)}
draggable={!disabled && !isInherited}
data-id={provider}
onDragStart={(e) => setDraggingId(e.currentTarget.dataset.id as string)}
⚠️ Project settings model config saves correctly
  • What failed: The page throws compile-time transform errors and never renders model configuration controls, so users cannot save project model config.
  • Impact: Project-level model configuration is unavailable until the compiler regression is fixed. This blocks saving and validating core model settings for admins.
  • Steps to reproduce:
    1. Navigate to /default/projects//settings.
    2. Open Configure default models.
    3. Observe that the route fails with compiler transform errors instead of rendering the model configuration UI.
  • Stub / mock context: No stubs, mocks, or bypasses were applied for this test in the recorded run.
  • Code analysis: I reviewed the shared model configuration component import path used by the project settings route and the React compiler configuration. The PR enables JSX outlining in the compiler patch while reactCompiler remains active with panicThreshold: 'all_errors', and runtime errors show transform output breaking on hyphenated prop names plus duplicate declaration generation.
  • Why this is likely a bug: The compiler configuration change in this PR introduces a deterministic transform failure in production code paths, and the settings route cannot render even before user interaction.

Relevant code:

patches/babel-plugin-react-compiler.patch (lines 27-33)

@@ -84356,7 +84356,7 @@ var EnvironmentConfigSchema = external_exports.object({
    * With this change, when `countries` is updated by adding one single value,
    * only the newly added value is re-rendered and not the entire list.
    */
-  enableJsxOutlining: external_exports.boolean().default(false),
+  enableJsxOutlining: external_exports.boolean().default(true),
   /*

agents-manage-ui/next.config.ts (lines 39-42)

reactCompiler: {
  // Fail the build on any compiler diagnostic
  panicThreshold: 'all_errors',
},

agents-manage-ui/src/components/shared/model-configuration.tsx (lines 125-135)

<Button
  variant="ghost"
  size="icon"
  className="h-7 w-7 shrink-0"
  onClick={() => {
    const next = (allowedProviders ?? []).filter((p) => p !== provider);
    onAllowedProvidersChange(next);
  }}
  disabled={disabled || isInherited}
  aria-label={`Remove ${providerLabel(provider)}`}
>
⚠️ Manage UI compile failure blocks sub-agent model editor
  • What failed: The app fails to compile/render with source-level compiler errors, so the sub-agent model configuration UI never becomes usable; expected behavior is that the page renders and model settings can be saved and reloaded.
  • Impact: Users cannot reach or use the sub-agent model configuration flow in Manage UI when this regression is present. This blocks model updates and validation for agent behavior.
  • Steps to reproduce:
    1. Open http://localhost:3000/default/projects.
    2. Navigate to a project agent detail page (/default/projects//agents/).
    3. Open the sub-agent Models section and attempt to edit/save model settings.
    4. Observe compile/render failure instead of the editor loading.
  • Stub / mock context: The run used development-only UI/runtime overrides (for example hiding dev overlays and relaxing dev compiler panic behavior) to keep local pages testable while reproducing this issue. No endpoint response stubs or route-level API mocks were applied to the failing sub-agent model flow itself.
  • Code analysis: I reviewed the compiler configuration and affected UI modules. The PR enables JSX outlining in the patched React compiler, while Manage UI is configured to panic on compiler diagnostics; this combination aligns with the observed parse/transform failures in model-configuration.tsx and blocks rendering of the route that hosts sub-agent model editing.
  • Why this is likely a bug: The failure is tied to production source and compiler settings in this branch, and the route cannot render before any test-only interaction could affect behavior.

Relevant code:

patches/babel-plugin-react-compiler.patch (lines 27-33)

@@ -84356,7 +84356,7 @@ var EnvironmentConfigSchema = external_exports.object({
    * With this change, when `countries` is updated by adding one single value,
    * only the newly added value is re-rendered and not the entire list.
    */
-  enableJsxOutlining: external_exports.boolean().default(false),
+  enableJsxOutlining: external_exports.boolean().default(true),
   /*
    * Enables instrumentation codegen. This emits a dev-mode only call to an

agents-manage-ui/next.config.ts (lines 39-42)

reactCompiler: {
  // Fail the build on any compiler diagnostic
  panicThreshold: 'all_errors',
},

agents-manage-ui/src/components/shared/model-configuration.tsx (lines 92-137)

{isSpecific && (
  <div className="space-y-2">
    <div className="border rounded-md text-xs">
      <ul>
        {effectiveProviders.map((provider, index) => (
          <li
            key={provider}
            className={cn(
              'flex items-center gap-2 px-3 py-2 transition-colors',
              index > 0 && 'border-t',
              dragOverId === provider ? 'bg-muted/30' : 'hover:bg-muted/30'
            )}
            draggable={!disabled && !isInherited}
            data-id={provider}
            onDragStart={(e) => setDraggingId(e.currentTarget.dataset.id as string)}
            onDragOver={(e) => {
              e.preventDefault();
              setDragOverId(e.currentTarget.dataset.id as string);
            }}
            onDragLeave={() => setDragOverId('')}
            onDrop={(e) => {
              handleReorder(draggingId, e.currentTarget.dataset.id as string);
              setDraggingId('');
              setDragOverId('');
            }}
            onDragEnd={() => {
              setDraggingId('');
              setDragOverId('');
            }}
          >
            <GripVertical className="size-4 text-muted-foreground shrink-0 cursor-grab" />
            <span className="text-xs text-muted-foreground w-4 shrink-0">{index + 1}.</span>
            <span className="text-sm grow">{providerLabel(provider)}</span>
            <Button
              variant="ghost"
              size="icon"
              className="h-7 w-7 shrink-0"
              onClick={() => {
                const next = (allowedProviders ?? []).filter((p) => p !== provider);
                onAllowedProvidersChange(next);
              }}
              disabled={disabled || isInherited}
              aria-label={`Remove ${providerLabel(provider)}`}
            >
✅ Passed (8)
Category Summary Screenshot
Adversarial Rapid add/remove/save stress interactions preserved a coherent final default-model configuration with no duplicate rows. ADV-1
Adversarial XSS-style strings saved as inert provider-options values and did not execute client-side scripts after reload. ADV-2
Adversarial Deep-link and dev auto-session behavior matched intended local architecture; no protected data leak was observed. ADV-3
Adversarial Two stale tabs saved different model choices; both reloaded to one coherent final model (last write wins). ADV-4
Edge Malformed provider-options JSON was blocked from saving, and reload kept the last valid persisted JSON. EDGE-1
Edge Unsaved-change cancel preserved draft state and discard cleared draft while keeping the editor/sidepane stable. EDGE-5
Logic Docs app stayed functional across list-heavy docs navigation and history loops without hydration/runtime failures. LOGIC-3
Happy-path Full-agent metadata model selections and provider options persisted correctly after save and reload; prior symptom was not reproducible as a product defect. ROUTE-2

Commit: 3e31625

View Full Run


Tell us how we did: Give Ito Feedback

Base automatically changed from validateNoDerivedComputationsInEffects to main April 5, 2026 14:45
@itoqa
Copy link
Copy Markdown

itoqa Bot commented Apr 5, 2026

Ito Test Report ❌

14 test cases ran. 1 failed, 13 passed.

The unified run executed 14 test cases with 13 passes and 1 failure, confirming strong coverage across auth and routing behavior (unauthenticated/login redirects, authenticated root to /default/projects, deep-link intent preservation, returnUrl loop handling, refresh recovery), security hardening (malicious/injected returnUrl and invitation payloads contained, cross-tenant URL tampering denied), docs safety (valid slug rendering plus safe 404/traversal handling), and navigation resilience under rapid repeated project-card clicks. The single blocker is a high-severity, PR-introduced regression where enabling JSX outlining by default causes compile-time failures in Manage UI components (including model-configuration.tsx and output-schema-filters.tsx), producing HTTP 500 errors on /default/projects in mobile viewport (390x844) and preventing the core project → agent → Try it playground flow.

❌ Failed (1)
Category Summary Screenshot
Edge ⚠️ Mobile projects route triggers compile errors and blocks agent playground navigation. EDGE-5
⚠️ Mobile projects-to-playground flow blocked by Manage UI compile failures
  • What failed: The route hits server/compiler failures (HTTP 500 with compile errors) instead of presenting a stable projects view and allowing navigation to the agent and Try it playground.
  • Impact: Mobile users cannot reliably enter the projects-to-agent path, so a core navigation and playground workflow is blocked. The failure happens during app compilation/runtime and prevents normal product use.
  • Steps to reproduce:
    1. Open the Manage UI in an authenticated session and set viewport size to 390x844.
    2. Navigate to /default/projects.
    3. Attempt to continue through project -> agent -> Try it flow and observe compile/runtime errors blocking progression.
  • Stub / mock context: No stubs, mocks, or bypasses were applied for this test in the recorded run.
  • Code analysis: I reviewed the compiler configuration change and both failing component paths. The PR enables JSX outlining by default in the React compiler patch, and current component patterns in model-configuration.tsx and output-schema-filters.tsx align with the reported transform failures (aria-label transform/parsing failure and duplicate declaration during map rendering), making this a production-code regression rather than test setup noise.
  • Why this is likely a bug: The failure is reproducible on local app routes and backed by compile-time errors tied to committed source files after the compiler behavior change, so it reflects a real product regression.

Relevant code:

patches/babel-plugin-react-compiler.patch (lines 27-33)

@@ -84356,7 +84356,7 @@ var EnvironmentConfigSchema = external_exports.object({
   * With this change, when `countries` is updated by adding one single value,
   * only the newly added value is re-rendered and not the entire list.
   */
-  enableJsxOutlining: external_exports.boolean().default(false),
+  enableJsxOutlining: external_exports.boolean().default(true),
  /*

agents-manage-ui/src/components/shared/model-configuration.tsx (lines 31-37)

const AllowedProvidersSection: FC<{
  allowedProviders?: string[];
  inheritedAllowedProviders?: string[];
  onAllowedProvidersChange: (providers: string[]) => void;
  disabled: boolean;
}> = ({ allowedProviders, inheritedAllowedProviders, onAllowedProvidersChange, disabled }) => {
  const [addOpen, setAddOpen] = useState(false);

agents-manage-ui/src/components/evaluation-jobs/output-schema-filters.tsx (lines 101-118)

{filters.map((filter, index) => (
  <div key={index} className="flex gap-2 items-center">
    <div className="flex-1 min-w-[200px]">
      <Select
        value={filter.key || 'none'}
        onValueChange={(value) =>
          updateFilter(index, 'key', value === 'none' ? '' : value)
        }
      >
        <SelectTrigger className="bg-background">
          <SelectValue placeholder="Select field" />
        </SelectTrigger>
        <SelectContent>
          <SelectItem value="none">No filter</SelectItem>
✅ Passed (13)
Category Summary Screenshot
Adversarial Rapid repeated project-card clicks completed with stable routing to the activities-planner agents page and no crash/error overlay. ADV-1
Adversarial All malicious returnUrl payloads were contained to trusted localhost login routes; no external redirects or script-protocol execution occurred. ADV-3
Adversarial Encoded invitation and returnUrl injection payload did not execute scripts or trigger alerts; URL handling remained encoded and app stayed functional. ADV-4
Adversarial Cross-tenant route probes returned only safe empty/error states with no unauthorized tenant data exposure. ADV-5
Adversarial Both encoded traversal-like URLs were safely handled as not-found states and did not expose repository files; docs app stayed responsive. ADV-6
Edge Valid in-app returnUrl=/default/projects was preserved through auth resolution. EDGE-1
Edge returnUrl=/ exited root and stabilized on /default/projects without a redirect loop. EDGE-2
Edge Refresh during root redirect/session resolution recovered to interactive /default/projects. EDGE-3
Edge After clearing session and logging in from a protected deep link, final URL returned to the same deep-link path instead of a generic root. EDGE-6
Happy-path Unauthenticated root navigation redirected to /login with interactive login controls. ROUTE-1
Happy-path Authenticated root navigation resolved to /default/projects with a stable projects view. ROUTE-2
Happy-path Valid docs slug /get-started/quick-start rendered with expected title/content and visible TOC entries. ROUTE-4
Happy-path Unknown slug rendered a handled 404 page (not blank/crash), confirming safe failure behavior. ROUTE-5

Commit: 7de42e5

View Full Run


Tell us how we did: Give Ito Feedback

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Performance] Opening invite dialog causes full table re-render (Members Table Fully Refactored)

1 participant