Skip to content

OTA-2088: Fix identified bugs from video recordings#20

Open
jhadvig wants to merge 5 commits into
openshift:mainfrom
jhadvig:pm-review-fixes
Open

OTA-2088: Fix identified bugs from video recordings#20
jhadvig wants to merge 5 commits into
openshift:mainfrom
jhadvig:pm-review-fixes

Conversation

@jhadvig

@jhadvig jhadvig commented Jul 22, 2026

Copy link
Copy Markdown
Member

Summary

Fixes 14 bugs and UX issues identified by Subin across three screen recording reviews of the Cluster Update plugin (2026-07-20 and 2026-07-21). Two additional items (V1#4 Tech Preview badge, V1#5 concurrent analyses) were already fixed in PRs #19 and #12 respectively.

Bugs fixed

  • V1#7 + V2#4 - Panel collapse state lost on tab switch and re-analyse opening both panels. Added userCollapsedRef to track manual collapses and respect them during auto-expand.
  • V2#1 - "View pod logs" link landed on Details tab instead of Logs tab and opened a new browser window. Changed to react-router Link with /logs path suffix.
  • V2#2 - Second analyzing agentrun disappeared from Updates plan view. Added missing execution phases (Approved, Executing, AwaitingSync, Verifying) to ACTIVE_AGENTIC_RUN_PHASES. Also removed conditional tab rendering that destroyed component state on tab switch.
  • V2#3 - Phase showed "Pending" instead of "Analyzing". Added sandbox detection in derivePhase() to return "Analyzing" before the Analyzed condition is set.
  • V3#1 - Version dropdown not sorted. Added compareSemVer sort before rendering dropdown options.
  • V3#2 - Dropdown didn't filter proposals shown below. Changed activeRuns.map() to activeRuns.filter(r => r.metadata?.name === selectedName).map().
  • V3#3 - Stale RECOMMEND/BLOCK badge during re-analysis. Added pPhase !== 'Analyzing' guard on the decision badge.
  • V3#4 - Page description grammatical error ("plan how this cluster version is newer" -> "plan your update to newer").

UX improvements

  • V1#8 - "No agentic runs available" replaced with PatternFly EmptyState component.
  • V1#10 - "BLOCK" decision label replaced with "NOT RECOMMENDED". Added shared DECISION_DISPLAY map in agenticrun.ts, used by both UpdatePlanTab and AnalysisResultView.

TP scoping

  • V1#1 - Added console.flag/model extension for AgenticRun CRD. Nav item and route gated on AGENTIC_RUN flag so they only appear when the Lightspeed operator is installed.
  • V1#2 - Removed "Update history" tab for Tech Preview.
  • V1#6 - Removed "Awaiting Decision" / approve / reject buttons for Tech Preview.

Not addressed (operator-side)

  • V1#3 - Re-analyse not triggering on completed AgenticRuns. Root cause is in the lightspeed-agentic-operator — the reconciler's terminal phase handler doesn't check needsRevision(). Tracked separately.

Verification

All fixes verified on a live cluster (jeramos-1328) with the Lightspeed Agentic operator installed. Screenshots to follow in comments.

Test plan

  • yarn lint — 0 new errors (pre-existing test eslint config issues only)
  • yarn test — 56/56 tests passing
  • yarn i18n — locale files updated
  • Verified on live cluster: dropdown sorted, filter by selection, NOT RECOMMENDED label, no Approve buttons, collapse state preserved, pod logs link to Logs tab, EmptyState shown

🤖 Generated with Claude Code

jhadvig and others added 5 commits July 22, 2026 13:47
- Add missing execution phases (Approved, Executing, AwaitingSync,
  Verifying) to ACTIVE_AGENTIC_RUN_PHASES so in-flight runs don't
  disappear from the Updates plan tab (V2#2)
- Detect sandbox allocation in derivePhase() to return Analyzing
  before the Analyzed condition is set by the operator (V2#3)
- Add shared DECISION_DISPLAY map with getDecisionDisplay() helper
  to remap "block" to "NOT RECOMMENDED" and eliminate duplicated
  inline decision-color logic (V1#10)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Sort version dropdown by semver using compareSemVer (V3#1)
- Filter expandable panels to show only the selected version's
  proposal instead of all active runs (V3#2)
- Suppress stale decision badge during re-analysis by checking
  phase !== Analyzing (V3#3)
- Track user-collapsed panels in a ref so the auto-expand
  useEffect respects manual collapses (V1#7, V2#4)
- Fix pod logs link: append /logs to URL path, use react-router
  Link instead of raw <a> tag (V2#1)
- Use shared getDecisionDisplay() in both UpdatePlanTab and
  AnalysisResultView, replacing inline toUpperCase() (V1#10)
- Replace bare "No agentic runs available" with a Card explaining
  how update plans are created (V1#8)
- Remove DecisionActions rendering for TP (V1#6)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix grammatical error in page description: "plan how this cluster
  version is newer" -> "plan your update to newer" (V3#4)
- Remove Update history tab for Tech Preview (V1#2)
- Remove conditional tab rendering ({activeTab === N && ...}) that
  caused UpdatePlanTab to unmount on tab switch, destroying local
  state like expandedPanels and submittedNames (V2#2, V2#4)
- Update i18n locale files

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add console.flag/model extension that creates an AGENTIC_RUN
feature flag based on the AgenticRun CRD. Gate both the
console.navigation/href and console.page/route extensions on
this flag so the Cluster Update nav item only appears when
the Lightspeed operator is installed (V1#1).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace plain Card with PF EmptyState component using CubesIcon,
matching the existing pattern in ActivePlansTab.tsx (V1#8).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jhadvig

jhadvig commented Jul 22, 2026

Copy link
Copy Markdown
Member Author

Verification Screenshots

V3#4 + V1#2 + V3#1 — Grammar fix, no Update history tab, sorted dropdown

Grammar, tabs, sort

V3#1 — Dropdown sorted by semver (5.0.1 → 5.1.4)

Dropdown sorted

V3#2 — Only selected version's proposal shown (5.0.8 selected, only 5.0.8 panel visible)

Filter by selection

V1#10 — "NOT RECOMMENDED" instead of "BLOCK" (5.1.1 minor update)

NOT RECOMMENDED label

V1#6 — No Approve/Reject/Schedule buttons (full page, no DecisionActions)

No decision actions

V1#7 + V2#4 — Collapse state preserved after tab switch (panel stays collapsed)

Collapse preserved

V2#1 — "View pod logs" link during analysis (in-app link, no target=_blank)

Pod logs link

V2#1 — Navigates directly to Logs tab (not Details)

Pod logs tab landing

V1#8 — PatternFly EmptyState when no agenticRuns exist

Empty state

@openshift-ci
openshift-ci Bot requested review from DavidHurta and fao89 July 22, 2026 14:12
@openshift-ci

openshift-ci Bot commented Jul 22, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jhadvig

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

The pull request process is described 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

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 22, 2026
@jhadvig jhadvig changed the title Fix PM review bugs from video recordings OTA-2088: Fix identified bugs from video recordings Jul 22, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jul 22, 2026
@openshift-ci-robot

openshift-ci-robot commented Jul 22, 2026

Copy link
Copy Markdown

@jhadvig: This pull request references OTA-2088 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

Fixes 14 bugs and UX issues identified by Subin across three screen recording reviews of the Cluster Update plugin (2026-07-20 and 2026-07-21). Two additional items (V1#4 Tech Preview badge, V1#5 concurrent analyses) were already fixed in PRs #19 and #12 respectively.

Bugs fixed

  • V1#7 + V2#4 - Panel collapse state lost on tab switch and re-analyse opening both panels. Added userCollapsedRef to track manual collapses and respect them during auto-expand.
  • V2#1 - "View pod logs" link landed on Details tab instead of Logs tab and opened a new browser window. Changed to react-router Link with /logs path suffix.
  • V2#2 - Second analyzing agentrun disappeared from Updates plan view. Added missing execution phases (Approved, Executing, AwaitingSync, Verifying) to ACTIVE_AGENTIC_RUN_PHASES. Also removed conditional tab rendering that destroyed component state on tab switch.
  • V2#3 - Phase showed "Pending" instead of "Analyzing". Added sandbox detection in derivePhase() to return "Analyzing" before the Analyzed condition is set.
  • V3#1 - Version dropdown not sorted. Added compareSemVer sort before rendering dropdown options.
  • V3#2 - Dropdown didn't filter proposals shown below. Changed activeRuns.map() to activeRuns.filter(r => r.metadata?.name === selectedName).map().
  • V3#3 - Stale RECOMMEND/BLOCK badge during re-analysis. Added pPhase !== 'Analyzing' guard on the decision badge.
  • V3#4 - Page description grammatical error ("plan how this cluster version is newer" -> "plan your update to newer").

UX improvements

  • V1#8 - "No agentic runs available" replaced with PatternFly EmptyState component.
  • V1#10 - "BLOCK" decision label replaced with "NOT RECOMMENDED". Added shared DECISION_DISPLAY map in agenticrun.ts, used by both UpdatePlanTab and AnalysisResultView.

TP scoping

  • V1#1 - Added console.flag/model extension for AgenticRun CRD. Nav item and route gated on AGENTIC_RUN flag so they only appear when the Lightspeed operator is installed.
  • V1#2 - Removed "Update history" tab for Tech Preview.
  • V1#6 - Removed "Awaiting Decision" / approve / reject buttons for Tech Preview.

Not addressed (operator-side)

  • V1#3 - Re-analyse not triggering on completed AgenticRuns. Root cause is in the lightspeed-agentic-operator — the reconciler's terminal phase handler doesn't check needsRevision(). Tracked separately.

Verification

All fixes verified on a live cluster (jeramos-1328) with the Lightspeed Agentic operator installed. Screenshots to follow in comments.

Test plan

  • yarn lint — 0 new errors (pre-existing test eslint config issues only)
  • yarn test — 56/56 tests passing
  • yarn i18n — locale files updated
  • Verified on live cluster: dropdown sorted, filter by selection, NOT RECOMMENDED label, no Approve buttons, collapse state preserved, pod logs link to Logs tab, EmptyState shown

🤖 Generated with Claude Code

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci

openshift-ci Bot commented Jul 22, 2026

Copy link
Copy Markdown

@jhadvig: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/frontend ed42506 link true /test frontend

Full PR test history. Your PR dashboard.

Details

Instructions 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. I understand the commands that are listed here.

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants