fix(ui): Render every glossary term badge through GlossaryTag - #33304
Conversation
🔴 Playwright Results — workflow failedValidated commit ✅ 4502 passed · ❌ 2 failed · 🟡 5 flaky · ⏭️ 1 skipped · 🧰 0 lifecycle flaky ❌ Action needed: test(s) failed on every attempt against this PR’s validated commit — see Genuine Failures below. These are test failures, not CI budget or infrastructure issues. PerformanceBlocking targets: ✅ met · Optimization targets: 🟡 in progress Shard-job maxima below are not the full workflow wall time; the linked run includes build, fixture, planning, and reporting. 🕒 Full workflow signal wall (to summary) 41m 46s ⏱️ Max setup 4m 57s · max shard execution 24m 7s · max shard-job elapsed before upload 27m 56s · reporting 21s 🌐 219.11 requests/attempt · 2.24 app boots/UI scenario · 50.59% common-shard skew Optimization targets still in progress:
Genuine Failures (failed on all attempts)❌
|
|
| Count | Rule |
|---|---|
| 21 | react-hooks/exhaustive-deps |
| 7 | openmetadata-imports/no-circular-imports |
| 6 | openmetadata-imports/no-internal-barrel-imports |
| 3 | openmetadata-imports/no-rest-ui-imports |
| 1 | openmetadata-ui-patterns/no-raw-title-attribute |
| 1 | openmetadata-imports/no-api-calls-in-iteration |
All findings
| Location | Rule | Message | |
|---|---|---|---|
| 🟡 | src/components/KnowledgeCenter/KnowledgeCard/KnowledgeCard.tsx:61:1 |
openmetadata-imports/no-internal-barrel-imports |
Import the internal module directly instead of its index barrel so unrelated siblings do not enter the bundle graph. |
| 🟡 | src/components/KnowledgeCenter/KnowledgeCard/KnowledgeCard.tsx:238:9 |
react-hooks/exhaustive-deps |
The 'handleToggleDelete' function makes the dependencies of useCallback Hook (at line 256) change on every render. Move it inside the useCallback callback. Alte |
| 🟡 | src/components/Tag/TagsViewer/TagsViewer.tsx:32:1 |
openmetadata-imports/no-circular-imports |
This runtime import participates in a circular dependency. Extract the shared type/constant/utility or invert the dependency. |
| 🟡 | src/components/Tag/TagsViewer/TagsViewer.tsx:33:1 |
openmetadata-imports/no-circular-imports |
This runtime import participates in a circular dependency. Extract the shared type/constant/utility or invert the dependency. |
| 🟡 | src/components/Tag/TagsViewer/TagsViewer.tsx:34:1 |
openmetadata-imports/no-circular-imports |
This runtime import participates in a circular dependency. Extract the shared type/constant/utility or invert the dependency. |
| 🟡 | src/components/common/AsyncSelectList/AsyncSelectList.tsx:37:1 |
openmetadata-imports/no-circular-imports |
This runtime import participates in a circular dependency. Extract the shared type/constant/utility or invert the dependency. |
| 🟡 | src/components/common/AsyncSelectList/AsyncSelectList.tsx:116:5 |
react-hooks/exhaustive-deps |
React Hook useCallback has a missing dependency: 'getFilteredOptions'. Either include it or remove the dependency array. |
| 🟡 | src/components/common/AsyncSelectList/AsyncSelectList.tsx:291:6 |
react-hooks/exhaustive-deps |
React Hook useEffect has a missing dependency: 'loadOptions'. Either include it or remove the dependency array. |
| 🟡 | src/components/common/FieldCard/FieldCard.tsx:23:1 |
openmetadata-imports/no-internal-barrel-imports |
Import the internal module directly instead of its index barrel so unrelated siblings do not enter the bundle graph. |
| 🟡 | src/components/common/GlossaryTermsSection/GlossaryTermsSection.tsx:128:5 |
react-hooks/exhaustive-deps |
React Hook useCallback has missing dependencies: 'cancelEditing' and 'glossaryTerms'. Either include them or remove the dependency array. |
| 🟡 | src/components/common/GlossaryTermsSection/GlossaryTermsSection.tsx:140:9 |
react-hooks/exhaustive-deps |
The 'handlePopoverOpenChange' function makes the dependencies of useMemo Hook (at line 190) change on every render. Move it inside the useMemo callback. Alterna |
| 🟡 | src/components/common/GlossaryTermsSection/GlossaryTermsSection.tsx:147:9 |
react-hooks/exhaustive-deps |
The 'handleCancel' function makes the dependencies of useMemo Hook (at line 190) change on every render. Move it inside the useMemo callback. Alternatively, wra |
| 🟡 | src/components/common/TagSuggestion/TagSuggestion.tsx:36:1 |
openmetadata-imports/no-circular-imports |
This runtime import participates in a circular dependency. Extract the shared type/constant/utility or invert the dependency. |
| 🟡 | src/components/common/TagSuggestion/TagSuggestion.tsx:37:1 |
openmetadata-imports/no-circular-imports |
This runtime import participates in a circular dependency. Extract the shared type/constant/utility or invert the dependency. |
| 🟡 | src/components/common/TagSuggestion/TagSuggestion.tsx:38:1 |
openmetadata-imports/no-circular-imports |
This runtime import participates in a circular dependency. Extract the shared type/constant/utility or invert the dependency. |
| 🟡 | src/components/common/TagSuggestion/TagSuggestion.tsx:39:1 |
openmetadata-imports/no-internal-barrel-imports |
Import the internal module directly instead of its index barrel so unrelated siblings do not enter the bundle graph. |
| 🟡 | src/components/common/TagSuggestion/TagSuggestion.tsx:160:6 |
react-hooks/exhaustive-deps |
React Hook useEffect has missing dependencies: 'fetchOptions' and 'initialOptions'. Either include them or remove the dependency array. If 'setOptions' needs th |
| 🟡 | src/components/common/TagSuggestion/TagSuggestion.tsx:171:5 |
react-hooks/exhaustive-deps |
React Hook useCallback has a missing dependency: 'fetchOptions'. Either include it or remove the dependency array. |
| 🟡 | src/components/common/TagSuggestion/TagSuggestion.tsx:205:5 |
react-hooks/exhaustive-deps |
React Hook useCallback has a missing dependency: 'fetchOptions'. Either include it or remove the dependency array. |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:56:1 |
openmetadata-imports/no-internal-barrel-imports |
Import the internal module directly instead of its index barrel so unrelated siblings do not enter the bundle graph. |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:58:1 |
openmetadata-imports/no-internal-barrel-imports |
Import the internal module directly instead of its index barrel so unrelated siblings do not enter the bundle graph. |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:241:13 |
openmetadata-ui-patterns/no-raw-title-attribute |
Use from @openmetadata/ui-core-components instead of raw title="" attributes for consistent tooltip behavior. |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:1105:5 |
react-hooks/exhaustive-deps |
React Hook useCallback has missing dependencies: 'buildMultiOccurrenceRows', 'buildSingleOccurrenceRows', 'buildVariationRows', and 'getUniquePaths'. Either inc |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:1293:5 |
react-hooks/exhaustive-deps |
React Hook useCallback has missing dependencies: 'renderCoverageDescriptionCell' and 't'. Either include them or remove the dependency array. |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:1561:5 |
react-hooks/exhaustive-deps |
React Hook useCallback has missing dependencies: 'renderGroupColumnNameCell', 'renderOccurrenceColumnNameCell', and 'renderStructChildColumnNameCell'. Either in |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:1633:5 |
react-hooks/exhaustive-deps |
React Hook useMemo has a missing dependency: 'columnGridListing'. Either include it or remove the dependency array. |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:1812:6 |
react-hooks/exhaustive-deps |
React Hook useCallback has missing dependencies: 'buildColumnUpdatesByKey' and 'columnGridListing'. Either include them or remove the dependency array. |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:1966:5 |
react-hooks/exhaustive-deps |
React Hook useCallback has missing dependencies: 'handleBulkUpdateCompleted' and 'handleBulkUpdateFailed'. Either include them or remove the dependency array. |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:2042:6 |
react-hooks/exhaustive-deps |
React Hook useEffect has a missing dependency: 'columnGridListing'. Either include it or remove the dependency array. |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:2164:5 |
react-hooks/exhaustive-deps |
React Hook useCallback has a missing dependency: 'columnGridListing'. Either include it or remove the dependency array. |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:2273:5 |
react-hooks/exhaustive-deps |
React Hook useCallback has a missing dependency: 'columnGridListing'. Either include it or remove the dependency array. |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:2385:5 |
react-hooks/exhaustive-deps |
React Hook useMemo has a missing dependency: 'columnGridListing'. Either include it or remove the dependency array. |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:2418:5 |
react-hooks/exhaustive-deps |
React Hook useMemo has a missing dependency: 'columnGridListing'. Either include it or remove the dependency array. |
| 🟡 | src/pages/ColumnBulkOperations/ColumnGrid/ColumnGrid.component.tsx:2532:6 |
react-hooks/exhaustive-deps |
React Hook useMemo has an unnecessary dependency: 'columnGridListing.allRows'. Either exclude it or remove the dependency array. |
| 🟡 | src/rest/glossaryAPI.ts:17:1 |
openmetadata-imports/no-rest-ui-imports |
REST clients must not import UI or state-layer modules. Move shared request/response types to the interface layer. |
| 🟡 | src/rest/glossaryAPI.ts:18:1 |
openmetadata-imports/no-rest-ui-imports |
REST clients must not import UI or state-layer modules. Move shared request/response types to the interface layer. |
| 🟡 | src/rest/glossaryAPI.ts:19:1 |
openmetadata-imports/no-rest-ui-imports |
REST clients must not import UI or state-layer modules. Move shared request/response types to the interface layer. |
| 🟡 | src/rest/glossaryAPI.ts:41:1 |
openmetadata-imports/no-internal-barrel-imports |
Import the internal module directly instead of its index barrel so unrelated siblings do not enter the bundle graph. |
| 🟡 | src/rest/glossaryAPI.ts:184:7 |
openmetadata-imports/no-api-calls-in-iteration |
Avoid issuing one API request per item. Fetch at the data owner, use a bulk endpoint, or use useQueries with an intentional concurrency policy. |
Fix locally (fast - only checks files changed in this branch):
make ui-checkstyle-changed
Code Review ✅ Approved 1 resolved / 1 findingsStandardizes glossary term badge rendering across the UI by routing all instances through the ✅ 1 resolved✅ Edge Case: Related term styles silently capped at 100 terms
OptionsDisplay: compact → Counting what did not apply, without listing it. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source |
|



Describe your changes:
Glossary terms were drawn three different ways depending on the surface: the GlossaryTag atom, a hand-rolled div chip in GlossaryTermsSection, and a raw BadgeWithIcon in RelatedTerms. Sizes ranged 20-26px, icons came from three different sources, and the two non-atom renderers hardcoded a blue fill that ignored the term's configured colour entirely
Type of change:
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:
Fixes <issue-number>: <short explanation>Fixes #<issue-number>above.