Skip to content

Updated context center icons#29775

Open
Rohit0301 wants to merge 4 commits into
mainfrom
context-center-icons
Open

Updated context center icons#29775
Rohit0301 wants to merge 4 commits into
mainfrom
context-center-icons

Conversation

@Rohit0301

@Rohit0301 Rohit0301 commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Describe your changes:

Fixes #

I worked on ... because ...

Type of change:

  • Bug fix
  • Improvement
  • New feature
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation

High-level design:

N/A — small change.

Tests:

Use cases covered

Unit tests

Backend integration tests

Ingestion integration tests

Playwright (UI) tests

Manual testing performed

UI screen recording / screenshots:

Not applicable.

Checklist:

  • I have read the CONTRIBUTING document.
  • My PR title is Fixes <issue-number>: <short explanation>
  • My PR is linked to a GitHub issue via Fixes #<issue-number> above.
  • I have commented on my code, particularly in hard-to-understand areas.
  • For JSON Schema changes: I updated the migration scripts or explained why it is not needed.
  • For UI changes: I attached a screen recording and/or screenshots above.
  • I have added tests (unit / integration / Playwright as applicable) and listed them above.

Summary by Gitar

  • UI/UX improvements:
    • Replaced various external library icons with custom SVG assets across ContextCenter and KnowledgeCenter components to standardize the icon set.
    • Updated ButtonUtility styles and iconography to improve visual consistency and alignment across the UI.

This will update automatically on new commits.

Greptile Summary

This PR standardizes iconography across the ContextCenter and KnowledgeCenter components by replacing @untitledui/icons library icons with custom SVG assets, and updates ButtonUtility's tertiary style tokens.

  • Icon replacement (27 SVG files + 15 TSX components): All library icons in ContextCenter views (Archive, Articles, Documents, Memories, Dashboard) and the KnowledgeCenter hierarchy/panel are swapped for new custom SVGs imported as React components, with explicit height/width props instead of the library's size prop.
  • ButtonUtility style update: The tertiary variant's default text color changes from tw:text-fg-quaternary to tw:text-quaternary and the hover text color is hardcoded to tw:hover:text-utility-gray-600 (non-semantic token).
  • Sidebar navigation icons: All five ContextCenter sidebar entries now reference dedicated custom SVG components instead of createIconWithStroke-wrapped library icons.

Confidence Score: 4/5

Safe to merge once the open follow/unfollow icon inversion and data-testid collision issues from prior review cycles are addressed; the icon replacement itself is straightforward and low-risk.

The follow/unfollow icon state remains inverted from prior review feedback (users always see the wrong star icon), and multiple distinct buttons share data-testid='edit-memory-btn' making automated tests unreliable. The rest of the icon swap is mechanical and low-risk.

ArticleDetailHeader.component.tsx still carries the inverted follow icon logic and the ttw:shrink-0 typo from the prior review cycle.

Important Files Changed

Filename Overview
openmetadata-ui-core-components/src/main/resources/ui/src/components/base/buttons/button-utility.tsx Tertiary style tokens updated (tw:text-fg-quaternary → tw:text-quaternary, hover color hardcoded to tw:hover:text-utility-gray-600); JSX-element icon path does not inject data-icon, breaking the component's built-in transition/shrink/sizing selectors for all newly added icons.
openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx Switches all action-bar icons from @untitledui/icons to custom SVG assets; layout restructured with a wrapping Box; previously identified issues (inverted follow icon, data-testid collision, ttw: typo) remain unresolved.
openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/MemoriesView/MemoriesView.component.tsx Replaces Dropdown.DotsButton and library icons with a ButtonUtility + custom SVG for the memory manage menu; clock icon size increased from 12px to 16px.
openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/DocumentsView/DocumentsView.component.tsx Replaces Dropdown.DotsButton and library icons with custom SVGs; data-testid='edit-memory-btn' carried over to the document-manage button (copy-paste issue flagged in previous review thread).
openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/DocumentsView/DocumentFolderView.component.tsx Swaps folder/trash library icons for custom SVGs; iconLeading prop changed from component reference to JSX element.
openmetadata-ui/src/main/resources/ui/src/constants/LeftSidebar.constants.ts ContextCenter sidebar route icons replaced with dedicated custom SVG components, removing createIconWithStroke wrappers for all five routes.
openmetadata-ui/src/main/resources/ui/src/pages/ContextCenterPage/ContextCenterDashboardPage/ContextCenterDashboardPage.tsx Replaces File05, File06, Sun, and UploadCloud02 library icons with matching custom SVG assets in the dashboard pillar cards and upload button.
openmetadata-ui/src/main/resources/ui/src/pages/ContextCenterPage/ContextCenterMemoriesPage/ContextCenterMemoriesPage.tsx Replaces database, user, and funnel filter icons with custom SVG equivalents; no logic changes.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[ButtonUtility icon prop] --> B{isReactComponent?}
    B -->|Yes - component ref| C["Render &lt;Icon data-icon /&gt;"]
    B -->|No| D{isValidElement?}
    D -->|Yes - JSX element| E["Render element as-is\n(no data-icon)"]
    D -->|No| F[Render nothing]
    C --> G["✅ Gets data-icon styles:\n• shrink-0\n• size-4/5\n• text-current\n• transition-inherit-all"]
    E --> H["⚠️ Misses data-icon styles:\n• No auto-shrink\n• No auto-size\n• No transition"]
    I["Old pattern:\nicon={DotsVertical}"] --> B
    J["New pattern (this PR):\nicon={&lt;DotsVerticalIcon h=18 w=18 /&gt;}"] --> D
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[ButtonUtility icon prop] --> B{isReactComponent?}
    B -->|Yes - component ref| C["Render &lt;Icon data-icon /&gt;"]
    B -->|No| D{isValidElement?}
    D -->|Yes - JSX element| E["Render element as-is\n(no data-icon)"]
    D -->|No| F[Render nothing]
    C --> G["✅ Gets data-icon styles:\n• shrink-0\n• size-4/5\n• text-current\n• transition-inherit-all"]
    E --> H["⚠️ Misses data-icon styles:\n• No auto-shrink\n• No auto-size\n• No transition"]
    I["Old pattern:\nicon={DotsVertical}"] --> B
    J["New pattern (this PR):\nicon={&lt;DotsVerticalIcon h=18 w=18 /&gt;}"] --> D
