Upgrade Console SDK to 4.22, align styling with PF6/Console patterns#35
Open
jhadvig wants to merge 5 commits into
Open
Upgrade Console SDK to 4.22, align styling with PF6/Console patterns#35jhadvig wants to merge 5 commits into
jhadvig wants to merge 5 commits into
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
PR needs rebase. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@openshift-console/dynamic-plugin-sdk4.22.0-prerelease.3) with all required shared module upgrades: React 17→18, react-router v5→v7, react-i18next v11→v16, i18next v23→v25, PatternFly 6.2→6.4SDK Upgrade (4.21 → 4.22)
@openshift-console/dynamic-plugin-sdk4.21-latest4.22.0-prerelease.3@openshift-console/dynamic-plugin-sdk-webpack4.21-latest4.22.0-prerelease.3react/react-dom^17.0.1^18.3.1@types/react^17.0.37^18.3.28react-router5.3.x(viareact-router-dom)~7.13.1react-i18next^11.7.3~16.5.8i18next^23.11.5^25.8.18@patternfly/react-core^6.2.2^6.4.3@patternfly/react-icons^6.2.2^6.4.0@patternfly/react-table^6.2.2^6.4.3@console/pluginAPI^4.21.0>=4.22.0-0Removed packages:
react-router-dom,react-router-dom-v5-compat,@types/react-router-dom,@testing-library/react-hooks,react-test-rendererAdded:
@testing-library/react(replaces deprecated@testing-library/react-hooksfor React 18)Code migrations
useHistory→useNavigate,history.push()→navigate()(3 files)react-router-dom→react-router@testing-library/react-hooks→@testing-library/reactStyling Alignment
Use SDK
ListPageHeaderinstead of custom header divReplaced custom
<div>+ Flex layout with the SDK'sListPageHeadercomponent, aligning page header spacing with all other console list pages.Use PF
PageSection type="breadcrumb"for breadcrumbsReplaced custom breadcrumb wrapper div with PF
PageSectionfor proper page-level insets.Replace custom split button with PF
MenuToggle splitButtonItemsReplaced hand-rolled split button (two adjacent Buttons with zeroed border-radii) with PF6's
MenuTogglewithsplitButtonItemsand danger color override via PF CSS variables.Replace custom
<textarea>with PFTextAreaReplaced hand-styled HTML textarea with PF's
TextAreacomponent for automatic theming and dark mode support.Replace inline styles with CSS classes
Moved 3 inline
style={{}}instances to named CSS classes (ols-plugin__option-actions,ols-plugin__option-select-btn).Remove
.pf-v6-c-expandable-section__toggleoverrideRemoved the stylelint-disabled PF internal selector override that was targeting
.pf-v6-c-expandable-section__toggle. The PF6 default styling is acceptable.Add missing CSS for dynamic component classes
Created
dynamic-components.csswith styles for ~20 previously unstyledols-plugin__chat-*classes: markdown text, resource diffs, action picker, status timeline, evidence/data tables, chart containers, status icons, CMO components. All styles use PF CSS variables exclusively (no hex colors).Dockerfile Fix
Changed
npm ci --omit=dev --omit=optionaltonpm ciin the build stage so@types/reactand other TypeScript type definitions (devDependencies) are available during the webpack/TS compilation step. The final production image remains lean since it only copiesdist/from the build stage.Screenshots
AI Hub — Proposals List Page
Proposal list with filter, phase labels, and configuration button
The AI Hub navigation item appears under Administration. The list page uses the SDK
ListPageHeadercomponent with filterableVirtualizedTableshowing all Proposal CRs across namespaces.AI Hub — Proposal Detail Page
Proposal Detail - Overview

Proposal Detail - Proposal Tab

Proposal Detail - Execution Tab

Proposal Detail - Verification Tab

The detail page shows the proposal workflow with Overview, Proposal, Execution, and Verification tabs. Active-phase tabs show a pulsing dot indicator. The Proposal tab includes live sandbox log streaming. The Verification tab renders markdown results with structured pass/fail checks.
AI Hub — Configuration Page
Configuration - Approval Policy

Configuration - Agents

Configuration - LLM Providers

Approval policy toggles, agent tier management, and LLM provider configuration
Configuration page with breadcrumb navigation using PF
PageSection type="breadcrumb". Three tabs: Approval Policy (manual/automatic per stage), LLM Providers (CRUD for provider backends), and Agents (CRUD for agent configurations with model, max turns, and timeouts).Test plan
npm run build— webpack compiles without errorsnpm test— all 55 unit tests passnpm run lint— stylelint passes with zero errors on all CSS files🤖 Generated with Claude Code