Skip to content

feat(studio): Stop Preview and show logs tab - #1104

Merged
steramae-nvidia merged 3 commits into
mainfrom
steramae/dd-stop-n-logs
Aug 7, 2026
Merged

feat(studio): Stop Preview and show logs tab#1104
steramae-nvidia merged 3 commits into
mainfrom
steramae/dd-stop-n-logs

Conversation

@steramae-nvidia

@steramae-nvidia steramae-nvidia commented Aug 5, 2026

Copy link
Copy Markdown
Contributor
Screenshot 2026-08-05 at 2 20 42 PM Screenshot 2026-08-05 at 2 20 18 PM

Signed-off-by: Sean Teramae steramae@nvidia.com

Summary by CodeRabbit

New Features

  • Added controls for configuring maximum parallel requests, including defaults, limits, reset behavior, and guidance.
  • Added the ability to stop active data previews with clear status feedback.
  • Added a dedicated Logs tab with viewing, loading, error handling, and download support.
  • Added phishing-focused synthetic dataset templates for evaluation and supervised fine-tuning.
  • Added default reasoning-content extraction for supported LLM columns.
  • Updated the default build model selection.

Bug Fixes

  • Prevented older preview operations from affecting newer previews.
  • Improved profiler empty states and redirected users to the Logs tab.
  • Preserved inference and concurrency settings when configuring or cloning models.

@steramae-nvidia
steramae-nvidia requested review from a team as code owners August 5, 2026 20:41
@steramae-nvidia

Copy link
Copy Markdown
Contributor Author

This change is part of the following stack:

Change managed by git-spice.

@github-actions github-actions Bot added the feat label Aug 5, 2026
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: b068ebbe-7b94-4d9b-a126-adf78f0a2cd8

📥 Commits

Reviewing files that changed from the base of the PR and between c0dbe85 and c67a505.

📒 Files selected for processing (15)
  • web/packages/studio/src/components/CreateFilesetStart/templates.ts
  • web/packages/studio/src/components/ModelConfigPanel/index.tsx
  • web/packages/studio/src/components/NewDataDesignerJobForm/usePreview.test.tsx
  • web/packages/studio/src/components/NewDataDesignerJobForm/usePreview.ts
  • web/packages/studio/src/constants/constants.ts
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/BuilderToolbar.tsx
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/columns.test.ts
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/columns.ts
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/index.tsx
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/models.test.ts
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/models.ts
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/useJobBuilder.ts
  • web/packages/studio/src/routes/DataDesignerJobDetailsRoute/DatasetProfilerSection.tsx
  • web/packages/studio/src/routes/DataDesignerJobDetailsRoute/JobLogsSection.tsx
  • web/packages/studio/src/routes/DataDesignerJobDetailsRoute/index.tsx
🚧 Files skipped from review as they are similar to previous changes (15)
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/useJobBuilder.ts
  • web/packages/studio/src/components/NewDataDesignerJobForm/usePreview.test.tsx
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/index.tsx
  • web/packages/studio/src/components/ModelConfigPanel/index.tsx
  • web/packages/studio/src/routes/DataDesignerJobDetailsRoute/JobLogsSection.tsx
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/columns.test.ts
  • web/packages/studio/src/components/NewDataDesignerJobForm/usePreview.ts
  • web/packages/studio/src/routes/DataDesignerJobDetailsRoute/index.tsx
  • web/packages/studio/src/routes/DataDesignerJobDetailsRoute/DatasetProfilerSection.tsx
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/models.ts
  • web/packages/studio/src/constants/constants.ts
  • web/packages/studio/src/components/CreateFilesetStart/templates.ts
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/BuilderToolbar.tsx
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/models.test.ts
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/columns.ts

📝 Walkthrough

Walkthrough

The changes add model inference defaults and column defaults, support preview cancellation, add phishing fileset templates, and move job logs to a dedicated Logs tab with status-aware initial selection.

Changes

Data Designer build configuration

Layer / File(s) Summary
Inference parameters and model configuration
web/packages/studio/src/constants/constants.ts, web/packages/studio/src/routes/DataDesignerJobBuildRoute/models.ts, web/packages/studio/src/components/ModelConfigPanel/index.tsx, web/packages/studio/src/routes/DataDesignerJobBuildRoute/models.test.ts
Adds text and embedding inference defaults, bounded parallel-request serialization and restoration, extra_body preservation, and a controlled configuration slider.
Column default values
web/packages/studio/src/routes/DataDesignerJobBuildRoute/columns.ts, web/packages/studio/src/routes/DataDesignerJobBuildRoute/useJobBuilder.ts, web/packages/studio/src/routes/DataDesignerJobBuildRoute/columns.test.ts
Adds default reasoning extraction values for LLM columns and merges them with explicit template values.

