Skip to content

feat(studio): Studio Customizer UI updates - #574

Merged
htolentino-nvidia merged 3 commits into
mainfrom
studio-customizer-ui-be-updates/htolentino
Jul 7, 2026
Merged

feat(studio): Studio Customizer UI updates#574
htolentino-nvidia merged 3 commits into
mainfrom
studio-customizer-ui-be-updates/htolentino

Conversation

@htolentino-nvidia

@htolentino-nvidia htolentino-nvidia commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • New Features

    • Fine-tuning now starts in a guided chat experience, making it easier to configure and continue customization.
    • Job detail pages now show clearer configuration and training information for supported customization types.
    • Timeouts for pending permissions or inputs now surface in the live session so you can see when a request expires.
  • Bug Fixes

    • Improved chat behavior so new prompts and session resets don’t collide.
    • Cancel actions and job detail views now stay in sync with the latest job state.

@htolentino-nvidia
htolentino-nvidia requested review from a team as code owners July 6, 2026 17:32
@github-actions github-actions Bot added the feat label Jul 6, 2026
@coderabbitai

coderabbitai Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR reworks the customizer job data model to a backend-discriminated (Automodel/Unsloth) spec architecture across the SDK, hooks, mocks, and UI panels; removes the legacy in-app new-customization form/route in favor of a Claude Code Agent guided flow; and adds SSE permission/input expiration handling end-to-end (backend, runtime, UI).

Changes

Customizer Job Model Migration & Fine-Tune Flow

