Skip to content

UPSTREAM: <carry>: fix(frontend): add title tooltip to truncated parameter names in DetailsTable - #404

Open
jira-autofix[bot] wants to merge 3 commits into
masterfrom
autofix/rhoaieng-56506
Open

UPSTREAM: <carry>: fix(frontend): add title tooltip to truncated parameter names in DetailsTable#404
jira-autofix[bot] wants to merge 3 commits into
masterfrom
autofix/rhoaieng-56506

Conversation

@jira-autofix

@jira-autofix jira-autofix Bot commented Jul 11, 2026

Copy link
Copy Markdown

Summary

  • Fix CSS layout issue in DetailsTable component where input parameter names would wrap to the next line due to maxWidth: 300 hard cap
  • Replace maxWidth with overflow: hidden, text-overflow: ellipsis, and white-space: nowrap for proper text truncation
  • Add title attribute to key spans so truncated parameter names show full text on hover
  • Fix TypeScript compilation errors (TS2322) by extracting a type-narrowed keyTitle variable since KeyValue key type includes React.JSX.Element
  • Fix Prettier formatting to match project conventions for JSX elements with title attributes

Test plan

  • Verify long parameter names in pipeline node details show ellipsis truncation instead of wrapping
  • Verify hovering over truncated parameter names shows full name in tooltip
  • Verify DetailsTable renders correctly for JSON values, text values, and custom value components
  • Verify TypeScript compilation passes (npm run typecheck)
  • Verify Prettier formatting passes (npm run format:check)

Fixes: RHOAIENG-56506

Summary by CodeRabbit

  • New Features

    • Long field names in details tables now truncate cleanly and display the full text on hover.
  • Bug Fixes

    • Improved handling of lengthy keys to prevent layout issues while preserving access to their complete names.
  • Tests

    • Updated rendering tests for consistent, reliable class names and snapshots.

@openshift-ci
openshift-ci Bot requested review from HumairAK and nsingla July 11, 2026 03:04
@openshift-ci

openshift-ci Bot commented Jul 11, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign dsp-developers for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

DetailsTable key cells now hide overflow, prevent wrapping, and display ellipses for truncated text. Both key-rendering paths expose the full key through a title attribute. Tests mock typestyle with deterministic class names, and inline snapshots were updated across the rendering cases.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 9 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description covers the change and tests, but it does not use the required template headings or include the checklist items. Add a "Description of your changes" section and complete the checklist, including sign-off, PR title convention, and DSPO testing items.
✅ Passed checks (9 passed)
Check name Status Explanation
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.
Contribution Quality And Spam Detection ✅ Passed Focused DetailsTable UI/type fix; no second-category spam or security-theater signals, and the PR references a real Jira ticket.
No Hardcoded Secrets ✅ Passed No hardcoded secrets, embedded creds, or long base64 strings appear in the PR diff; only a tooltip/truncation change in DetailsTable.tsx (no CWE-798/321).
No Weak Cryptography ✅ Passed Diff only changes DetailsTable truncation/title logic; no MD5/SHA1/DES/RC4/3DES/Blowfish/ECB, custom crypto, or secret compares (CWE-327/CWE-208).
No Injection Vectors ✅ Passed Changed code only narrows key to string and sets a title attr; no CWE-79/89/94/78/502 sinks, and React text/attrs are escaped.
No Privileged Containers ✅ Passed Only frontend TSX/test files changed; no manifest/Dockerfile privilege settings found. No CWE-250/CWE-732 container-privilege issue present.
No Sensitive Data In Logs ✅ Passed No sensitive logging found in touched code; only truncation/title UI changes. No CWE-532/CWE-209 exposure present.
Title check ✅ Passed The title is specific and matches the main frontend change: adding a tooltip for truncated parameter names in DetailsTable.

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

@dsp-developers

Copy link
Copy Markdown

Commit Checker results:

**NOTE**: These are the results of the commit checker scans. 
If these are not commits from upstream kfp, then please ensure
you adhere to the commit checker formatting
commitchecker verson unknown
Validating 1 commits between 3a1866e3c7ce2d853e93d082255c511433773105...b3bb0ff17a73f2fd92d912760a69716727746358

UPSTREAM commit b3bb0ff has invalid summary fix(frontend): prevent input parameter name wrapping in DetailsTable.

UPSTREAM commits are validated against the following regular expression:
  ^UPSTREAM: (revert: )?(([\w.-]+/[\w-.-]+)?: )?(\d+:|<carry>:|<drop>:)