Preview cancellation

Layer / File(s) Summary
Preview cancellation state
web/packages/studio/src/components/NewDataDesignerJobForm/usePreview.ts, web/packages/studio/src/components/NewDataDesignerJobForm/usePreview.test.tsx
Adds active-preview cancellation, run identifiers, guarded cleanup, and cancellation tests.
Preview stop control
web/packages/studio/src/routes/DataDesignerJobBuildRoute/BuilderToolbar.tsx, web/packages/studio/src/routes/DataDesignerJobBuildRoute/index.tsx
Passes the stop handler to the toolbar and displays a Stop button during preview generation.

Data Designer job logs

Layer / File(s) Summary
Job logs panel and tabs
web/packages/studio/src/routes/DataDesignerJobDetailsRoute/JobLogsSection.tsx, web/packages/studio/src/routes/DataDesignerJobDetailsRoute/index.tsx
Adds routed log loading, log states, a Logs tab, and terminal-status-based initial tab selection.
Profiler log separation
web/packages/studio/src/routes/DataDesignerJobDetailsRoute/DatasetProfilerSection.tsx
Removes embedded log viewing and directs running, error, and no-analysis states to the Logs tab.

Phishing fileset templates

Layer / File(s) Summary
Phishing corpus templates
web/packages/studio/src/components/CreateFilesetStart/templates.ts
Adds synthetic phishing evaluation and SFT templates with safety rules, labels, metadata, and structured completions.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant BuilderToolbar
  participant DataDesignerJobBuildRoute
  participant usePreview
  participant PreviewStream
  User->>BuilderToolbar: Click Stop
  BuilderToolbar->>DataDesignerJobBuildRoute: Invoke onStopPreview
  DataDesignerJobBuildRoute->>usePreview: Invoke stopPreview
  usePreview->>PreviewStream: Abort active stream
  PreviewStream-->>usePreview: Return AbortError
  usePreview-->>BuilderToolbar: Append Preview stopped.
Loading
sequenceDiagram
  participant DataDesignerJobDetailsRoute
  participant JobLogsSection
  participant useJobLogs
  participant LogViewer
  DataDesignerJobDetailsRoute->>JobLogsSection: Render Logs tab
  JobLogsSection->>useJobLogs: Load routed job logs
  useJobLogs-->>JobLogsSection: Return status and logs
  JobLogsSection->>LogViewer: Render logs and download configuration
Loading

Possibly related PRs

Suggested reviewers: htolentino-nvidia, marcusds

🚥 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 clearly summarizes the primary Studio changes: stopping previews and adding a logs tab.
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 steramae/dd-stop-n-logs

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: 2

🧹 Nitpick comments (1)
web/packages/studio/src/routes/DataDesignerJobDetailsRoute/index.tsx (1)

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

Guard the tab value before storing it.

onValueChange supplies a string. The assertion can store an unsupported value in selectedTab. Narrow it with a JobDetailsTab type guard.

Proposed fix
+const isJobDetailsTab = (value: string): value is JobDetailsTab =>
+  value === 'profile' || value === 'data' || value === 'output' || value === 'logs';
+
- onValueChange={(value) => setSelectedTab(value as JobDetailsTab)}
+ onValueChange={(value) => {
+   if (isJobDetailsTab(value)) setSelectedTab(value);
+ }}

As per coding guidelines, “Use type guards and narrowing instead of unnecessary type assertions.”

🤖 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/DataDesignerJobDetailsRoute/index.tsx` at line
160, Update the onValueChange handler in the selected-tab control to validate
the incoming string with a JobDetailsTab type guard before calling
setSelectedTab. Only store values recognized as valid JobDetailsTab members, and
remove the direct type assertion.

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/studio/src/components/ModelConfigPanel/index.tsx`:
- Around line 150-162: The max_parallel_requests onChange handler in the
SliderWithTextInput field currently stores decimal values; normalize the
incoming value to an integer before passing it to inferenceParamsField.onChange,
while preserving the existing fallback and field update behavior.

