Frun1na opened a new issue, #4786: URL: https://github.com/apache/rocketmq-dashboard/issues/4786
### Before Creating the Bug Report - [x] Searched open and closed issues/PRs and checked related diffs. - [x] This concerns RocketMQ Studio. - [x] The exact inspected version and runtime scope are stated below. ### Studio Version `rocketmq-studio` at `4c697f07acde460e2344375cb1f82669f5b270fd`. ### Runtime Environment Source inspection of the AI tool path (`rmq.nameserver.config`); no live Studio backend required — the defect is in the contract between the read service and the tool output. ### What Were You Trying to Do? Read the management NameServer configuration of a physical cluster through the `rmq.nameserver.config` tool when one of the cluster's NameServer endpoints is unreachable. ### What Did You Expect to Happen? The result should tell the caller that the coverage is partial: which endpoints answered, and which ones could not be read, so an AI (or an operator reading the tool output) knows the result does not describe the full cluster configuration. ### What Happened Instead? `NameServerConfigDiffService.read` (`cluster/nameserver/NameServerConfigDiffService.java:167-180`) logs a warning and skips every endpoint whose config read fails, and the tool returns only the reachable endpoints inside a plain `ListOutput` — there is no completeness channel of any kind. A cluster of three NameServers where one is down produces a two-endpoint result that is indistinguishable from a complete, healthy read. The REST diff path does not have this gap: `compare()` in the same service sets `complete(reachableNodeCount == addresses.size())` and reports per-node reachability. The same silent-abandon family was already fixed elsewhere on trunk: `MessageQueryOutput` carries `resultMayBeTruncated`/`skippedCount` (#4388), and the DLQ resend outcome counts abandoned queues (#4592 review). ### How to Reproduce 1. Configure an instance whose cluster resolves to two management NameServer endpoints. 2. Make the second endpoint's `getNameServerConfig` throw (a stopped NameServer, or a mock). 3. Call the `rmq.nameserver.config` tool for that cluster. 4. The output lists only the first endpoint's configuration, with no truncated/unreachable signal. ### Proposed Direction Follow the trunk truncation vocabulary: the tool output carries `resultMayBeTruncated` + `unreachableEndpoints` (mirroring `MessageQueryOutput`), the catalog `outputSchema` gains the two required fields with caller guidance, and the catalog is regenerated. Implemented in PR #4785. -- 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]