Loading

Reviews (3): Last reviewed commit: "minor fix" | Re-trigger Greptile

@Rohit0301 Rohit0301 self-assigned this Jul 6, 2026
@Rohit0301 Rohit0301 requested a review from a team as a code owner July 6, 2026 12:02
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

❌ PR checklist incomplete

This PR cannot be merged until the following are addressed on its linked issue:

  • No GitHub issue is linked. Link an issue in the Development section of the PR (or add Fixes #12345 to the description). For a same-org cross-repo issue, add Fixes open-metadata/<repo>#123 to the description.

The fields live on the linked issue in the Shipping project (open the issue → right sidebar → Projects). After you set them, re-run this check (or push a commit) — issue/project changes do not re-trigger it automatically.

Maintainers can bypass this check by adding the skip-pr-checks label.

@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Hi there 👋 Thanks for your contribution!

The OpenMetadata team will review the PR shortly! Once it has been labeled as safe to test, the CI workflows
will start executing and we'll be able to make sure everything is working as expected.

Let us know if you need any help!

@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Hi there 👋 Thanks for your contribution!

The OpenMetadata team will review the PR shortly! Once it has been labeled as safe to test, the CI workflows
will start executing and we'll be able to make sure everything is working as expected.

Let us know if you need any help!

@Rohit0301 Rohit0301 force-pushed the context-center-icons branch from 6cea855 to 4f90d46 Compare July 6, 2026 12:04
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Hi there 👋 Thanks for your contribution!

The OpenMetadata team will review the PR shortly! Once it has been labeled as safe to test, the CI workflows
will start executing and we'll be able to make sure everything is working as expected.

Let us know if you need any help!

</Tooltip>
<ButtonUtility
color="tertiary"
data-testid="edit-memory-btn"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Quality: Duplicate/misleading data-testid 'edit-memory-btn' on manage buttons

Several dropdown trigger buttons for 'manage' actions were given data-testid="edit-memory-btn". In ArticleDetailHeader this replaces the previous data-testid="manage-button", which may break existing Playwright/unit selectors. The id is also semantically wrong on the document/article manage triggers (it is a manage/more-actions button, not an edit-memory button) and collides with the genuine edit-memory button used elsewhere in MemoriesView, making test selection ambiguous. Use a descriptive, unique testid such as manage-button.

Restore/give a descriptive testid for the manage dropdown trigger.:

data-testid="manage-button"
  • Apply fix

Check the box to apply the fix or reply for a change | Was this helpful? React with 👍 / 👎

@Rohit0301 Rohit0301 added the safe to test Add this label to run secure Github workflows on PRs label Jul 6, 2026
Comment on lines +600 to +605
data-testid="edit-memory-btn"
icon={ <DotsVerticalIcon height={18} width={18} />}
size="sm"
tooltip={t('label.manage-entity', {
entity: t('label.article'),
})}

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.

P2 The manage-article dots button now carries data-testid="edit-memory-btn", overwriting the previous data-testid="manage-button". Any Playwright test that locates this button by manage-button will silently fail to find it. The same copy-paste issue appears in DocumentsView.component.tsx where the dots button for document management also receives edit-memory-btn.

Suggested change
data-testid="edit-memory-btn"
icon={ <DotsVerticalIcon height={18} width={18} />}
size="sm"
tooltip={t('label.manage-entity', {
entity: t('label.article'),
})}
data-testid="manage-button"
icon={ <DotsVerticalIcon height={18} width={18} />}
size="sm"
tooltip={t('label.manage-entity', {
entity: t('label.article'),
})}

'tw:bg-primary tw:text-fg-quaternary tw:shadow-xs-skeuomorphic tw:ring-1 tw:ring-primary tw:ring-inset tw:hover:bg-primary_hover tw:hover:text-fg-quaternary_hover tw:disabled:shadow-xs tw:disabled:ring-disabled_subtle',
tertiary:
'tw:text-fg-quaternary tw:hover:bg-primary_hover tw:hover:text-fg-quaternary_hover',
'tw:text-quaternary tw:hover:bg-primary_hover tw:hover:text-utility-gray-600',

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.

P2 The hover text class tw:hover:text-utility-gray-600 is a raw palette value, not a semantic design token. Per the project's styling guidelines, hardcoded color values should be replaced with semantic tokens so the component respects light/dark mode and theme changes automatically.

Suggested change
'tw:text-quaternary tw:hover:bg-primary_hover tw:hover:text-utility-gray-600',
'tw:text-quaternary tw:hover:bg-primary_hover tw:hover:text-fg-quaternary_hover',

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

❌ UI Checkstyle Failed

❌ ESLint + Prettier + Organise Imports (src)

One or more source files have linting or formatting issues.

Affected files
  • openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx
    • openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/DocumentsView/DocumentFolderView.component.tsx
    • openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/DocumentsView/DocumentPreviewPanel.component.tsx
    • openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/DocumentsView/DocumentsView.component.tsx
    • openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/MemoriesView/MemoriesView.component.tsx
    • openmetadata-ui/src/main/resources/ui/src/components/KnowledgeCenter/KnowledgePagesHierarchy/KnowledgePagesHierarchy.tsx
    • openmetadata-ui/src/main/resources/ui/src/pages/ContextCenterPage/ContextCenterDashboardPage/ContextCenterDashboardPage.tsx
    • openmetadata-ui/src/main/resources/ui/src/pages/ContextCenterPage/ContextCenterMemoriesPage/ContextCenterMemoriesPage.tsx

Fix locally (fast - only checks files changed in this branch):

make ui-checkstyle-changed

@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

🔴 Playwright Results — 23 failure(s), 21 flaky

✅ 4444 passed · ❌ 23 failed · 🟡 21 flaky · ⏭️ 54 skipped

Shard Passed Failed Flaky Skipped
🟡 Shard 1 422 0 3 33
🔴 Shard 2 798 23 3 3
🟡 Shard 3 793 0 2 12
🟡 Shard 4 808 0 5 5
🟡 Shard 5 854 0 3 0
🟡 Shard 6 769 0 5 1

Genuine Failures (failed on all attempts)

Features/ContextCenter.spec.ts › edit-memory button on the row opens the modal in edit mode (shard 2)
Error: locator.click: Error: strict mode violation: getByTestId('memory-row-d2fefc1d-b00a-4605-95f0-c115be3ffd7c').getByTestId('edit-memory-btn') resolved to 2 elements:
    1) <button data-rac="" tabindex="0" type="button" data-testid="edit-memory-btn" id="react-aria3903992518-:r17:" data-react-aria-pressable="true" class="tw:group tw:relative tw:inline-flex tw:h-max tw:cursor-pointer tw:items-center tw:justify-center tw:rounded-md tw:p-1.5 tw:outline-focus-ring tw:transition tw:duration-100 tw:ease-linear tw:focus-visible:outline-2 tw:focus-visible:outline-offset-2 tw:disabled:cursor-not-allowed tw:disabled:text-fg-disabled_subtle tw:text-quaternary tw:hover:bg-primary_hov…>…</button> aka locator('[id="react-aria3903992518-:r17:"]')
    2) <button data-rac="" tabindex="0" type="button" aria-haspopup="true" aria-expanded="false" aria-label="Manage Memory" data-testid="edit-memory-btn" id="react-aria3903992518-:r19:" data-react-aria-pressable="true" class="tw:group tw:relative tw:inlin
