Skip to content

UN-3770 [MISC] Remove noisy tooltips from the resource list table - #2230

Merged
chandrasekharan-zipstack merged 6 commits into
mainfrom
fix/resource-table-tooltips
Aug 7, 2026
Merged

UN-3770 [MISC] Remove noisy tooltips from the resource list table#2230
chandrasekharan-zipstack merged 6 commits into
mainfrom
fix/resource-table-tooltips

Conversation

@chandrasekharan-zipstack

@chandrasekharan-zipstack chandrasekharan-zipstack commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

What

  • Remove the always-on Manage Co-Owners tooltip that wrapped the owner cell in ResourceTable.
  • Narrow the owner-name tooltip to the text actually rendered (Me, user +2) instead of the joined list of every co-owner email.

Why

Follow-up polish on #2208. On the resource list pages (LLMs, adapters, connectors, Prompt Studio, workflows) hovering anywhere in the Owned By cell fired the Manage Co-Owners tooltip on every row. When the owner's email was long enough to be truncated, antd's ellipsis tooltip fired at the same time, so two tooltips stacked on top of each other and covered the adjacent rows.

The name-level tooltip listing all co-owner emails added a third source of noise for a detail the co-owner modal already shows on click.

How

  • Dropped the <Tooltip title="Manage Co-Owners"> wrapper; the owner cell is now a bare <button> carrying aria-label="Manage co-owners", so the action is still announced to screen readers and the click behaviour is unchanged.
  • Replaced the computed ownerTooltip (which joined owner_emails) with the displayed `${name}${extra}` string.

No change was needed for the Name, description or email tooltips: antd's EllipsisTooltip already forces open={false} when the text is not actually truncated, so those only surface on genuine overflow. The same gating now means the owner-name tooltip effectively never appears for short names.

Can this PR break any existing features. If yes, please list possible items. If no, please explain why. (PS: Admins do not merge the PR without this section filled)

No. Presentation-only change scoped to one component:

  • The co-owner click handler, its stopPropagation, and the row-click behaviour are untouched.
  • owner_emails is still read for the primary-owner/created_by_email fallback — only its use as tooltip text was removed.
  • Discoverability of the co-owner action is preserved via aria-label plus the existing hover affordance on the owner button.

Database Migrations

  • None.

Env Config

  • None.

Related Issues or PRs

Notes on Testing

  • Built and deployed to the chandru-unstract-dev namespace (run 31153963693); ArgoCD sync succeeded and the platform/runner/backend health probes are returning 200.
  • Not yet manually verified in the browser. To check: open the LLMs settings list and hover an owner cell — the Manage Co-Owners popup should be gone, and the email tooltip should appear only on genuinely truncated addresses.
  • Pod readiness and migration state were not checked on the dev namespace (bastion unavailable); this change ships no migrations.

Checklist

I have read and understood the Contribution Guidelines.

Drop the always-on "Manage Co-Owners" tooltip wrapping the owner cell —
it fired on every row hover and stacked on top of the ellipsis tooltip of
the truncated owner email. The button keeps an aria-label so the action
is still announced.

Narrow the owner-name tooltip to the text actually rendered instead of
the joined co-owner email list, so antd's ellipsis gating means it only
appears when the name is genuinely truncated.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UpQ4upCajYZKzTFLL23cT1
@coderabbitai

coderabbitai Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1342a34b-f332-4b18-b74f-fc1aab14839f

📥 Commits

Reviewing files that changed from the base of the PR and between 01ed48a and be1d58f.

📒 Files selected for processing (1)
  • frontend/src/components/widgets/resource-table/ResourceTable.jsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • frontend/src/components/widgets/resource-table/ResourceTable.jsx

Summary by CodeRabbit

  • Bug Fixes
    • Updated co-owner tooltips to show the visible owner name and count instead of listing email addresses.
    • Improved accessibility for the co-owner management button with a descriptive label.
    • Added screen-reader-only guidance to make co-owner controls easier to understand without changing the table layout.

Walkthrough

ResourceTable limits co-owner tooltip content to the visible owner name and count. The co-owner button no longer uses an Ant Design tooltip and includes visually hidden “Manage co-owners” text.

Changes

Resource owner display

Layer / File(s) Summary
Owner tooltip and management control
frontend/src/components/widgets/resource-table/ResourceTable.jsx, frontend/src/components/widgets/resource-table/ResourceTable.css
The tooltip no longer lists owner emails. The owner tooltip shows the visible owner name and co-owner count. The management button uses visually hidden text and preserves click propagation handling.

Estimated code review effort: 1 (Trivial) | ~5 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the removal of noisy tooltips from the resource list table.
Description check ✅ Passed The description explains what changed, why, implementation details, risk, testing, migrations, and environment configuration.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
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 fix/resource-table-tooltips

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@chandrasekharan-zipstack chandrasekharan-zipstack changed the title UN-3770 [FIX] Remove noisy tooltips from the resource list table UN-3770 [MISC] Remove noisy tooltips from the resource list table Aug 7, 2026
@chandrasekharan-zipstack
chandrasekharan-zipstack marked this pull request as ready for review August 7, 2026 08:35
@greptile-apps

greptile-apps Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR removes the owner-cell tooltip and limits the ellipsis tooltip to the displayed owner text while preserving the co-owner action’s accessible context.

  • Replaces the tooltip-wrapped owner control with a bare button.
  • Adds visually hidden action and resource text without overriding the owner information in the button’s accessible name.
  • Adds shared screen-reader-only styling for the hidden text.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
