pilichoumao opened a new pull request, #6413: URL: https://github.com/apache/rocketmq-dashboard/pull/6413
### Which Issue(s) This PR Fixes - Fixes #6410 ### Brief Description When Clients lists all physical clusters, identical Producer groups (such as `DefaultProducer`) currently become one diagnostic resource. Independent client IDs and addresses can also produce cross-cluster collision, duplicate and concentration warnings. The provider already preserves `clusterName` on these rows. Scope resource, client and duplicate identities, distinct diagnostic counts and address concentration by that physical cluster. Attach scoped resource keys to resource-specific issues so the summary counts the issues for the correct cluster, while retaining readable display names. Resource and issue rows show their cluster using the existing Chinese/English label. Missing cluster names use a consistent `unknown` scope; real same-cluster mixed-version, collision and duplicate evidence remains active. Duplicate records retain their existing informational severity. No collection/API/permission changes or dependencies. This does not change the separate overview counting in #6321 or implement #6203's source-port fix. #4617 previously reported the related per-row issue attribution gap; explicit scope keys are used here to make issue/resource lookup agree without exposing encoded keys. #6407 separately handles absent metadata and incomplete-scan inference, and is not included in this independent diff. Both PRs start at 779b8c0 on `rocketmq-studio`. ### How Did You Test This Change? Node 22.19.0 / npm 11.11.1 and committed lockfile. Tests use `NODE_OPTIONS=--max-old-space-size=768 UV_THREADPOOL_SIZE=1 GOMAXPROCS=1`, one Vitest fork and no file parallelism. Lint/build use 1024 MiB old-space. - Utility + ClientsPage: clean baseline with the final tests **10 failed / 33 passed**; fixed **43/43 passed**. Covers ALL queries, cross-cluster producer names/client IDs/address identities, same-cluster controls, per-row issue attribution, missing cluster normalization, tuple boundaries, independently scoped concentration, and Chinese/English cluster labels. Services are mocked; no live Broker topology test is claimed. - Full frontend: **1614 passed / 2 failed**, 159 files. Unchanged baseline failures are Producer's “discards a slow connection response after the topic changes” (`pointer-events: none`) and UserManagement's “exports all users that match the active filters” (missing `search: ops`). The two complete files were independently tested on a clean archive of the same 779b8c0 baseline and #6407 with the same lockfile/dependencies/options: **29 passed / 2 identical failures**. Full tests are **not all green**. - Lint: 0 errors / 10 existing warnings. License tests: 5/5. TypeScript/Vite/distribution-license build, modified-file Prettier and `git diff --check` passed. Backend unchanged; backend tests not rerun. - Temporary combination with #6407: production utility/page files combine using `git merge-file`; collocated test additions were explicitly composed in the temporary archive. **58/58 passed**. With #6203's host comparison ported only into that temporary archive, **64/64 passed**, including same-host/different-port and different-host controls. These are behavior compatibility checks, not a claim that the complete PR diffs merge without conflicts; overlapping test/README additions need reconciliation when merging. No other contributor's implementation was added to this submitted diff. ### Checklist - [x] One coherent change; unrelated modifications are not bundled in - [x] Conventional commit - [x] Failing baseline and positive regression controls - [x] Existing bilingual UI label reused - [x] README documents diagnostic scope - [x] ASF headers retained; no dependencies added -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