Features/ContextCenter.spec.ts › delete button on the row deletes the memory after confirmation (shard 2)
�[31mTest timeout of 180000ms exceeded.�[39m
Features/ContextCenter.spec.ts › cancel button closes the modal without saving (shard 2)
Error: locator.click: Error: strict mode violation: getByTestId('memory-row-910e73fb-6f0c-4a5d-9c19-048ec72e3c67').getByTestId('edit-memory-btn') resolved to 2 elements:
    1) <button data-rac="" tabindex="0" type="button" data-testid="edit-memory-btn" id="react-aria8412793326-:r17:" data-react-aria-pressable="true" class="tw:group tw:relative tw:inline-flex tw:h-max tw:cursor-pointer tw:items-center tw:justify-center tw:rounded-md tw:p-1.5 tw:outline-focus-ring tw:transition tw:duration-100 tw:ease-linear tw:focus-visible:outline-2 tw:focus-visible:outline-offset-2 tw:disabled:cursor-not-allowed tw:disabled:text-fg-disabled_subtle tw:text-quaternary tw:hover:bg-primary_hov…>…</button> aka locator('[id="react-aria8412793326-:r17:"]')
    2) <button data-rac="" tabindex="0" type="button" aria-haspopup="true" aria-expanded="false" aria-label="Manage Memory" data-testid="edit-memory-btn" id="react-aria8412793326-:r19:" data-react-aria-pressable="true" class="tw:group tw:relative tw:inlin