frontend/src/components/widgets/resource-table/ResourceTable.jsx Removes noisy tooltip behavior and completes the prior accessibility fix by retaining owner details while appending action and resource context.
frontend/src/components/widgets/resource-table/ResourceTable.css Adds conventional visually hidden styling for the accessible action text.

Reviews (5): Last reviewed commit: "UN-3770 [FIX] Name the resource in the c..." | Re-trigger Greptile

Comment thread frontend/src/components/widgets/resource-table/ResourceTable.jsx Outdated
Every owner button announced the same "Manage co-owners", so assistive
tech users had to rebuild row context to tell the controls apart. Fold
the resource name into the label.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UpQ4upCajYZKzTFLL23cT1

@pk-zipstack pk-zipstack 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.

Reviewed the single-file diff. The tooltip removal itself is sound — antd v5's EllipsisTooltip does force open={false} when the text isn't truncated, so the remaining ellipsis={{ tooltip }} usages only fire on genuine overflow, and dropping the Tooltip wrapper doesn't touch the click handler, stopPropagation, or the owner_emails fallback. Tooltip and ownerEmails both still have other users in the file, so nothing goes unused.

One issue on the new aria-label (inline), plus one scope note:

The same stacked-tooltip bug is still live in the card/grid view. frontend/src/components/widgets/card-grid-view/CardFieldComponents.jsx (OwnerFieldRow, ~L131-155) nests <Tooltip title={email}> inside <Tooltip title="Manage Co-Owners">. That inner tooltip is a plain Tooltip, not an ellipsis-gated Typography one, so both tooltips fire on every hover regardless of truncation — strictly worse than what this PR fixes in ResourceTable. That view backs the API Deployments and Pipelines pages (ApiDeploymentCardConfig.jsx, PipelineCardConfig.jsx), so users still hit the double-tooltip there. Worth folding into this PR or a follow-up, otherwise the two list surfaces behave differently.

Comment thread frontend/src/components/widgets/resource-table/ResourceTable.jsx Outdated
An aria-label replaces the accessible name computed from the button's
contents, so labelling the action hid the owner name and email that the
Owned By column exists to convey. Move the action into a visually hidden
child instead, letting the content-derived name carry both.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UpQ4upCajYZKzTFLL23cT1
Two rows owned by the same user produced identical accessible names, so
tabbing between owner buttons gave nothing to tell them apart. Append the
resource title, guarded so a row without one falls back to the action
alone rather than reading "for undefined".

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UpQ4upCajYZKzTFLL23cT1
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Frontend Lint Report (Biome)

All checks passed! No linting or formatting issues found.

@sonarqubecloud

sonarqubecloud Bot commented Aug 7, 2026

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Unstract test results

Per-group results

Status Group Tier Passed Failed Errors Skipped Duration (s)
e2e-api-deployment e2e 3 0 0 0 20.6
e2e-coowners e2e 1 0 0 0 1.5
e2e-etl e2e 1 0 0 0 8.8
e2e-login e2e 2 0 0 0 1.2
e2e-prompt-studio e2e 1 0 0 0 4.8
e2e-smoke e2e 2 0 0 0 3.0
e2e-workflow e2e 1 0 0 0 16.4
TOTAL 11 0 0 0 56.3

Critical paths

⚠️ Critical paths not yet covered

  • workflow-execution-fan-out — Multi-file workflow execution fans out to file-processing workers and rejoins. (declared coverage: no groups declared)
💤 Covered, but not exercised in this build
  • adapter-register-llm — Register and validate an LLM adapter. (covered by integration-backend; no result reported in this build)
  • workflow-author — Create a workflow; its source+destination endpoints materialise and are configurable. (covered by integration-backend; no result reported in this build)
  • api-deployment-provision — Deploying a workflow as an API mints a usable key and a resolvable endpoint. (covered by integration-backend; no result reported in this build)
  • api-deployment-auth — Unauthenticated or mis-scoped API-deployment calls are rejected before dispatch. (covered by integration-backend; no result reported in this build)
  • mcp-server-auth — Unauthenticated or mis-scoped hosted-MCP calls are rejected before any tool runs. (covered by integration-backend; no result reported in this build)
  • mcp-platform-auth — The org-scoped MCP endpoint stays behind the platform-API-key middleware; unauthenticated or mis-scoped calls reach no tool. (covered by integration-backend; no result reported in this build)
  • prompt-studio-author — Create a Prompt Studio project and add a prompt to it. (covered by integration-backend; no result reported in this build)
  • connector-register-test — Connector credentials are validated against the live system and stored encrypted. (covered by integration-backend; no result reported in this build)
  • usage-aggregate-read — Per-run token usage aggregates correctly and stays scoped to its organization. (covered by integration-backend; no result reported in this build)
✅ Covered critical paths
  • auth-login — covered by e2e-login
  • co-owner-manage — covered by e2e-coowners
  • workflow-create-execute — covered by e2e-workflow
  • api-deployment-run — covered by e2e-api-deployment
  • prompt-studio-fetch-response — covered by e2e-prompt-studio
  • pipeline-etl-execute — covered by e2e-etl
  • usage-token-tracking — covered by e2e-api-deployment
  • callback-result-delivery — covered by e2e-api-deployment

@chandrasekharan-zipstack
chandrasekharan-zipstack merged commit 6b916ea into main Aug 7, 2026
11 checks passed
@chandrasekharan-zipstack
chandrasekharan-zipstack deleted the fix/resource-table-tooltips branch August 7, 2026 14:26
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.

3 participants