Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
203 commits
Select commit Hold shift + click to select a range
50e7e77
feature: add namespace dropdown to dashboards page
PeterYurkovich Sep 30, 2025
2bd5c98
feature: add dev-monitoring redirects to admin console pages
PeterYurkovich Oct 1, 2025
a0ab60d
fix: prevent loop within effect
PeterYurkovich Oct 7, 2025
b1d227b
fix: separate path and query params
PeterYurkovich Oct 7, 2025
daab768
fix: update namespace from query params to console
PeterYurkovich Oct 9, 2025
3d11da5
feature: check user permissions to determine alerting path
PeterYurkovich Nov 11, 2025
e9d77d5
feature: fix all remaining locations where tenancy is used within alerts
PeterYurkovich Nov 12, 2025
1a580cb
chore(i18n): update translations
jgbernalp Nov 17, 2025
f77b3a6
fix: make the query parameter more expressive of its purpose
PeterYurkovich Nov 18, 2025
6967968
fix: add missing conversion units
PeterYurkovich Nov 18, 2025
24e74e8
Merge pull request #646 from jgbernalp/add-translations
openshift-merge-bot[bot] Nov 19, 2025
83aa06f
monitoring-plugin testing instructions - still manual
etmurasaki Nov 18, 2025
29ca2f9
Merge pull request #649 from etmurasaki/ou-1076
openshift-merge-bot[bot] Nov 20, 2025
9ae7871
unit testing instructions on AGENTS.md
etmurasaki Nov 20, 2025
8298186
Merge pull request #650 from etmurasaki/ou-1076-1
openshift-merge-bot[bot] Nov 21, 2025
58709b7
fix specific translations and items without translations
jgbernalp Nov 21, 2025
3c3fe3b
Merge pull request #567 from PeterYurkovich/ou-949
openshift-merge-bot[bot] Nov 21, 2025
e37e1cd
Merge pull request #651 from jgbernalp/fix-translations-2
openshift-merge-bot[bot] Nov 22, 2025
894c53b
fix: add missing translation for incidents filters
jgbernalp Nov 24, 2025
140a141
feat(cypress): Make COO namespace configurable and improve cleanup ro…
DavidRajnoha Nov 5, 2025
ef3aaa6
fix(cypress): Correct oc namespace commands and add regression test s…
DavidRajnoha Nov 12, 2025
8b54c68
Merge pull request #648 from PeterYurkovich/OCPBUGS-63458
openshift-merge-bot[bot] Nov 24, 2025
5cdc38c
Merge pull request #633 from DavidRajnoha/cypress-configurable-namesp…
openshift-merge-bot[bot] Nov 24, 2025
a2205a3
feat(cypress): Implement tag-based test filtering for Cypress tests
DavidRajnoha Oct 15, 2025
6b0b78b
test(cypress): Regression for Incidents - firing alerts
DavidRajnoha Oct 31, 2025
d8a518a
Merge pull request #653 from jgbernalp/fix-clear-filters-translation
openshift-merge-bot[bot] Nov 25, 2025
516050c
Merge pull request #622 from DavidRajnoha/cypress-incidents-regressio…
openshift-merge-bot[bot] Nov 25, 2025
65e0b3b
fix: always use non-tenancy path for admin users and set activeNamesp…
PeterYurkovich Nov 25, 2025
c89fe68
Merge pull request #601 from DavidRajnoha/cypress-tags
openshift-merge-bot[bot] Nov 25, 2025
69eb8c4
fix: remove namespace bar when page isn't namespaced
PeterYurkovich Dec 1, 2025
2fd214b
Merge pull request #658 from PeterYurkovich/multi-namespace-dev
openshift-merge-bot[bot] Dec 1, 2025
7b78ce6
automated tests adjustment for namespace level
etmurasaki Nov 24, 2025
68e7788
Merge pull request #659 from etmurasaki/ou-1086
openshift-merge-bot[bot] Dec 2, 2025
dd945f0
feat: use swc when running in development
PeterYurkovich Dec 2, 2025
c5614be
OCPBUGS-66064: use max TLS version only when defined
simonpasquier Dec 1, 2025
3d7806c
Merge pull request #660 from simonpasquier/OCPBUGS-66064
openshift-merge-bot[bot] Dec 3, 2025
54e5313
NO-ISSUE: expose argument's default values
simonpasquier Dec 3, 2025
2635897
Added unique identifier for dropdowns
krishagarwal278 Dec 3, 2025
49f7b2e
Merge pull request #663 from krishagarwal278/OCPBUGS-57307
openshift-merge-bot[bot] Dec 4, 2025
564e102
splitting metrics due to OOM and fix coo installation
etmurasaki Dec 3, 2025
b2d7d34
Merge pull request #669 from etmurasaki/ou-999
openshift-merge-bot[bot] Dec 5, 2025
345e6ee
troubleshooting panel
etmurasaki Dec 4, 2025
dbf1a3d
Merge pull request #662 from PeterYurkovich/add-swc-for-local-running
openshift-merge-bot[bot] Dec 8, 2025
ad98165
fix: include namespace label in example query
PeterYurkovich Dec 9, 2025
c1cf4e6
Merge pull request #672 from PeterYurkovich/ou-1118
openshift-merge-bot[bot] Dec 10, 2025
961b063
fix(cypress): Operator and Monitoring Plugin Setup Commands Fixes
DavidRajnoha Dec 10, 2025
7d07f00
chore(cypress): Update tags and tag execution
DavidRajnoha Dec 10, 2025
5c46a5d
fix: handle all ns selected for tenancy user
PeterYurkovich Dec 10, 2025
ef801c8
Merge pull request #675 from DavidRajnoha/fix-mcp-setup
openshift-merge-bot[bot] Dec 10, 2025
e35027e
Merge pull request #676 from DavidRajnoha/cypress-incidents-tags-update
openshift-merge-bot[bot] Dec 10, 2025
457ee7b
fix: remove namespace bar from create and edit silence pages
PeterYurkovich Dec 11, 2025
d04b11b
fix: make forbidden error message more explicit and add translation s…
PeterYurkovich Dec 11, 2025
552c203
fix: deeply clone when editing values to prevent readonly from react …
PeterYurkovich Dec 11, 2025
31bbf1e
Merge pull request #677 from PeterYurkovich/ou-1113
openshift-merge-bot[bot] Dec 12, 2025
9ef3c10
chore: remove andy from reviewers
jgbernalp Dec 12, 2025
97b7308
Merge pull request #680 from jgbernalp/avoid-annoying-andy-with-reviews
openshift-merge-bot[bot] Dec 12, 2025
11d4f0b
Merge pull request #670 from etmurasaki/ou-1075
openshift-merge-bot[bot] Dec 12, 2025
9c7fdb2
monitoring stabilization
etmurasaki Dec 12, 2025
2373894
Merge pull request #684 from etmurasaki/etmura-metrics
openshift-merge-bot[bot] Dec 13, 2025
8c67bcf
fix: upgrade node-forge vulnerable dependency
jgbernalp Dec 12, 2025
9119fc8
fix: COO install bugs in Incident tests
DavidRajnoha Dec 11, 2025
34efa93
chore(cypress): Added a submodule referencing the incidents detection…
DavidRajnoha Oct 31, 2025
9f998e0
feat(cypress): Add cursor commands for incidents test generation
DavidRajnoha Oct 31, 2025
ad11b18
Merge pull request #665 from simonpasquier/refactor-args
openshift-merge-bot[bot] Dec 15, 2025
fe94d4b
feat: split ALERTS query_range into several requests
rioloc Dec 9, 2025
dfa749c
feat: updated createAlertsQuery to avoid duplicates + unit
rioloc Dec 11, 2025
a086b87
feat: handle the case of no matchingIncident found
rioloc Dec 11, 2025
58cdea9
feat: update url limit
rioloc Dec 12, 2025
b9ce5f8
test: added unit tests for fetchDataForIncidentsAndAlerts
rioloc Dec 12, 2025
80b6efa
Merge pull request #681 from jgbernalp/fix-node-forge-vuln-dependency
openshift-merge-bot[bot] Dec 15, 2025
e305a86
Merge pull request #679 from DavidRajnoha/fix-deploy-with-mp-image-patch
openshift-merge-bot[bot] Dec 16, 2025
86ffe84
fix:alerts chart in Incidents - set the container height same as char…
tremes Dec 16, 2025
54e7ea2
fix: reuse existing handler to set alerts table data
tremes Dec 16, 2025
69eb16e
Merge pull request #621 from DavidRajnoha/cypress-incidents-cursor-co…
openshift-merge-bot[bot] Dec 16, 2025
9ef80c9
feat: allow claude-code to build-images
PeterYurkovich Dec 15, 2025
270cf84
feat: add backport claude command
jgbernalp Dec 16, 2025
aaa9a10
adjust dev scenarios
etmurasaki Dec 16, 2025
fe667e7
Merge pull request #689 from tremes/ou-1123
openshift-merge-bot[bot] Dec 16, 2025
706b536
test: Remove Incidents Flaky Tags
DavidRajnoha Dec 16, 2025
4b9417f
Merge pull request #686 from PeterYurkovich/ou-1081
openshift-merge-bot[bot] Dec 17, 2025
8f170cb
chore: add contributing guide
jgbernalp Dec 16, 2025
3cb2299
chore: add backend guidelines
jgbernalp Dec 17, 2025
80a72b3
chore: remove redundant sections
jgbernalp Dec 17, 2025
17cd210
fix: remove random multiplication
PeterYurkovich Dec 17, 2025
d693b90
Merge pull request #688 from DavidRajnoha/cypress-incidents-nightly-t…
openshift-merge-bot[bot] Dec 17, 2025
b134dac
feat: add monitoring refresh interval check to ensure that selecting …
PeterYurkovich Dec 17, 2025
a243f06
Merge pull request #692 from etmurasaki/OU-1130-auto-dev
openshift-merge-bot[bot] Dec 17, 2025
432b122
Merge pull request #694 from jgbernalp/add-contributing-guide
openshift-merge-bot[bot] Dec 18, 2025
96a52b2
Merge pull request #696 from PeterYurkovich/ou-1088
openshift-merge-bot[bot] Dec 18, 2025
ff1b26d
Merge pull request #691 from jgbernalp/add-backport-claude-command
openshift-merge-bot[bot] Dec 19, 2025
62f0782
Updating monitoring-plugin-container image to be consistent with ART …
Dec 20, 2025
179ebfe
feat: use consoleFetchJSON
rioloc Dec 17, 2025
a5fc6fb
cypress-setup and cypress-run
etmurasaki Dec 9, 2025
1d87d9d
fixing flaky steps
etmurasaki Dec 23, 2025
431febe
fix loop
etmurasaki Dec 23, 2025
5bd4223
Merge pull request #673 from etmurasaki/ou-1082-slash-command
openshift-merge-bot[bot] Dec 23, 2025
b79e634
Merge pull request #678 from rioloc/feat/split_query_range_requests
openshift-merge-bot[bot] Dec 23, 2025
403a5ae
Merge pull request #709 from etmurasaki/etmura-flaky
openshift-merge-bot[bot] Dec 26, 2025
434ab2c
list perses with without namespace
etmurasaki Dec 23, 2025
cfd000c
Merge pull request #711 from etmurasaki/etmura-ou-1064
openshift-merge-bot[bot] Jan 1, 2026
2764d4f
feat: use esbuild-loader, add push manifest command to makefile
jgbernalp Jan 2, 2026
e7457a8
fix: update qs vulnerable dependency
jgbernalp Jan 5, 2026
7ee47f5
Merge pull request #713 from jgbernalp/use-esbuild-loader
openshift-merge-bot[bot] Jan 5, 2026
2916ec6
flaky scenarios failing in presubmit and periodic
etmurasaki Jan 5, 2026
c9c309e
Merge pull request #716 from etmurasaki/etmura-flaky-metrics
openshift-merge-bot[bot] Jan 5, 2026
31534ef
Merge pull request #715 from jgbernalp/fix-qs-vulnerable-dependency
openshift-merge-bot[bot] Jan 7, 2026
c8d6f72
feat(cypress): custom cluster-health-analyzer builds
DavidRajnoha Jan 8, 2026
5ef5984
fix esbuild optional dependencies for cross arch builds
jgbernalp Jan 8, 2026
df0e531
Merge pull request #721 from jgbernalp/fix-esbuild-arch-dependency
openshift-merge-bot[bot] Jan 8, 2026
8b9cd66
fix click and type timespan
etmurasaki Jan 9, 2026
bfdd3e2
Merge pull request #725 from etmurasaki/etmura-flaky-metrics1
openshift-merge-bot[bot] Jan 9, 2026
bbf8d8c
fix: remove unnecessary package.lock
jgbernalp Jan 12, 2026
b807480
Merge pull request #720 from DavidRajnoha/cypress-csv-patch-cluster-h…
openshift-merge-bot[bot] Jan 12, 2026
6676e98
Merge pull request #708 from openshift-bot/art-consistency-openshift-…
openshift-merge-bot[bot] Jan 13, 2026
ae8dcdf
Merge pull request #728 from jgbernalp/remove-unnecesary-package-lock
openshift-merge-bot[bot] Jan 13, 2026
f508274
Merge pull request #690 from tremes/ou-1122
openshift-merge-bot[bot] Jan 14, 2026
9d02b51
fix: remove top level dispatch; refactor to avoid late useEffect
PeterYurkovich Jan 13, 2026
827041f
edit perses dashboards
etmurasaki Dec 29, 2025
b52c879
removing ungraphable due to dependency on data
etmurasaki Jan 14, 2026
aae00c4
Merge pull request #712 from etmurasaki/etmura-ou-1134
openshift-merge-bot[bot] Jan 14, 2026
9daccd5
Merge pull request #731 from etmurasaki/etmura-flaky-metrics2
openshift-merge-bot[bot] Jan 15, 2026
368ea66
Merge pull request #730 from PeterYurkovich/OCPBUGS-72604
openshift-merge-bot[bot] Jan 16, 2026
9ce32d0
COO-1515: add the cluster-health-analyzer feature
tremes Jan 20, 2026
ea66fe4
Merge pull request #736 from tremes/COO-1515
openshift-merge-bot[bot] Jan 21, 2026
f2def2e
test(config): Add incidents e2e command
DavidRajnoha Jan 23, 2026
64a8ab5
fix: update vulnerable dependencies
jgbernalp Jan 27, 2026
97258b8
Merge pull request #742 from jgbernalp/fix-vulnerable-deps-lodash
openshift-merge-bot[bot] Jan 28, 2026
b25306d
OU-1039: add info alert to the Incident page
tremes Jan 23, 2026
edce6c4
Merge pull request #741 from tremes/ou-1039
openshift-merge-bot[bot] Jan 28, 2026
fe41654
feat: force rounded dates for consecutive intervals
rioloc Jan 30, 2026
e4e5796
OU-1213: IncidentPage add error state
tremes Feb 2, 2026
59e526a
create dashboards and rbac
etmurasaki Dec 29, 2025
a933f76
Merge pull request #746 from etmurasaki/etmura-ou-915
openshift-merge-bot[bot] Feb 4, 2026
1628224
update acm alerting UI test case
Tai-RedHat Feb 5, 2026
2414ca9
feat: mark alert menu active for incidents tab
jgbernalp Feb 5, 2026
1cc531b
Merge pull request #748 from rioloc/feat/rounded-end-times
openshift-merge-bot[bot] Feb 5, 2026
4fd9ea1
kebab actions and regression fixes
etmurasaki Feb 4, 2026
cffc064
Merge pull request #754 from jgbernalp/mark-alerting-menu-for-incidents
openshift-merge-bot[bot] Feb 11, 2026
8615075
Merge pull request #750 from tremes/ou-1213
openshift-merge-bot[bot] Feb 11, 2026
57ecd27
Merge pull request #740 from DavidRajnoha/cypress-incidents-package-r…
openshift-merge-bot[bot] Feb 11, 2026
ea91306
Merge pull request #753 from Tai-RedHat/coo-1562
openshift-merge-bot[bot] Feb 11, 2026
ee45e94
COO-1532: Merge Dashboards Feature into main (#764)
PeterYurkovich Feb 11, 2026
d6f3b6d
feat: OU-1195 [DashboardListPage] List OCP namespaces in Create Dashb…
zhuje Feb 12, 2026
21d103a
Merge pull request #757 from etmurasaki/etmura-ou-1189
openshift-merge-bot[bot] Feb 12, 2026
de594b9
dont send messages for skipped reviews
PeterYurkovich Feb 13, 2026
98b4302
Merge pull request #770 from PeterYurkovich/coderabbit-init
openshift-merge-bot[bot] Feb 13, 2026
5b864fe
Add Edit Panel - Name is not required anymore
etmurasaki Feb 13, 2026
4b01216
removing federation exception adding reading zero
etmurasaki Feb 13, 2026
03f8324
renaming and adding yaml cr v1alpha1 and v1alpha2
etmurasaki Feb 13, 2026
9f23f93
renaming and adding yaml cr v1alpha1 and v1alpha2
etmurasaki Feb 13, 2026
5c841af
fix: OU-1195 translations and optional chaining
zhuje Feb 16, 2026
6c91df7
Merge pull request #771 from etmurasaki/etmura-OU-1231
openshift-merge-bot[bot] Feb 16, 2026
1383999
fix: OU-1195 coderabbit suggestions
zhuje Feb 17, 2026
8ce2016
fix: OU-1195 ProjecDropdown update to utillize useEditableDashboard
zhuje Feb 18, 2026
3189b29
fix: OU-1195 Create btn tool tip update to be more descriptive
zhuje Feb 18, 2026
e2cdad2
fix: OU-1195 update dashboard-action-modal so only selectedProjectNam…
zhuje Feb 18, 2026
60e0493
fix: OU-1195 fix translations with string interpolation
zhuje Feb 18, 2026
cbf3aa6
fix: OU-1196 translate 'All Project' string
zhuje Feb 18, 2026
4ec73d6
fix: OU-1195 CodeRabbit Suggestions to fix create btn tooltip and gra…
zhuje Feb 18, 2026
67c99d0
fix: OU-1195 fix Create btn tooltip condition
zhuje Feb 18, 2026
1df42ae
fix: OU-1195 Revert api/v1/projects call when checking if projects ex…
zhuje Feb 18, 2026
ca947a5
fix: OU-1195 update .sort() function in useEditableProjects
zhuje Feb 18, 2026
000b6e6
fix: OU-1214 [Edit Dashboard] - Time range is not persisted when saving
zhuje Feb 19, 2026
7c6a231
Merge pull request #765 from zhuje/ou1195-list-all-projects-main-pr
openshift-merge-bot[bot] Feb 19, 2026
ecc99c0
fix: OU-1214 remove array check
zhuje Feb 23, 2026
57f0b76
Merge pull request #778 from zhuje/ou1214-persist-timerange
openshift-merge-bot[bot] Feb 24, 2026
85f236d
rbac users scenarios added with project selector
etmurasaki Feb 20, 2026
8d6fef7
feat: allow to import and migrate a dashboard
jgbernalp Feb 23, 2026
9d269b9
fix: OU-1236 Kebab icon should be disable while "Checking permissions…
zhuje Feb 24, 2026
b883660
fix: fix Dashboard Duplication valiation checks
zhuje Feb 24, 2026
5b16071
fix: OU-1236 update tooltip message on kebab when 'Checking permissio…
zhuje Feb 24, 2026
003fea3
fix: OU-1236 cleanup
zhuje Feb 24, 2026
610ba55
fix: radius of button groups
zhuje Feb 25, 2026
2ce787b
Merge pull request #779 from jgbernalp/allow-dashboard-import
openshift-merge-bot[bot] Feb 25, 2026
cebeb99
Merge pull request #781 from etmurasaki/etmura-OU-1234
openshift-merge-bot[bot] Feb 25, 2026
fca06de
Merge pull request #784 from zhuje/pf-fix-btn-group
openshift-merge-bot[bot] Feb 25, 2026
fda27f7
fix: OU-1236 coderabbit suggestions
zhuje Feb 26, 2026
6a75bb4
docs(cypress): Add test configuration scenarios overview
DavidRajnoha Jan 29, 2026
ea010c4
Merge pull request #783 from zhuje/ou1236-loading-kebab
openshift-merge-bot[bot] Feb 27, 2026
fad81a8
import dashboard and rbac
etmurasaki Feb 26, 2026
d103c0a
Merge pull request #794 from etmurasaki/etmura-OU-1162
openshift-merge-bot[bot] Mar 2, 2026
9b59795
fix coo namespace
Tai-RedHat Mar 3, 2026
84d14fd
chore(build): simplify frontend build in Dockerfile.art
lgarciaaco Mar 3, 2026
67c6abe
Updating monitoring-plugin-container image to be consistent with ART …
Mar 4, 2026
91dfd88
fix coo namespace
Tai-RedHat Mar 4, 2026
925053f
Merge pull request #799 from lgarciaaco/chore/ocpbugs-77649-simplify-…
openshift-merge-bot[bot] Mar 4, 2026
f4ddc59
Merge pull request #803 from openshift-bot/art-consistency-openshift-…
openshift-merge-bot[bot] Mar 4, 2026
d410506
Merge pull request #804 from Tai-RedHat/COO-1562fix
openshift-merge-bot[bot] Mar 4, 2026
9f4575c
Add inheritance: true to .coderabbit.yaml
dgoodwin Mar 5, 2026
709598a
fix: forward port dont autofill rename
PeterYurkovich Mar 5, 2026
6ac0454
Merge pull request #820 from PeterYurkovich/forward-port-bug
openshift-merge-bot[bot] Mar 5, 2026
ebfdc77
fix: OU-1247 coo-release-0.5 Followup Persist TimeRange when toggling…
zhuje Mar 6, 2026
55e561b
fix: OU-1247 Followup Persist Timerange in Main, coderabbit suggestions
zhuje Mar 7, 2026
6103fb8
Merge pull request #827 from zhuje/ou1247-followup-persist-timerange-…
openshift-merge-bot[bot] Mar 8, 2026
4b2ccc0
Merge pull request #822 from dgoodwin/add-coderabbit-inheritance
openshift-merge-bot[bot] Mar 9, 2026
826e082
fix for CVE-2025-69873
rhdmalone Mar 11, 2026
0f26fcb
NO-JIRA: add golangci-lint
simonpasquier Mar 11, 2026
f2e2d1d
chore: fix golangci-lint issues
simonpasquier Mar 11, 2026
5cc3d0d
Merge pull request #834 from rhdmalone/main
openshift-merge-bot[bot] Mar 12, 2026
7bcbe86
Merge pull request #835 from simonpasquier/add-golangci-lint
openshift-merge-bot[bot] Mar 12, 2026
62a22c1
Merge pull request #745 from DavidRajnoha/cypress-readme-configuratio…
openshift-merge-bot[bot] Mar 13, 2026
88c1867
Merge remote-tracking branch 'origin/main' into merge-main
simonpasquier Mar 17, 2026
b0d10e8
Fix lint errors
simonpasquier Mar 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .ci-operator.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
build_root_image:
name: release
namespace: openshift
tag: rhel-9-release-golang-1.24-openshift-4.21
tag: rhel-9-release-golang-1.25-openshift-4.22
322 changes: 322 additions & 0 deletions .claude/commands/backport.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,322 @@
---
allowed-tools: Bash(git:*), Read, Write, Edit
argument-hint: <target-branch> [commit-hash]
description: Backport a feature or fix to a release branch with dependency adaptation
---

# Backport Feature to Release Branch

## Context

- Current branch: !`git branch --show-current`
- Target branch: $1
- Commit to backport: $2 (or HEAD if not specified)
- Latest commit info: !`git log -1 --format="%H %s"`
- Changed files: !`git show --name-only HEAD | tail -n +7`

## Dependency Version Differences

| Dependency | Main (Latest) | release-4.21 | release-4.20 | release-4.19 | release-4.18 | release-4.17 | release-coo-0.5 | release-coo-0.4 |
| ------------ | ------------- | ------------ | ------------ | ------------ | ------------ | ------------ | --------------- | --------------- |
| PatternFly | v6.x | v6.x | v6.x | v6.x | v5.x | v4.x | v6.x | v5.x |
| React Router | v6 compat | v6 compat | v6 compat | v6 compat | v5 | v5 | v6 compat | v5 |
| Console SDK | 4.19+ | 4.19 | 4.19 | 4.19 | 1.6.0 | 1.6.0 | 4.19 | 1.6.0 |

## Project Structure Differences

| Branch | Frontend Location | Go Backend | Notes |
| --------------- | ----------------- | ---------- | --------------------------------- |
| release-4.14 | Root (`src/`) | No | Frontend-only plugin |
| release-4.15 | Root (`src/`) | No | Frontend-only plugin |
| release-4.16 | Root (`src/`) | No | Frontend-only plugin |
| release-4.17+ | `web/` | Yes | Added Go backend (`pkg/`, `cmd/`) |
| release-coo-0.x | `web/` | Yes | Same structure as 4.17+ |

> **Note**: When backporting to release-4.16 or earlier, file paths must be adjusted from `web/src/` to `src/`.

## PatternFly v6 → v5 Transformations

When targeting release-4.18 or earlier (or release-coo-0.4):

```typescript
// v6 Dropdown (main)
import { Dropdown, DropdownItem, MenuToggle } from "@patternfly/react-core";

<Dropdown
isOpen={isOpen}
onOpenChange={setIsOpen}
toggle={(toggleRef) => (
<MenuToggle ref={toggleRef} onClick={() => setIsOpen(!isOpen)}>
{selected}
</MenuToggle>
)}
>
<DropdownItem>Option 1</DropdownItem>
</Dropdown>;

// v5 Dropdown (release branches)
import { Dropdown, DropdownItem, DropdownToggle } from "@patternfly/react-core";

<Dropdown
isOpen={isOpen}
onSelect={() => setIsOpen(false)}
toggle={<DropdownToggle onToggle={setIsOpen}>{selected}</DropdownToggle>}
dropdownItems={[<DropdownItem key="1">Option 1</DropdownItem>]}
/>;
```

Common v6 → v5 changes:
| v6 (main) | v5 (release) | Notes |
| ---------------------- | ------------------- | ---------------------------- |
| `<Panel>` | `<Card>` | Different wrapper components |
| `MenuToggle` | `DropdownToggle` | Dropdown API changed |
| `Dropdown` (new API) | `Dropdown` (legacy) | Props differ significantly |
| `Select` (typeahead) | `Select` (legacy) | Selection handling differs |
| `onOpenChange` | `onToggle` | Event handler naming |

## React Router v6 → v5 Transformations

When targeting release-4.18 or earlier (or release-coo-0.4):

```typescript
// v6 Navigation (main - using compat layer)
import {
useNavigate,
useLocation,
useSearchParams,
} from "react-router-dom-v5-compat";

const navigate = useNavigate();
navigate("/alerts");

const [searchParams, setSearchParams] = useSearchParams();
const filter = searchParams.get("filter");

// v5 Navigation (release branches)
import { useHistory, useLocation } from "react-router-dom";

const history = useHistory();
history.push("/alerts");

const location = useLocation();
const params = new URLSearchParams(location.search);
const filter = params.get("filter");
```

Common v6 → v5 changes:
| v6 (main) | v5 (release) | Notes |
| -------------------- | ----------------------- | --------------- |
| `useNavigate()` | `useHistory()` | Navigation hook |
| `navigate('/path')` | `history.push('/path')` | Navigation call |
| `useParams<Type>()` | `useParams()` + casting | Type handling |
| `<Routes>` | `<Switch>` | Route wrapper |
| `<Route element={}>` | `<Route component={}>` | Route rendering |
| `useSearchParams()` | `useLocation()` + parse | Query params |

## Your Task

Backport the specified commit to the target branch `$1`. Follow these steps:

### 1. Analyze the Commit

- Identify all changed files from the commit
- Categorize by type (components, hooks, translations, backend, etc.)
- Note any PatternFly, React Router, or Console SDK usage

### 2. Check Target Branch Dependencies

Run this command to compare versions:

```bash
git show $1:web/package.json | grep -E 'patternfly.react-core|react-router|dynamic-plugin-sdk":'
```

### 3. Identify Required Transformations

Based on the dependency differences table above:

- PatternFly v6 → v5 transformations (if targeting 4.18 or earlier, or coo-0.4)
- React Router v6 → v5 transformations (if targeting 4.18 or earlier, or coo-0.4)
- Path adjustments for 4.16 or earlier (web/src/ → src/)

### 4. Create Backport Branch and Apply Changes

```bash
git checkout $1
git checkout -b backport-<feature>-to-$1
```

### 5. Reinstall Dependencies

After switching branches, always reinstall:

```bash
cd web && rm -rf node_modules && npm install
```

### 6. Apply the Backport

Either cherry-pick (if clean) or manually apply with transformations:

```bash
# Clean cherry-pick
git cherry-pick <commit-hash>

# Or with conflicts - resolve manually then:
git cherry-pick --continue

# Abort if needed
git cherry-pick --abort
```

### 7. Verify

Run these commands to validate:

```bash
cd web
npm run lint
npm run lint:tsc
npm run test:unit
cd .. && make test-translations
make test-backend
```

### 8. Report Summary

Provide a summary of:

- Files modified
- Transformations applied (PF v6→v5, Router v6→v5, path changes)
- Any issues encountered
- Commands to push and create PR:

```bash
git push origin backport-<feature>-to-$1
# Then create PR targeting $1 branch
```

## File Categorization by Complexity

| Category | Path Pattern | Backport Complexity |
| ------------- | ------------------------ | ---------------------------------- |
| Components | `web/src/components/**` | Medium-High (dependency sensitive) |
| Hooks | `web/src/hooks/**` | Medium |
| Store/Redux | `web/src/store/**` | Low-Medium |
| Contexts | `web/src/contexts/**` | Low-Medium |
| Translations | `web/locales/**` | Low |
| Backend (Go) | `pkg/**`, `cmd/**` | Low |
| Cypress Tests | `web/cypress/**` | Medium |
| Config | `web/*.json`, `Makefile` | High (version specific) |

## Release Branch Ownership

| Branch Pattern | Managed By | Use Case |
| ----------------- | ---------- | ------------------------------ |
| `release-4.x` | CMO | OpenShift core monitoring |
| `release-coo-x.y` | COO | Cluster Observability Operator |

## Common Backport Scenarios

### Simple Bug Fix

- Usually clean cherry-pick
- No dependency changes
- Just run tests

### New Component Feature

- Check for PatternFly component usage
- Verify console-extensions.json compatibility
- May need v6→v5 PatternFly transformations

### Dashboard/Perses Changes

- High dependency sensitivity
- Check @perses-dev/\* versions in target
- ECharts version compatibility

### Alerting/Incident Changes

- Check Alertmanager API compatibility
- Verify any new console extension types

### Translation Updates

- Usually clean backport
- Verify i18next key compatibility
- Run `make test-translations`

## Troubleshooting

### "Module not found" after backport

- Check if imported module exists in target branch version
- Verify package.json dependencies match

### TypeScript errors after adaptation

- Check type definitions between versions
- Use explicit typing where inference differs

### Test failures after backport

- Compare test utilities between versions
- Check for mock/fixture differences

### Build failures

- Verify webpack config compatibility
- Check for console plugin SDK breaking changes

## Backport PR Template

When creating the PR, use this template:

```markdown
## Backport of #<original-PR-number>

### Original Change

<Brief description of the feature or fix>

### Backport Target

- Branch: `$1`
- OpenShift Version: 4.x / COO x.y

### Adaptations Made

- [ ] PatternFly v6 → v5 components adapted
- [ ] React Router v6 → v5 hooks adapted
- [ ] Console SDK API adjustments
- [ ] No adaptations needed (clean cherry-pick)

### Testing

- [ ] `make lint-frontend` passes
- [ ] `make test-backend` passes
- [ ] `npm run test:unit` passes
- [ ] `make test-translations` passes
- [ ] Manual testing performed

### Notes

<Any additional context about the backport>
```

## Quick Reference Commands

```bash
# View commit to backport
git show <commit-hash>

# Compare file between branches
git diff $1:web/src/<file> main:web/src/<file>

# Check dependency versions in target
git show $1:web/package.json | grep -A 5 "patternfly"

# Interactive cherry-pick with edit
git cherry-pick -e <commit-hash>
```
22 changes: 22 additions & 0 deletions .claude/commands/build-images.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: build-images
description:
parameters:
- tag: The tag to be placed on the created images. This will typically be a jira ticket in the format of "letters-numbers" (ie. OU-1111).
allowed-tools: Bash(INTERACTIVE=0 TAG=* make build-image), Bash(INTERACTIVE=0 TAG=* make build-dev-mcp-image), Bash(podman image ls -f "reference=$REGISTRY_ORG/monitoring-plugin*"), Bash(podman image ls -f "reference=$REGISTRY_ORG/monitoring-console-plugin*")
---

## Context

- Prefer podman when running image related commands over docker.
- All images that have currently been built for the monitoring plugin: !`podman image ls -f "reference=$REGISTRY_ORG/monitoring-plugin*"`
- All images that have currently been built for the monitoring console plugin: !`podman image ls -f "reference=$REGISTRY_ORG/monitoring-plugin*"`
- Scripting used: @Makefile @scripts/build-image.sh

## Your task

Determine an appropriate non-duplicate image tag to use. If the current git branch is a jira issue then you should use that as the base. If the tag is not already used then use it directly. If it has already been used, then add an additional index to the tag and increment one past the highest existing value. For example, if tags [OU-1111, OU-1111-2, and OU-1111-3] already exist then the the non-duplicate tag should be OU-1111-4. Do not attempt to use the same tag and override the previous build.

Run the `make build-image` and `make build-dev-mcp-image` commands with the INTERACTIVE=0 and TAG env variables set.

If the image fails to build, show the error to the user and offer to debug
Loading