Features/ContextCenter.spec.ts › delete button inside the modal deletes the memory (shard 2)
Error: locator.click: Error: strict mode violation: getByTestId('memory-row-4e07cf87-6419-45c5-8d3b-9cf28baa8ffc').getByTestId('edit-memory-btn') resolved to 2 elements:
    1) <button data-rac="" tabindex="0" type="button" data-testid="edit-memory-btn" id="react-aria27557510-:r17:" data-react-aria-pressable="true" class="tw:group tw:relative tw:inline-flex tw:h-max tw:cursor-pointer tw:items-center tw:justify-center tw:rounded-md tw:p-1.5 tw:outline-focus-ring tw:transition tw:duration-100 tw:ease-linear tw:focus-visible:outline-2 tw:focus-visible:outline-offset-2 tw:disabled:cursor-not-allowed tw:disabled:text-fg-disabled_subtle tw:text-quaternary tw:hover:bg-primary_hover…>…</button> aka locator('[id="react-aria27557510-:r17:"]')
    2) <button data-rac="" tabindex="0" type="button" aria-haspopup="true" aria-expanded="false" aria-label="Manage Memory" data-testid="edit-memory-btn" id="react-aria27557510-:r19:" data-react-aria-pressable="true" class="tw:group tw:relative tw:inline-fl