UPSTREAM commit summaries should look like:

  UPSTREAM: <PR number|carry|drop>: description

UPSTREAM commits which revert previous UPSTREAM commits should look like:

  UPSTREAM: revert: <normal upstream format>

Examples of valid summaries:

  UPSTREAM: 12345: A kube fix
  UPSTREAM: <carry>: A carried kube change
  UPSTREAM: <drop>: A dropped kube change
  UPSTREAM: revert: 12345: A kube revert


@coderabbitai coderabbitai 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.

🧹 Nitpick comments (2)
frontend/src/components/DetailsTable.tsx (1)

32-34: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Guarantee that long keys can shrink before ellipsis is applied.

This flex item has flex: 0 0 50% but no minWidth: 0; its automatic minimum may remain content-sized, allowing an unbroken key to widen the row instead of truncating. Verify this in supported browsers and add the explicit minimum-width override if needed.

Proposed fix
   key: {
     color: color.strong,
     flex: '0 0 50%',
     fontWeight: 'bold',
+    minWidth: 0,
     overflow: 'hidden',
     textOverflow: 'ellipsis',
     whiteSpace: 'nowrap',
🤖 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 `@frontend/src/components/DetailsTable.tsx` around lines 32 - 34, Add minWidth:
0 to the flex item style in DetailsTable so long, unbroken keys can shrink
within their 50% allocation and trigger the existing ellipsis behavior; verify
the resulting truncation in supported browsers.
frontend/src/components/DetailsTable.test.tsx (1)

22-34: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Add a regression test for the actual truncation styles.

This mock discards every CSS declaration and returns only plain class names, so the updated snapshots cannot detect removal or misapplication of overflow, textOverflow, or whiteSpace. Add a focused test that captures the stylesheet input or runs with real typestyle and verifies the key rule.

🤖 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 `@frontend/src/components/DetailsTable.test.tsx` around lines 22 - 34, The
typestyle mock in the DetailsTable tests discards CSS declarations, so snapshots
cannot verify truncation styling. Update the mock or add a focused test around
the stylesheet mock to capture its input and assert the relevant rule includes
overflow, textOverflow, and whiteSpace declarations, or run that test with real
typestyle; ensure the regression test detects removal or misapplication of the
truncation styles.
🤖 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.

Nitpick comments:
In `@frontend/src/components/DetailsTable.test.tsx`:
- Around line 22-34: The typestyle mock in the DetailsTable tests discards CSS
declarations, so snapshots cannot verify truncation styling. Update the mock or
add a focused test around the stylesheet mock to capture its input and assert
the relevant rule includes overflow, textOverflow, and whiteSpace declarations,
or run that test with real typestyle; ensure the regression test detects removal
or misapplication of the truncation styles.

In `@frontend/src/components/DetailsTable.tsx`:
- Around line 32-34: Add minWidth: 0 to the flex item style in DetailsTable so
long, unbroken keys can shrink within their 50% allocation and trigger the
existing ellipsis behavior; verify the resulting truncation in supported
browsers.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Central YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 7d16b673-7946-47f9-b802-f805cab73763

📥 Commits

Reviewing files that changed from the base of the PR and between 3a1866e and b3bb0ff.

📒 Files selected for processing (2)
  • frontend/src/components/DetailsTable.test.tsx
  • frontend/src/components/DetailsTable.tsx

@dsp-developers

Copy link
Copy Markdown

A set of new images have been built to help with testing out this PR:
API Server: quay.io/opendatahub/ds-pipelines-api-server:pr-404
DSP DRIVER: quay.io/opendatahub/ds-pipelines-driver:pr-404
DSP LAUNCHER: quay.io/opendatahub/ds-pipelines-launcher:pr-404
Persistence Agent: quay.io/opendatahub/ds-pipelines-persistenceagent:pr-404
Scheduled Workflow Manager: quay.io/opendatahub/ds-pipelines-scheduledworkflow:pr-404
MLMD Server: quay.io/opendatahub/mlmd-grpc-server:latest
MLMD Envoy Proxy: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8:2.3.9-2
UI: quay.io/opendatahub/ds-pipelines-frontend:pr-404
TESTS: quay.io/opendatahub/ds-pipelines-tests:pr-404

@dsp-developers

Copy link
Copy Markdown

An OCP cluster where you are logged in as cluster admin is required.

The Data Science Pipelines team recommends testing this using the Data Science Pipelines Operator. Check here for more information on using the DSPO.

To use and deploy a DSP stack with these images (assuming the DSPO is deployed), first save the following YAML to a file named dspa.pr-404.yaml:

apiVersion: datasciencepipelinesapplications.opendatahub.io/v1
kind: DataSciencePipelinesApplication
metadata:
  name: pr-404
spec:
  dspVersion: v2
  apiServer:
    image: "quay.io/opendatahub/ds-pipelines-api-server:pr-404"
    argoDriverImage: "quay.io/opendatahub/ds-pipelines-driver:pr-404"
    argoLauncherImage: "quay.io/opendatahub/ds-pipelines-launcher:pr-404"
  persistenceAgent:
    image: "quay.io/opendatahub/ds-pipelines-persistenceagent:pr-404"
  scheduledWorkflow:
    image: "quay.io/opendatahub/ds-pipelines-scheduledworkflow:pr-404"
  mlmd:  
    deploy: true  # Optional component
    grpc:
      image: "quay.io/opendatahub/mlmd-grpc-server:latest"
    envoy:
      image: "registry.redhat.io/openshift-service-mesh/proxyv2-rhel8:2.3.9-2"
  mlpipelineUI:
    deploy: true  # Optional component 
    image: "quay.io/opendatahub/ds-pipelines-frontend:pr-404"
  objectStorage:
    minio:
      deploy: true
      image: 'quay.io/opendatahub/minio:RELEASE.2019-08-14T20-37-41Z-license-compliance'

Then run the following:

cd $(mktemp -d)
git clone git@github.com:opendatahub-io/data-science-pipelines.git
cd data-science-pipelines/
git fetch origin pull/404/head
git checkout -b pullrequest b3bb0ff17a73f2fd92d912760a69716727746358
oc apply -f dspa.pr-404.yaml

More instructions here on how to deploy and test a Data Science Pipelines Application.

@jira-autofix jira-autofix Bot changed the title fix(frontend): prevent input parameter name wrapping in DetailsTable UPSTREAM: <carry>: fix input parameter name wrapping in DetailsTable Jul 11, 2026
@dsp-developers

Copy link
Copy Markdown

Commit Checker results:

**NOTE**: These are the results of the commit checker scans. 
If these are not commits from upstream kfp, then please ensure
you adhere to the commit checker formatting
commitchecker verson unknown
Validating 2 commits between 3a1866e3c7ce2d853e93d082255c511433773105...a937636d5d4e2a02a6d70b764fa84aa6e26233a0

UPSTREAM commit b3bb0ff has invalid summary fix(frontend): prevent input parameter name wrapping in DetailsTable.

UPSTREAM commits are validated against the following regular expression:
  ^UPSTREAM: (revert: )?(([\w.-]+/[\w-.-]+)?: )?(\d+:|<carry>:|<drop>:)

UPSTREAM commit summaries should look like:

  UPSTREAM: <PR number|carry|drop>: description

UPSTREAM commits which revert previous UPSTREAM commits should look like:

  UPSTREAM: revert: <normal upstream format>

Examples of valid summaries:

  UPSTREAM: 12345: A kube fix
  UPSTREAM: <carry>: A carried kube change
  UPSTREAM: <drop>: A dropped kube change
  UPSTREAM: revert: 12345: A kube revert


@dsp-developers

Copy link
Copy Markdown

Change to PR detected. A new PR build was completed.
A set of new images have been built to help with testing out this PR:
API Server: quay.io/opendatahub/ds-pipelines-api-server:pr-404
DSP DRIVER: quay.io/opendatahub/ds-pipelines-driver:pr-404
DSP LAUNCHER: quay.io/opendatahub/ds-pipelines-launcher:pr-404
Persistence Agent: quay.io/opendatahub/ds-pipelines-persistenceagent:pr-404
Scheduled Workflow Manager: quay.io/opendatahub/ds-pipelines-scheduledworkflow:pr-404
MLMD Server: quay.io/opendatahub/mlmd-grpc-server:latest
MLMD Envoy Proxy: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8:2.3.9-2
UI: quay.io/opendatahub/ds-pipelines-frontend:pr-404
TESTS: quay.io/opendatahub/ds-pipelines-tests:pr-404

…ng in DetailsTable

Assisted-by: Claude Opus 4.6 <noreply@anthropic.com>
@jira-autofix jira-autofix Bot changed the title UPSTREAM: <carry>: fix input parameter name wrapping in DetailsTable UPSTREAM: <carry>: fix(frontend): prevent input parameter name wrapping in DetailsTable Jul 11, 2026
@jira-autofix
jira-autofix Bot force-pushed the autofix/rhoaieng-56506 branch from a937636 to 6d3bb64 Compare July 11, 2026 07:52
@dsp-developers

Copy link
Copy Markdown

Commit Checker results:

**NOTE**: These are the results of the commit checker scans. 
If these are not commits from upstream kfp, then please ensure
you adhere to the commit checker formatting
commitchecker verson unknown
Validating 1 commits between 3a1866e3c7ce2d853e93d082255c511433773105...6d3bb64444f7bf89ec70449077818e80157e29ed

@dsp-developers

Copy link
Copy Markdown

Change to PR detected. A new PR build was completed.
A set of new images have been built to help with testing out this PR:
API Server: quay.io/opendatahub/ds-pipelines-api-server:pr-404
DSP DRIVER: quay.io/opendatahub/ds-pipelines-driver:pr-404
DSP LAUNCHER: quay.io/opendatahub/ds-pipelines-launcher:pr-404
Persistence Agent: quay.io/opendatahub/ds-pipelines-persistenceagent:pr-404
Scheduled Workflow Manager: quay.io/opendatahub/ds-pipelines-scheduledworkflow:pr-404
MLMD Server: quay.io/opendatahub/mlmd-grpc-server:latest
MLMD Envoy Proxy: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8:2.3.9-2
UI: quay.io/opendatahub/ds-pipelines-frontend:pr-404
TESTS: quay.io/opendatahub/ds-pipelines-tests:pr-404

…meter names in DetailsTable

Add title attribute to key spans so users can see the full parameter name
on hover when the text is truncated by ellipsis overflow.

Assisted-by: Claude claude-opus-4-6 <noreply@anthropic.com>
@jira-autofix jira-autofix Bot changed the title UPSTREAM: <carry>: fix(frontend): prevent input parameter name wrapping in DetailsTable fix(frontend): prevent input parameter name wrapping in DetailsTable Jul 12, 2026
@dsp-developers

Copy link
Copy Markdown

Commit Checker results:

**NOTE**: These are the results of the commit checker scans. 
If these are not commits from upstream kfp, then please ensure
you adhere to the commit checker formatting
commitchecker verson unknown
Validating 2 commits between 3a1866e3c7ce2d853e93d082255c511433773105...3e032301c010c4f66d34616460d96ac741ebe104

…ier formatting in DetailsTable

Fix TypeScript compilation errors (TS2322) at lines 94 and 117 where
the title attribute received `string | Element | undefined` but
expected `string | undefined`. Extract a `keyTitle` variable that
narrows the type via typeof check. Also fix Prettier formatting by
breaking the JSX span elements with title attributes into multi-line
format matching the project's established pattern.

RHOAIENG-56506

Assisted-by: Claude claude-opus-4-6 <noreply@anthropic.com>
@jira-autofix jira-autofix Bot changed the title fix(frontend): prevent input parameter name wrapping in DetailsTable UPSTREAM: <carry>: fix(frontend): add title tooltip to truncated parameter names in DetailsTable Jul 12, 2026
@dsp-developers

Copy link
Copy Markdown

Commit Checker results:

**NOTE**: These are the results of the commit checker scans. 
If these are not commits from upstream kfp, then please ensure
you adhere to the commit checker formatting
commitchecker verson unknown
Validating 3 commits between 3a1866e3c7ce2d853e93d082255c511433773105...b80f931696fb4eeae5b0bbba6dc44b48245c5287

@dsp-developers

Copy link
Copy Markdown

Change to PR detected. A new PR build was completed.
A set of new images have been built to help with testing out this PR:
API Server: quay.io/opendatahub/ds-pipelines-api-server:pr-404
DSP DRIVER: quay.io/opendatahub/ds-pipelines-driver:pr-404
DSP LAUNCHER: quay.io/opendatahub/ds-pipelines-launcher:pr-404
Persistence Agent: quay.io/opendatahub/ds-pipelines-persistenceagent:pr-404
Scheduled Workflow Manager: quay.io/opendatahub/ds-pipelines-scheduledworkflow:pr-404
MLMD Server: quay.io/opendatahub/mlmd-grpc-server:latest
MLMD Envoy Proxy: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8:2.3.9-2
UI: quay.io/opendatahub/ds-pipelines-frontend:pr-404
TESTS: quay.io/opendatahub/ds-pipelines-tests:pr-404

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