In
`@web/packages/studio/src/routes/DataDesignerJobDetailsRoute/DatasetProfilerSection.tsx`:
- Line 71: Update both descriptions in the profiler empty/loading state to say
“Review the Logs tab for details.” instead of “Review the job logs below for
details.”, preserving the surrounding UI and behavior.

---

Nitpick comments:
In `@web/packages/studio/src/routes/DataDesignerJobDetailsRoute/index.tsx`:
- Line 160: Update the onValueChange handler in the selected-tab control to
validate the incoming string with a JobDetailsTab type guard before calling
setSelectedTab. Only store values recognized as valid JobDetailsTab members, and
remove the direct type assertion.
🪄 Autofix

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: ee0daca9-62a0-45b8-9036-25fb43ccc8b2

📥 Commits

Reviewing files that changed from the base of the PR and between 73670d7 and 1f17a2b.

📒 Files selected for processing (9)
  • web/packages/studio/src/components/ModelConfigPanel/index.tsx
  • web/packages/studio/src/components/NewDataDesignerJobForm/usePreview.test.tsx
  • web/packages/studio/src/components/NewDataDesignerJobForm/usePreview.ts
  • web/packages/studio/src/constants/constants.ts
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/BuilderToolbar.tsx
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/index.tsx
  • web/packages/studio/src/routes/DataDesignerJobDetailsRoute/DatasetProfilerSection.tsx
  • web/packages/studio/src/routes/DataDesignerJobDetailsRoute/JobLogsSection.tsx
  • web/packages/studio/src/routes/DataDesignerJobDetailsRoute/index.tsx

Comment thread web/packages/studio/src/components/ModelConfigPanel/index.tsx
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 31633/40258 78.6% 63.2%
Integration Tests 18390/38193 48.1% 20.8%

@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: 2

🤖 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/studio/src/components/CreateFilesetStart/templates.ts`:
- Around line 169-189: Update the fileset template around the `analysis` and
`completion` columns to enforce verdict consistency before exporting `analysis`.
Ensure rows are rejected or regenerated unless `is_likely_phishing` exactly
matches whether `label` equals `"phishing"`; preserve the existing `completion`
copy only for valid analyses.
- Around line 19-28: Validate generated corpus rows in the data-designer
persistence flow before DataDesignerResultManager.save_artifacts() accepts them,
rather than relying only on SYNTHETIC_CORPUS_RULES. Reject or regenerate any row
containing clickable/live URLs, domains not ending in .example, real identities,
phone numbers, addresses, or other personal data, and persist only rows that
pass these checks.
🪄 Autofix

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: 4ccd0757-4805-4827-af2f-9cb5fc13d45c

📥 Commits

Reviewing files that changed from the base of the PR and between 1f17a2b and ac03e1e.

📒 Files selected for processing (8)
  • web/packages/studio/src/components/CreateFilesetStart/templates.ts
  • web/packages/studio/src/components/ModelConfigPanel/index.tsx
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/columns.test.ts
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/columns.ts
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/models.test.ts
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/models.ts
  • web/packages/studio/src/routes/DataDesignerJobBuildRoute/useJobBuilder.ts
  • web/packages/studio/src/routes/DataDesignerJobDetailsRoute/DatasetProfilerSection.tsx
🚧 Files skipped from review as they are similar to previous changes (2)
  • web/packages/studio/src/routes/DataDesignerJobDetailsRoute/DatasetProfilerSection.tsx
  • web/packages/studio/src/components/ModelConfigPanel/index.tsx

Comment thread web/packages/studio/src/components/CreateFilesetStart/templates.ts
Comment thread web/packages/studio/src/components/CreateFilesetStart/templates.ts
@steramae-nvidia
steramae-nvidia added this pull request to the merge queue Aug 6, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Aug 6, 2026
@steramae-nvidia
steramae-nvidia added this pull request to the merge queue Aug 6, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Aug 6, 2026
Signed-off-by: Sean Teramae <steramae@nvidia.com>
Signed-off-by: Sean Teramae <steramae@nvidia.com>
Signed-off-by: Sean Teramae <steramae@nvidia.com>
@steramae-nvidia
steramae-nvidia force-pushed the steramae/dd-stop-n-logs branch from ac03e1e to c67a505 Compare August 7, 2026 18:38
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@steramae-nvidia
steramae-nvidia added this pull request to the merge queue Aug 7, 2026
Merged via the queue into main with commit bd90a90 Aug 7, 2026
57 of 96 checks passed
@steramae-nvidia
steramae-nvidia deleted the steramae/dd-stop-n-logs branch August 7, 2026 19:16
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