Features/ContextCenterArchivePage.spec.ts › full document lifecycle: folder expand icon, upload, delete, restore, and permanent delete (shard 2)
�[31mTest timeout of 180000ms exceeded.�[39m
Features/ContextCenterArticles.spec.ts › Empty article can be deleted immediately without polluting the list (shard 2)
�[31mTest timeout of 60000ms exceeded.�[39m
Features/ContextCenterArticles.spec.ts › Article detail layout, drawer, activity tab, and version page work (shard 2)
Error: �[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m(�[22m�[2m)�[22m failed

Locator: getByTestId('article-detail-header').getByTestId('manage-button')
Expected: visible
Timeout: 15000ms
Error: element(s) not found

Call log:
�[2m  - Expect "toBeVisible" with timeout 15000ms�[22m
�[2m  - waiting for getByTestId('article-detail-header').getByTestId('manage-button')�[22m

Features/ContextCenterArticles.spec.ts › Article copy, delete, sidebar delete, and same-name recreate do not preserve stale metadata (shard 2)
�[31mTest timeout of 180000ms exceeded.�[39m
Features/ContextCenterDocumentPage.spec.ts › delete single document from card menu removes it from the list (shard 2)
�[31mTest timeout of 180000ms exceeded.�[39m
Features/ContextCenterDocumentPage.spec.ts › move document to folder via card menu shows folder name on the card (shard 2)
�[31mTest timeout of 180000ms exceeded.�[39m
Features/ContextCenterDocumentPage.spec.ts › moving document to folder shows folder on card; re-opening menu shows current folder selected; clicking it again removes document from folder (shard 2)
�[31mTest timeout of 180000ms exceeded.�[39m
Features/ContextCenterDocumentPage.spec.ts › document appears nested in the folder tree after being moved to a folder (shard 2)
�[31mTest timeout of 180000ms exceeded.�[39m
Features/ContextCenterDocumentPage.spec.ts › clicking folder in sidebar shows only that folder documents and move menu show the current folder (shard 2)
�[31mTest timeout of 180000ms exceeded.�[39m
Features/ContextCenterDocumentPage.spec.ts › duplicate filename in same folder shows retry error; uploading same name to different folder succeeds; delete file and folder from UI (shard 2)
�[31mTest timeout of 180000ms exceeded.�[39m
Features/ContextCenterPermission.spec.ts › user with view-only permission cannot see create or delete actions, but can use share/vote/conversation actions (shard 2)
Error: �[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoHaveClass�[2m(�[22m�[32mexpected�[39m�[2m)�[22m failed

Locator: getByTestId('upvote-btn').locator('svg')
Expected pattern: �[32m/fill-utility-blue-500/�[39m
Received string:  �[31m""�[39m
Timeout: 15000ms

Call log:
�[2m  - Expect "toHaveClass" with timeout 15000ms�[22m
�[2m  - waiting for getByTestId('upvote-btn').locator('svg')�[22m
�[2m    19 × locator resolved to <svg width="18" fill="none" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg">…</svg>�[22m
�[2m       - unexpected value ""�[22m

Features/ContextCenterPermission.spec.ts › user with deleteAll permission can see delete action but not create action, and can delete an article (shard 2)
Error: �[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m(�[22m�[2m)�[22m failed

Locator: getByTestId('manage-button')
Expected: visible
Timeout: 15000ms
Error: element(s) not found

Call log:
�[2m  - Expect "toBeVisible" with timeout 15000ms�[22m
�[2m  - waiting for getByTestId('manage-button')�[22m

Features/ContextCenterPermission.spec.ts › user with all permissions can see create and delete actions (shard 2)
Error: �[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m(�[22m�[2m)�[22m failed

Locator: getByTestId('manage-button')
Expected: visible
Timeout: 15000ms
Error: element(s) not found

Call log:
�[2m  - Expect "toBeVisible" with timeout 15000ms�[22m
�[2m  - waiting for getByTestId('manage-button')�[22m

Features/ContextCenterPermission.spec.ts › user with editAll permission sees row move action but no upload, folder create, or delete actions, and can move a document (shard 2)
�[31mTest timeout of 180000ms exceeded.�[39m
Features/ContextCenterPermission.spec.ts › user with deleteAll permission sees row delete action but no upload, folder create, or move actions, and can delete a document (shard 2)
�[31mTest timeout of 180000ms exceeded.�[39m
Features/ContextCenterPermission.spec.ts › user with all permissions can see upload, folder create, and all row actions (shard 2)
�[31mTest timeout of 180000ms exceeded.�[39m
Features/ContextCenterPermission.spec.ts › user with deleteAll permission sees no row delete action on memories they do not own, but can delete their own memory from the modal (shard 2)
Error: �[2mexpect(�[22m�[31mlocator�[39m�[2m).not.�[22mtoBeVisible�[2m(�[22m�[2m)�[22m failed

Locator:  getByTestId('memory-row-2a0ae959-3706-4776-ba39-e89801f78881').getByTestId('edit-memory-btn')
Expected: not visible
Received: visible
Timeout:  15000ms

Call log:
�[2m  - Expect "not toBeVisible" with timeout 15000ms�[22m
�[2m  - waiting for getByTestId('memory-row-2a0ae959-3706-4776-ba39-e89801f78881').getByTestId('edit-memory-btn')�[22m
�[2m    18 × locator resolved to <button data-rac="" tabindex="0" type="button" aria-haspopup="true" aria-expanded="false" aria-label="Manage Memory" data-testid="edit-memory-btn" id="react-aria6947079063-:r1c:" data-react-aria-pressable="true" class="tw:group tw:relative tw:inline-flex tw:h-max tw:cursor-pointer tw:items-center tw:justify-center tw:rounded-md tw:p-1.5 tw:outline-focus-ring tw:transition tw:duration-100 tw:ease-linear tw:focus-visible:outline-2 tw:focus-visible:outline-offset-2 tw:disabled:cursor-not-allowed tw:disab…>…</button>�[2
Features/ContextCenterPermission.spec.ts › admin user can edit and save a memory owned by another user (shard 2)
Error: �[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m(�[22m�[2m)�[22m failed

Locator: getByTestId('memory-row-ed43bb74-94b3-476e-8f16-97eb96b3de47').getByTestId('edit-memory-btn')
Expected: visible
Error: strict mode violation: getByTestId('memory-row-ed43bb74-94b3-476e-8f16-97eb96b3de47').getByTestId('edit-memory-btn') resolved to 2 elements:
    1) <button data-rac="" tabindex="0" type="button" data-testid="edit-memory-btn" id="react-aria4197643778-:r2k:" data-react-aria-pressable="true" class="tw:group tw:relative tw:inline-flex tw:h-max tw:cursor-pointer tw:items-center tw:justify-center tw:rounded-md tw:p-1.5 tw:outline-focus-ring tw:transition tw:duration-100 tw:ease-linear tw:focus-visible:outline-2 tw:focus-visible:outline-offset-2 tw:disabled:cursor-not-allowed tw:disabled:text-fg-disabled_subtle tw:text-quaternary tw:hover:bg-primary_hov…>…</button> aka locator('[id="react-aria4197643778-:r2k:"]')
    2) <button data-rac="" tabindex="0" type="button" aria-haspop
Features/ContextCenterPermission.spec.ts › user with all permissions and owner can see Add Memory button and all row/modal actions (shard 2)
Error: �[2mexpect(�[22m�[31mlocator�[39m�[2m).�[22mtoBeVisible�[2m(�[22m�[2m)�[22m failed

Locator: getByTestId('memory-row-7f050683-f6c4-4a62-b9d8-bc54bb9d5f99').getByTestId('edit-memory-btn')
Expected: visible
Error: strict mode violation: getByTestId('memory-row-7f050683-f6c4-4a62-b9d8-bc54bb9d5f99').getByTestId('edit-memory-btn') resolved to 2 elements:
    1) <button data-rac="" tabindex="0" type="button" data-testid="edit-memory-btn" id="react-aria4920320730-:r1c:" data-react-aria-pressable="true" class="tw:group tw:relative tw:inline-flex tw:h-max tw:cursor-pointer tw:items-center tw:justify-center tw:rounded-md tw:p-1.5 tw:outline-focus-ring tw:transition tw:duration-100 tw:ease-linear tw:focus-visible:outline-2 tw:focus-visible:outline-offset-2 tw:disabled:cursor-not-allowed tw:disabled:text-fg-disabled_subtle tw:text-quaternary tw:hover:bg-primary_hov…>…</button> aka locator('[id="react-aria4920320730-:r1c:"]')
    2) <button data-rac="" tabindex="0" type="button" aria-haspop
🟡 21 flaky test(s) (passed on retry)
  • Features/Glossary/GlossaryPagination.spec.ts › should filter by InReview status (shard 1, 1 retry)
  • Pages/Lineage/LineageRightPanel.spec.ts › Verify custom properties tab IS visible for supported type: metric (shard 1, 1 retry)
  • Flow/SearchRBAC.spec.ts › a fully denied user sees neither asset type when browsing (shard 1, 1 retry)
  • Features/BulkImport.spec.ts › Database Schema (shard 2, 1 retry)
  • Features/ContextCenterArticles.spec.ts › Article list cards, recently viewed widget, and pagination work (shard 2, 1 retry)
  • Features/ContextCenterArticles.spec.ts › Article edit persistence and unsaved title behavior are correct (shard 2, 2 retries)
  • Features/SearchExport.spec.ts › Export queues a background job and downloads from the jobs tray (shard 3, 1 retry)
  • Features/Tasks/TaskNavigation.spec.ts › navigating to /table/TASK-XXXXX should show 404 (invalid URL pattern) (shard 3, 1 retry)
  • Flow/ApiServiceRest.spec.ts › add update and delete api service type REST (shard 4, 1 retry)
  • Pages/CustomProperties.spec.ts › Duration (shard 4, 1 retry)
  • Pages/CustomProperties.spec.ts › Sql Query (shard 4, 1 retry)
  • Pages/CustomProperties.spec.ts › Timestamp (shard 4, 1 retry)
  • Pages/DataProductODPS.spec.ts › edits data product metadata (type, visibility, priority) via the modal (shard 4, 1 retry)
  • Pages/Domains.spec.ts › Rename domain with deeply nested subdomains (3+ levels) verifies FQN propagation (shard 5, 1 retry)
  • Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts › Should remove user owner for knowledgeCenter (shard 5, 1 retry)
  • Pages/ExplorePageRightPanel.spec.ts › Should verify deleted tag not visible in tag selection for dashboardDataModel (shard 5, 1 retry)
  • Pages/GlossaryImportExport.spec.ts › Import partial success - some terms pass, some fail (shard 6, 1 retry)
  • Pages/GlossaryImportExport.spec.ts › Glossary CSV import preserves typed relations (shard 6, 2 retries)
  • Pages/Lineage/LineageFilters.spec.ts › Verify Impact Analysis service filter selection (shard 6, 1 retry)
  • Pages/Lineage/LineageRightPanel.spec.ts › Verify custom properties tab is NOT visible for pipelineService in platform lineage (shard 6, 1 retry)
  • Pages/Lineage/LineageRightPanel.spec.ts › Verify custom properties tab is NOT visible for apiService in platform lineage (shard 6, 1 retry)

📦 Download artifacts

How to debug locally
# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip    # view trace

@gitar-bot

gitar-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Code Review ⚠️ Changes requested 1 resolved / 3 findings

Replaces external icon library dependencies with custom SVG assets across the Context Center, but introduces an inverted follow icon state and incorrect data-testid attributes on management buttons.

⚠️ Bug: Follow button shows inverted active/inactive icon

📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx:584

The follow button's icon logic is inverted. isFollowing is true when the current user already follows the article (confirmed at lines 148-151). The code renders icon={isFollowing ? <FollowIcon .../> : <FollowActiveIcon .../>}, so when the user IS following it shows the non-active follow.svg, and when the user is NOT following it shows the active follow-active.svg. This is backwards. The previous implementation correctly used isFollowing ? StarFilledIcon : StarIcon (active/filled when following). Note the adjacent tooltip is correct (isFollowing ? un-follow : follow), which makes the visual state contradict the tooltip. Swap the branches so the active icon renders when following.

Show the active follow icon when the user is following.
icon={isFollowing ? <FollowActiveIcon height={18} width={18} /> : <FollowIcon height={18} width={18} />}
💡 Quality: Duplicate/misleading data-testid 'edit-memory-btn' on manage buttons

📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx:600 📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/DocumentsView/DocumentsView.component.tsx:171 📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/MemoriesView/MemoriesView.component.tsx:54

Several dropdown trigger buttons for 'manage' actions were given data-testid="edit-memory-btn". In ArticleDetailHeader this replaces the previous data-testid="manage-button", which may break existing Playwright/unit selectors. The id is also semantically wrong on the document/article manage triggers (it is a manage/more-actions button, not an edit-memory button) and collides with the genuine edit-memory button used elsewhere in MemoriesView, making test selection ambiguous. Use a descriptive, unique testid such as manage-button.

Restore/give a descriptive testid for the manage dropdown trigger.
data-testid="manage-button"
✅ 1 resolved
Bug: Typo 'ttw:shrink-0' breaks Tailwind class on delete icon

📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx:618
The delete TrashIcon className is "ttw:shrink-0 tw:text-error-primary". ttw:shrink-0 is a typo (double 't') and is not a valid Tailwind class, so the shrink-0 behavior is silently dropped. Should be tw:shrink-0.

🤖 Prompt for agents
Code Review: Replaces external icon library dependencies with custom SVG assets across the Context Center, but introduces an inverted follow icon state and incorrect data-testid attributes on management buttons.

1. ⚠️ Bug: Follow button shows inverted active/inactive icon
   Files: openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx:584

   The follow button's icon logic is inverted. `isFollowing` is true when the current user already follows the article (confirmed at lines 148-151). The code renders `icon={isFollowing ? <FollowIcon .../> : <FollowActiveIcon .../>}`, so when the user IS following it shows the non-active `follow.svg`, and when the user is NOT following it shows the active `follow-active.svg`. This is backwards. The previous implementation correctly used `isFollowing ? StarFilledIcon : StarIcon` (active/filled when following). Note the adjacent tooltip is correct (`isFollowing ? un-follow : follow`), which makes the visual state contradict the tooltip. Swap the branches so the active icon renders when following.

   Fix (Show the active follow icon when the user is following.):
   icon={isFollowing ? <FollowActiveIcon height={18} width={18} /> : <FollowIcon height={18} width={18} />}

2. 💡 Quality: Duplicate/misleading data-testid 'edit-memory-btn' on manage buttons
   Files: openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx:600, openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/DocumentsView/DocumentsView.component.tsx:171, openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/MemoriesView/MemoriesView.component.tsx:54

   Several dropdown trigger buttons for 'manage' actions were given `data-testid="edit-memory-btn"`. In ArticleDetailHeader this replaces the previous `data-testid="manage-button"`, which may break existing Playwright/unit selectors. The id is also semantically wrong on the document/article manage triggers (it is a manage/more-actions button, not an edit-memory button) and collides with the genuine edit-memory button used elsewhere in MemoriesView, making test selection ambiguous. Use a descriptive, unique testid such as `manage-button`.

   Fix (Restore/give a descriptive testid for the manage dropdown trigger.):
   data-testid="manage-button"

Options

Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

@gitar-bot

gitar-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Code Review 👍 Approved with suggestions 2 resolved / 3 findings

Migrates ContextCenter and KnowledgeCenter icons to custom SVG assets and updates ButtonUtility styles. Please resolve the duplicate 'edit-memory-btn' testid usage across management components.

💡 Quality: Duplicate/misleading data-testid 'edit-memory-btn' on manage buttons

📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx:600 📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/DocumentsView/DocumentsView.component.tsx:171 📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/MemoriesView/MemoriesView.component.tsx:54

Several dropdown trigger buttons for 'manage' actions were given data-testid="edit-memory-btn". In ArticleDetailHeader this replaces the previous data-testid="manage-button", which may break existing Playwright/unit selectors. The id is also semantically wrong on the document/article manage triggers (it is a manage/more-actions button, not an edit-memory button) and collides with the genuine edit-memory button used elsewhere in MemoriesView, making test selection ambiguous. Use a descriptive, unique testid such as manage-button.

Restore/give a descriptive testid for the manage dropdown trigger.
data-testid="manage-button"
✅ 2 resolved
Bug: Typo 'ttw:shrink-0' breaks Tailwind class on delete icon

📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx:618
The delete TrashIcon className is "ttw:shrink-0 tw:text-error-primary". ttw:shrink-0 is a typo (double 't') and is not a valid Tailwind class, so the shrink-0 behavior is silently dropped. Should be tw:shrink-0.

Bug: Follow button shows inverted active/inactive icon

📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx:584
The follow button's icon logic is inverted. isFollowing is true when the current user already follows the article (confirmed at lines 148-151). The code renders icon={isFollowing ? <FollowIcon .../> : <FollowActiveIcon .../>}, so when the user IS following it shows the non-active follow.svg, and when the user is NOT following it shows the active follow-active.svg. This is backwards. The previous implementation correctly used isFollowing ? StarFilledIcon : StarIcon (active/filled when following). Note the adjacent tooltip is correct (isFollowing ? un-follow : follow), which makes the visual state contradict the tooltip. Swap the branches so the active icon renders when following.

🤖 Prompt for agents
Code Review: Migrates ContextCenter and KnowledgeCenter icons to custom SVG assets and updates ButtonUtility styles. Please resolve the duplicate 'edit-memory-btn' testid usage across management components.

1. 💡 Quality: Duplicate/misleading data-testid 'edit-memory-btn' on manage buttons
   Files: openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx:600, openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/DocumentsView/DocumentsView.component.tsx:171, openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/MemoriesView/MemoriesView.component.tsx:54

   Several dropdown trigger buttons for 'manage' actions were given `data-testid="edit-memory-btn"`. In ArticleDetailHeader this replaces the previous `data-testid="manage-button"`, which may break existing Playwright/unit selectors. The id is also semantically wrong on the document/article manage triggers (it is a manage/more-actions button, not an edit-memory button) and collides with the genuine edit-memory button used elsewhere in MemoriesView, making test selection ambiguous. Use a descriptive, unique testid such as `manage-button`.

   Fix (Restore/give a descriptive testid for the manage dropdown trigger.):
   data-testid="manage-button"

Options

Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

1 similar comment
@gitar-bot

gitar-bot Bot commented Jul 6, 2026

Copy link
Copy Markdown
Code Review 👍 Approved with suggestions 2 resolved / 3 findings

Migrates ContextCenter and KnowledgeCenter icons to custom SVG assets and updates ButtonUtility styles. Please resolve the duplicate 'edit-memory-btn' testid usage across management components.

💡 Quality: Duplicate/misleading data-testid 'edit-memory-btn' on manage buttons

📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx:600 📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/DocumentsView/DocumentsView.component.tsx:171 📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/MemoriesView/MemoriesView.component.tsx:54

Several dropdown trigger buttons for 'manage' actions were given data-testid="edit-memory-btn". In ArticleDetailHeader this replaces the previous data-testid="manage-button", which may break existing Playwright/unit selectors. The id is also semantically wrong on the document/article manage triggers (it is a manage/more-actions button, not an edit-memory button) and collides with the genuine edit-memory button used elsewhere in MemoriesView, making test selection ambiguous. Use a descriptive, unique testid such as manage-button.

Restore/give a descriptive testid for the manage dropdown trigger.
data-testid="manage-button"
✅ 2 resolved
Bug: Typo 'ttw:shrink-0' breaks Tailwind class on delete icon

📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx:618
The delete TrashIcon className is "ttw:shrink-0 tw:text-error-primary". ttw:shrink-0 is a typo (double 't') and is not a valid Tailwind class, so the shrink-0 behavior is silently dropped. Should be tw:shrink-0.

Bug: Follow button shows inverted active/inactive icon

📄 openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx:584
The follow button's icon logic is inverted. isFollowing is true when the current user already follows the article (confirmed at lines 148-151). The code renders icon={isFollowing ? <FollowIcon .../> : <FollowActiveIcon .../>}, so when the user IS following it shows the non-active follow.svg, and when the user is NOT following it shows the active follow-active.svg. This is backwards. The previous implementation correctly used isFollowing ? StarFilledIcon : StarIcon (active/filled when following). Note the adjacent tooltip is correct (isFollowing ? un-follow : follow), which makes the visual state contradict the tooltip. Swap the branches so the active icon renders when following.

🤖 Prompt for agents
Code Review: Migrates ContextCenter and KnowledgeCenter icons to custom SVG assets and updates ButtonUtility styles. Please resolve the duplicate 'edit-memory-btn' testid usage across management components.

1. 💡 Quality: Duplicate/misleading data-testid 'edit-memory-btn' on manage buttons
   Files: openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/ArticleDetailHeader/ArticleDetailHeader.component.tsx:600, openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/DocumentsView/DocumentsView.component.tsx:171, openmetadata-ui/src/main/resources/ui/src/components/ContextCenter/MemoriesView/MemoriesView.component.tsx:54

   Several dropdown trigger buttons for 'manage' actions were given `data-testid="edit-memory-btn"`. In ArticleDetailHeader this replaces the previous `data-testid="manage-button"`, which may break existing Playwright/unit selectors. The id is also semantically wrong on the document/article manage triggers (it is a manage/more-actions button, not an edit-memory button) and collides with the genuine edit-memory button used elsewhere in MemoriesView, making test selection ambiguous. Use a descriptive, unique testid such as `manage-button`.

   Fix (Restore/give a descriptive testid for the manage dropdown trigger.):
   data-testid="manage-button"

Options

Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

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

Labels

safe to test Add this label to run secure Github workflows on PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant