iloveeyjafjalla opened a new pull request, #6352: URL: https://github.com/apache/rocketmq-dashboard/pull/6352
### Which Issue(s) This PR Fixes The associated bug report will be linked immediately after publishing this PR. ### Brief Description Select a consumer group, then let the ordinary list refresh successfully return `items: [], total: 0` for the same query. The table becomes empty but still offers `删除 (1)` because the selected keys survive the successful read. Clear the selection only when the current successful request confirms `total === 0`. Keep the existing request-ownership guard, nonempty refreshes, failed refreshes, page clamping and partial-delete retry selection. This preserves the ordinary reload policy in #4473; it does not prune selection on every nonempty page or change the delete-call contract discussed in #6331. ### How Did You Test This Change? Base: `rocketmq-studio` at `779b8c0e7aed2396d3cc72743dcd544ea48e9ae6`. Node 24.15.0, npm 11.12.1; real `ConsumerPage` rendered in the existing Vitest/jsdom harness, controlling only the normal service response boundary. - Old production, same added component tests: **1 failure, 2 passing controls**. After the empty successful refresh the row disappeared but the stale batch action remained. The unchanged-inventory and rejected-read controls passed. The red run used `dad551c712d2eaf9f4db34487126d517ea17c0e4`; Consumer production/tests and npm manifest/lock contents are identical at the final base. - `npm test -- --maxWorkers=1 src/pages/instance/__tests__/ConsumerPage.test.tsx -t keepsBatchSelectionBoundToConfirmedConsumerInventoryTest`: **3 passed**, 54 unrelated cases skipped. - `npm test -- --maxWorkers=1 src/pages/instance/__tests__/ConsumerPage.test.tsx src/services/consumerService.test.ts src/api/metadata.test.ts`: **83/84 passed**, including the three added cases and existing partial-delete coverage. The unchanged `highlights inconsistent subscriptions and refreshes the check result` case failed to find `全部 2 个订阅配置一致`. One sequential isolated comparison reproduced that same assertion failure on both the clean final base and the candidate. That test's list fixture always has `total: 1`, so the new reset does not execute there. Its precise cause remains unknown; this is **not a clean suite result**. No assertion or timeout was changed. - `npm run lint`: **0 errors, 10 warnings** in unchanged files. - `npm run build`: passed TypeScript, production bundle and license gate (**133 components, 140 license files**). - Prettier on both changed files and `git diff --check`: passed. Independent code/diff and validation-boundary review found no blocker for this scoped fix. No full frontend suite, backend/Go suite, live broker/database/deployment or real group deletion was performed. These local results do not claim remote CI success. AI assistance (Codex) was used for investigation, implementation, tests and independent review. ### Checklist - [x] One coherent change; unrelated modifications are not bundled in - [x] Conventional Commit subject - [x] Regression and compatibility tests added, name ends in `Test` - No new UI text, source files, API or architecture changes; backend ArchUnit checks were not run. -- 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]