Layer / File(s) Summary
Schema and cancel API
web/packages/sdk/vendored/customizer/schema.ts, web/packages/sdk/vendored/customizer/api.ts
New CustomizationBackend-discriminated AutomodelJobSpec/UnslothJobSpec, BaseJob<TSpec>, type guards; cancel mutation now takes {workspace, backend, name} and hits a per-backend URL.
Job hook and mocks
web/packages/studio/src/hooks/useCustomizationJob/index.ts, web/packages/studio/src/mocks/customizer/*
New useCustomizationJob hook derives backend/job from generic platform job API; mock jobs rewritten as typed Automodel/Unsloth fixtures; MSW handlers simplified.
Display utilities
web/packages/studio/src/util/customizations.tsx, ...test.ts
getBaseModel, getDatasetUri, getTrainingBatchSize, getTrainingOptionBadges, getFormattedTrainingType rewritten for backend-specific spec paths.
Job details/side panels
CustomizationDetailsPanel/*, CustomizationConfigSidePanel/*, CustomizationJobDetailsRoute/*
Panels switch to useCustomizationJob, new HyperparameterRows, backend-aware cancel action, updated tests.
Fine-tune UX to Claude Code Agent
CustomizeModelModal/*, KindTag*, constants.ts, WorkspaceDashboardRoute/index.tsx, skillActionTemplateCatalog.tsx
Fine-tune option navigates to Claude Code Chat with a guided prompt instead of the new-customization form; FinetuningType imports switched to generated platform schema; dashboard card and nemo-customizer skill template updated.
Legacy route/form removal
NewCustomizationRoute/*, NewCustomizationForm/*, routes.ts, customizationRoutes.tsx, routes/utils.ts, e2e tests
Removes newCustomizationJob route, its form/components/hooks/utils, and related e2e fixtures/tests.

Agent Decision/Blocking Input & SSE Expiration

Layer / File(s) Summary
Backend SSE expiration
services/studio/src/nmp/studio/coding_agents.py
Timeout paths for permission/input requests now enqueue permission_expired/input_expired SSE events; stream loop forwards them.
Frontend SSE and runtime queue
ClaudeCodeChatRoute/api.ts, types.ts, useClaudeCodeChatRuntime.ts, tests
handleSseEvent parses new event types and calls handlers; reducer adds expire_permission/expire_input actions dequeuing matched requests.
Decision/blocking input UI
AgentDecisionInput/*, AgentBlockingInput/FilesetFileBlockingInput.tsx, ClaudeCodeChatThread.tsx
Send button always rendered with revised disabled logic; dataset file input gates submission; inputs keyed by request id for state reset.
Chat session/prompt race fix
ClaudeCodeChatRoute/index.tsx, tests
Defers dashboard-initiated prompt submission until session reset completes; avoids conflicting loadSession calls.

Sequence Diagram(s)

sequenceDiagram
  participant CodingAgentsService
  participant SSEStream
  participant ClaudeCodeApi
  participant ChatRuntime
  CodingAgentsService->>SSEStream: enqueue permission_expired/input_expired
  SSEStream->>ClaudeCodeApi: handleSseEvent
  ClaudeCodeApi->>ChatRuntime: onPermissionExpired/onInputExpired(requestId)
  ChatRuntime->>ChatRuntime: dispatch expire_permission/expire_input
Loading
sequenceDiagram
  participant CustomizationJobDetailsRoute
  participant useCustomizationJob
  participant PlatformJobsAPI
  participant DetailActions
  participant CancelMutation
  CustomizationJobDetailsRoute->>useCustomizationJob: fetch(workspace, name)
  useCustomizationJob->>PlatformJobsAPI: useJobsGetJob
  PlatformJobsAPI-->>useCustomizationJob: job spec
  useCustomizationJob-->>CustomizationJobDetailsRoute: job, backend
  CustomizationJobDetailsRoute->>DetailActions: render(backend, name, status)
  DetailActions->>CancelMutation: mutateAsync({workspace, backend, name})
Loading

Possibly related PRs

Suggested labels: feat

Suggested reviewers: dmariali, steramae-nvidia

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the changeset: it broadly describes the Studio Customizer UI and flow updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch studio-customizer-ui-be-updates/htolentino
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch studio-customizer-ui-be-updates/htolentino

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🧹 Nitpick comments (6)
web/packages/common/src/components/TrainingParameterSlider/types.ts (1)

9-10: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Stale "@deprecated" comment after schema removal.

Comment still says "Prefer using a zod schema instead" but the zod schemas this file used to export were just deleted in this change. Update or remove the note so it doesn't mislead future readers.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/packages/common/src/components/TrainingParameterSlider/types.ts` around
lines 9 - 10, The `@deprecated` note in TrainingParameterSlider/types.ts is now
stale because the zod schemas it referenced were removed in this change. Update
the deprecated comment on the relevant type export to remove the “Prefer using a
zod schema instead” guidance or replace it with an accurate deprecation note, so
the symbol no longer points readers to something that no longer exists.
web/packages/studio/src/routes/DashboardLandingRoute/skillActionTemplateCatalog.tsx (1)

93-100: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

New nemo-customizer overlaps with existing nemo-fine-tune entry.

Both gated by customizerEnabled; nemo-fine-tune ("Check fine-tuning status") and nemo-customizer ("Fine-tune a model") cover adjacent scope. If intentional (launch vs. status-check), fine — otherwise consider consolidating to avoid ambiguous routing between the two skills.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@web/packages/studio/src/routes/DashboardLandingRoute/skillActionTemplateCatalog.tsx`
around lines 93 - 100, The new nemo-customizer entry overlaps with the existing
nemo-fine-tune catalog item because both use customizerEnabled and target
similar customizer workflows. Review the skill definitions in
skillActionTemplateCatalog and either consolidate them into one route or make
their prompts/titles/actions clearly distinct so navigation does not become
ambiguous between launching customization and checking fine-tuning status.
web/packages/studio/src/routes/CustomizationJobDetailsRoute/index.tsx (1)

49-49: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

output_model should be camelCase.

Rename to outputModel to match convention (used at lines 50, 53, 67, 101).

As per coding guidelines, "Use camelCase for variables, functions, and methods."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/packages/studio/src/routes/CustomizationJobDetailsRoute/index.tsx` at
line 49, Rename the local variable output_model in CustomizationJobDetailsRoute
to outputModel to follow camelCase conventions and match the surrounding usage
in the same component; update any references in the route logic so the renamed
symbol is used consistently throughout the file.

Source: Coding guidelines

web/packages/studio/src/routes/CustomizationJobDetailsRoute/DetailActions.test.tsx (1)

26-49: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Missing test for undefined-backend cancel path.

DetailActions.tsx now guards cancelJob with if (!backend) { toast.error(...); return; }, but no test exercises backend={undefined}.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@web/packages/studio/src/routes/CustomizationJobDetailsRoute/DetailActions.test.tsx`
around lines 26 - 49, Add a test in DetailActions.test.tsx that renders
DetailActions with a cancellable status and backend set to undefined, then
verifies the Cancel Job action triggers the missing-backend path instead of
proceeding. Use the existing DetailActions component and cancel flow to assert
the toast.error behavior (or equivalent user-visible fallback) when cancelJob
hits the new backend guard.
web/packages/sdk/vendored/customizer/api.ts (1)

17-21: 📐 Maintainability & Code Quality | 🔵 Trivial

Relative imports violate no-relative-import guideline.

Same issue as schema.ts — '../../generated/fetchers/platform', '../../generated/platform/schema', './schema' should use @nemo/sdk/... alias paths.

As per coding guidelines, "Never use relative imports. Always use absolute alias paths ... even for sibling files in the same directory."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/packages/sdk/vendored/customizer/api.ts` around lines 17 - 21, The
imports in the customizer API module still use relative paths, which violates
the no-relative-import guideline. Update the import statements in the
customizer/api.ts module to use the `@nemo/sdk` alias paths instead of
'../../generated/fetchers/platform', '../../generated/platform/schema', and
'./schema'. Make sure the symbols customFetch, ErrorType, HTTPValidationError,
CustomizationBackend, and CustomizationJob are preserved while switching to
absolute alias imports.

Source: Coding guidelines

web/packages/sdk/vendored/customizer/schema.ts (1)

35-360: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Mark job-spec interfaces readonly.

Header states these are "READ-ONLY types for the job details page," but none of the new interfaces mark fields readonly, so nothing prevents accidental mutation downstream (e.g. spreading and overwriting fields).

As per coding guidelines, "Use readonly for immutable properties in TypeScript interfaces and types."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/packages/sdk/vendored/customizer/schema.ts` around lines 35 - 360, The
new job-spec types are meant to be read-only, but the interfaces still allow
mutation. Update the job detail schema types such as OutputResponse,
AutomodelJobSpec, UnslothJobSpec, BaseJob, and the nested spec interfaces they
reference (for example AutomodelTrainingSpec, UnslothDatasetSpec, HardwareSpec,
etc.) to use readonly properties so consumers cannot accidentally overwrite job
details. Keep the existing type structure and discriminators like
isAutomodelSpec, isUnslothSpec, and getCustomizationBackend unchanged except for
readonly-safe typing.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@web/packages/sdk/vendored/customizer/schema.ts`:
- Around line 11-13: The import in the customizer schema re-exports should use
the SDK alias instead of a relative path to comply with the no-relative-import
rule. Update the import and re-export in the schema file that references
PlatformJobStatus, PaginationData, and SecretRef so it pulls from
`@nemo/sdk/generated/platform/schema` rather than
'../../generated/platform/schema', keeping the existing type names and export
structure intact.

In
`@web/packages/studio/src/routes/agents/ClaudeCodeChatRoute/useClaudeCodeChatRuntime.ts`:
- Around line 333-365: The `expire_permission` and `expire_input` handling in
`useClaudeCodeChatRuntime` can let stale submit failures overwrite the next
active item’s status. Thread `requestId` through `set_decision_status` and
`set_input_status`, and in the reducer only apply those status updates when the
action’s `requestId` matches `activePermission.requestId` or
`activeInput.requestId`. Also make sure the submit-failure paths that dispatch
these actions pass along the originating request identifier.
- Around line 566-573: Queued permission and input expirations are being dropped
silently in ClaudeCodeChatRuntime, so add a user-facing expiration notice when
onPermissionExpired or onInputExpired fires in useClaudeCodeChatRuntime. Update
the expire_permission and expire_input handling path to trigger a toast or
inline message that names the expired request so users know their response was
discarded, while still guarding with signal.aborted and isCurrentRun() as today.

---

Nitpick comments:
In `@web/packages/common/src/components/TrainingParameterSlider/types.ts`:
- Around line 9-10: The `@deprecated` note in TrainingParameterSlider/types.ts is
now stale because the zod schemas it referenced were removed in this change.
Update the deprecated comment on the relevant type export to remove the “Prefer
using a zod schema instead” guidance or replace it with an accurate deprecation
note, so the symbol no longer points readers to something that no longer exists.

In `@web/packages/sdk/vendored/customizer/api.ts`:
- Around line 17-21: The imports in the customizer API module still use relative
paths, which violates the no-relative-import guideline. Update the import
statements in the customizer/api.ts module to use the `@nemo/sdk` alias paths
instead of '../../generated/fetchers/platform',
'../../generated/platform/schema', and './schema'. Make sure the symbols
customFetch, ErrorType, HTTPValidationError, CustomizationBackend, and
CustomizationJob are preserved while switching to absolute alias imports.

In `@web/packages/sdk/vendored/customizer/schema.ts`:
- Around line 35-360: The new job-spec types are meant to be read-only, but the
interfaces still allow mutation. Update the job detail schema types such as
OutputResponse, AutomodelJobSpec, UnslothJobSpec, BaseJob, and the nested spec
interfaces they reference (for example AutomodelTrainingSpec,
UnslothDatasetSpec, HardwareSpec, etc.) to use readonly properties so consumers
cannot accidentally overwrite job details. Keep the existing type structure and
discriminators like isAutomodelSpec, isUnslothSpec, and getCustomizationBackend
unchanged except for readonly-safe typing.

In
`@web/packages/studio/src/routes/CustomizationJobDetailsRoute/DetailActions.test.tsx`:
- Around line 26-49: Add a test in DetailActions.test.tsx that renders
DetailActions with a cancellable status and backend set to undefined, then
verifies the Cancel Job action triggers the missing-backend path instead of
proceeding. Use the existing DetailActions component and cancel flow to assert
the toast.error behavior (or equivalent user-visible fallback) when cancelJob
hits the new backend guard.

In `@web/packages/studio/src/routes/CustomizationJobDetailsRoute/index.tsx`:
- Line 49: Rename the local variable output_model in
CustomizationJobDetailsRoute to outputModel to follow camelCase conventions and
match the surrounding usage in the same component; update any references in the
route logic so the renamed symbol is used consistently throughout the file.

In
`@web/packages/studio/src/routes/DashboardLandingRoute/skillActionTemplateCatalog.tsx`:
- Around line 93-100: The new nemo-customizer entry overlaps with the existing
nemo-fine-tune catalog item because both use customizerEnabled and target
similar customizer workflows. Review the skill definitions in
skillActionTemplateCatalog and either consolidate them into one route or make
their prompts/titles/actions clearly distinct so navigation does not become
ambiguous between launching customization and checking fine-tuning status.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: e7f7cb61-53bf-404a-9ad6-a3783d028b8a

📥 Commits

Reviewing files that changed from the base of the PR and between fb50b86 and 1c53e8b.

📒 Files selected for processing (92)
  • services/studio/src/nmp/studio/coding_agents.py
  • web/packages/common/src/components/TrainingParameterSlider/types.ts
  • web/packages/sdk/vendored/customizer/api.ts
  • web/packages/sdk/vendored/customizer/schema.ts
  • web/packages/sdk/vendored/customizer/zod.ts
  • web/packages/studio/e2e-tests/api/customizations.ts
  • web/packages/studio/e2e-tests/customization.test.ts
  • web/packages/studio/e2e-tests/pages/project-customizations.ts
  • web/packages/studio/e2e-tests/utils/fixtures.ts
  • web/packages/studio/src/components/CustomizationDetailsPanel/index.test.tsx
  • web/packages/studio/src/components/CustomizationDetailsPanel/index.tsx
  • web/packages/studio/src/components/CustomizationMetrics/CustomizationMetricLineGraph/index.tsx
  • web/packages/studio/src/components/CustomizationMetrics/index.test.tsx
  • web/packages/studio/src/components/CustomizationMetrics/index.tsx
  • web/packages/studio/src/components/CustomizeModelModal/constants.ts
  • web/packages/studio/src/components/CustomizeModelModal/index.test.tsx
  • web/packages/studio/src/components/CustomizeModelModal/index.tsx
  • web/packages/studio/src/components/NewCustomizationForm/FormSection.test.tsx
  • web/packages/studio/src/components/NewCustomizationForm/FormSection.tsx
  • web/packages/studio/src/components/NewCustomizationForm/ModelSelectionSection.test.tsx
  • web/packages/studio/src/components/NewCustomizationForm/ModelSelectionSection.tsx
  • web/packages/studio/src/components/NewCustomizationForm/ParameterEfficiency.test.tsx
  • web/packages/studio/src/components/NewCustomizationForm/ParameterEfficiency.tsx
  • web/packages/studio/src/components/NewCustomizationForm/TrainingMethodSelect.test.tsx
  • web/packages/studio/src/components/NewCustomizationForm/TrainingMethodSelect.tsx
  • web/packages/studio/src/components/NewCustomizationForm/constants.ts
  • web/packages/studio/src/components/NewCustomizationForm/index.tsx
  • web/packages/studio/src/components/NewCustomizationForm/utils.test.ts
  • web/packages/studio/src/components/NewCustomizationForm/utils.ts
  • web/packages/studio/src/components/agents/AgentBlockingInput/FilesetFileBlockingInput.tsx
  • web/packages/studio/src/components/agents/AgentDecisionInput/index.test.tsx
  • web/packages/studio/src/components/agents/AgentDecisionInput/index.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/FileValidationPanel/AutoSplitNotice.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/FileValidationPanel/AutoSplitNotice.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/FileValidationPanel/ChecklistRow.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/FileValidationPanel/PatternsTooltip.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/FileValidationPanel/SchemaBlock.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/FileValidationPanel/index.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/FileValidationPanel/index.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/index.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/index.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/ComputeResources.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/ComputeResources.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/DpoParameters.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/DpoParameters.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/GeneralParameters.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/GeneralParameters.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/LoraParameters.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/LoraParameters.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/index.tsx
  • web/packages/studio/src/components/customizer/utils.ts
  • web/packages/studio/src/components/dataViews/CustomModelsDataView/CustomizeModelButton/index.test.tsx
  • web/packages/studio/src/components/dataViews/CustomModelsDataView/KindTag.stories.tsx
  • web/packages/studio/src/components/dataViews/CustomModelsDataView/KindTag.tsx
  • web/packages/studio/src/components/dataViews/CustomModelsDataView/constants.ts
  • web/packages/studio/src/components/sidePanels/CustomizationConfigSidePanel/index.test.tsx
  • web/packages/studio/src/components/sidePanels/CustomizationConfigSidePanel/index.tsx
  • web/packages/studio/src/constants/routes.ts
  • web/packages/studio/src/hooks/useCustomizationDatasetValidation/encodingQuery.ts
  • web/packages/studio/src/hooks/useCustomizationDatasetValidation/index.test.tsx
  • web/packages/studio/src/hooks/useCustomizationDatasetValidation/index.ts
  • web/packages/studio/src/hooks/useCustomizationJob/index.ts
  • web/packages/studio/src/mocks/customizer/customization-jobs.ts
  • web/packages/studio/src/mocks/customizer/metrics.ts
  • web/packages/studio/src/mocks/handlers/customizer.ts
  • web/packages/studio/src/routes/CustomizationJobDetailsRoute/DetailActions.test.tsx
  • web/packages/studio/src/routes/CustomizationJobDetailsRoute/DetailActions.tsx
  • web/packages/studio/src/routes/CustomizationJobDetailsRoute/index.test.tsx
  • web/packages/studio/src/routes/CustomizationJobDetailsRoute/index.tsx
  • web/packages/studio/src/routes/DashboardLandingRoute/skillActionTemplateCatalog.tsx
  • web/packages/studio/src/routes/NewCustomizationRoute/index.test.tsx
  • web/packages/studio/src/routes/NewCustomizationRoute/index.tsx
  • web/packages/studio/src/routes/NewCustomizationRoute/util.ts
  • web/packages/studio/src/routes/WorkspaceDashboardRoute/index.tsx
  • web/packages/studio/src/routes/agents/ClaudeCodeChatRoute/ClaudeCodeChatThread.tsx
  • web/packages/studio/src/routes/agents/ClaudeCodeChatRoute/api.test.ts
  • web/packages/studio/src/routes/agents/ClaudeCodeChatRoute/api.ts
  • web/packages/studio/src/routes/agents/ClaudeCodeChatRoute/index.test.tsx
  • web/packages/studio/src/routes/agents/ClaudeCodeChatRoute/index.tsx
  • web/packages/studio/src/routes/agents/ClaudeCodeChatRoute/studioUiNavigationSuggestions.ts
  • web/packages/studio/src/routes/agents/ClaudeCodeChatRoute/types.ts
  • web/packages/studio/src/routes/agents/ClaudeCodeChatRoute/useClaudeCodeChatRuntime.ts
  • web/packages/studio/src/routes/groups/customizationRoutes.tsx
  • web/packages/studio/src/routes/index.test.tsx
  • web/packages/studio/src/routes/utils.ts
  • web/packages/studio/src/tests/create-a-customization.test.tsx
  • web/packages/studio/src/util/customizations.test.ts
  • web/packages/studio/src/util/customizations.tsx
  • web/packages/studio/src/util/customizerSchema.test.ts
  • web/packages/studio/src/util/customizerSchema.ts
  • web/packages/studio/src/util/forms/customization.test.ts
  • web/packages/studio/src/util/forms/customization.ts
💤 Files with no reviewable changes (55)
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/GeneralParameters.test.tsx
  • web/packages/studio/src/components/NewCustomizationForm/TrainingMethodSelect.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/ComputeResources.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/LoraParameters.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/FileValidationPanel/PatternsTooltip.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/ComputeResources.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/LoraParameters.test.tsx
  • web/packages/studio/src/components/NewCustomizationForm/ModelSelectionSection.test.tsx
  • web/packages/studio/src/components/NewCustomizationForm/TrainingMethodSelect.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/DpoParameters.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/GeneralParameters.tsx
  • web/packages/studio/e2e-tests/pages/project-customizations.ts
  • web/packages/studio/src/components/NewCustomizationForm/ParameterEfficiency.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/index.tsx
  • web/packages/studio/src/components/NewCustomizationForm/FormSection.tsx
  • web/packages/studio/src/components/NewCustomizationForm/FormSection.test.tsx
  • web/packages/studio/src/components/CustomizationMetrics/index.test.tsx
  • web/packages/studio/src/components/NewCustomizationForm/ParameterEfficiency.tsx
  • web/packages/studio/src/components/customizer/utils.ts
  • web/packages/studio/src/routes/NewCustomizationRoute/util.ts
  • web/packages/studio/src/components/NewCustomizationForm/utils.test.ts
  • web/packages/studio/src/components/NewCustomizationForm/utils.ts
  • web/packages/studio/src/util/customizerSchema.test.ts
  • web/packages/studio/src/hooks/useCustomizationDatasetValidation/encodingQuery.ts
  • web/packages/studio/src/components/CustomizationMetrics/index.tsx
  • web/packages/studio/src/components/CustomizationMetrics/CustomizationMetricLineGraph/index.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/FileValidationPanel/ChecklistRow.tsx
  • web/packages/studio/e2e-tests/api/customizations.ts
  • web/packages/studio/src/tests/create-a-customization.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/FileValidationPanel/SchemaBlock.tsx
  • web/packages/studio/src/routes/index.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationHyperparameters/DpoParameters.tsx
  • web/packages/studio/e2e-tests/customization.test.ts
  • web/packages/studio/src/util/forms/customization.ts
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/FileValidationPanel/index.tsx
  • web/packages/studio/src/util/forms/customization.test.ts
  • web/packages/studio/src/components/NewCustomizationForm/ModelSelectionSection.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/FileValidationPanel/index.test.tsx
  • web/packages/studio/src/routes/NewCustomizationRoute/index.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/index.test.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/index.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/FileValidationPanel/AutoSplitNotice.tsx
  • web/packages/studio/src/components/customizer/CustomizationFilesetSelect/FileValidationPanel/AutoSplitNotice.test.tsx
  • web/packages/studio/src/hooks/useCustomizationDatasetValidation/index.ts
  • web/packages/studio/src/routes/NewCustomizationRoute/index.tsx
  • web/packages/studio/src/components/NewCustomizationForm/index.tsx
  • web/packages/studio/src/hooks/useCustomizationDatasetValidation/index.test.tsx
  • web/packages/studio/src/mocks/customizer/metrics.ts
  • web/packages/studio/src/constants/routes.ts
  • web/packages/studio/src/components/NewCustomizationForm/constants.ts
  • web/packages/studio/src/util/customizerSchema.ts
  • web/packages/studio/e2e-tests/utils/fixtures.ts
  • web/packages/studio/src/routes/agents/ClaudeCodeChatRoute/studioUiNavigationSuggestions.ts
  • web/packages/studio/src/routes/groups/customizationRoutes.tsx
  • web/packages/studio/src/routes/utils.ts

Comment thread web/packages/sdk/vendored/customizer/schema.ts
@htolentino-nvidia
htolentino-nvidia force-pushed the studio-customizer-ui-be-updates/htolentino branch from 1c53e8b to ad881d4 Compare July 6, 2026 18:14
Signed-off-by: Henrique Tolentino <htolentino@nvidia.com>
@htolentino-nvidia
htolentino-nvidia force-pushed the studio-customizer-ui-be-updates/htolentino branch from ad881d4 to 513322f Compare July 6, 2026 18:22
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 23273/30443 76.4% 61.2%
Integration Tests 13617/29123 46.8% 20.0%

@htolentino-nvidia
htolentino-nvidia added this pull request to the merge queue Jul 7, 2026
Merged via the queue into main with commit 0185085 Jul 7, 2026
53 checks passed
@htolentino-nvidia
htolentino-nvidia deleted the studio-customizer-ui-be-updates/htolentino branch July 7, 2026 21:37
arpitsardhana pushed a commit that referenced this pull request Jul 9, 2026
Signed-off-by: Henrique Tolentino <htolentino@nvidia.com>
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.

2 participants