iloveeyjafjalla opened a new issue, #6296: URL: https://github.com/apache/rocketmq-dashboard/issues/6296
### Before Creating the Bug Report - [x] Searched all-state Issues/PRs and read related current full head differences and all public comments. - [x] This is a RocketMQ Studio frontend issue in this repository. - [x] Reproduced on the exact baseline below. ### Studio Version `rocketmq-studio@5e4c39b053c35a5598cc79ff331b8a54e649d7b1`. ### Runtime Environment / Build Toolchain Windows 11, Node 24.15.0, npm 11.12.1. Automated reproduction renders the actual ConversationListModal and its normal hook with controlled list/update responses; no deployed incident or external model/database interaction is claimed. ### Connected RocketMQ Cluster No broker or database contacted. The affected path is the ordinary Studio AI conversation-history list and archive API. ### Describe the Bug `toggleArchive` awaits the archive update and calls `reload` captured when it began. `useConversationList` defines that callback using the old `load`, which closes over the old page/search/archive criteria. If the user changes the list scope during the update, the old continuation starts a fresh old-scope request after the current list loaded. The normal request-id guard treats that newly started request as current, so its results overwrite the visible list without restoring the old selector. ### Steps to Reproduce 1. Open conversation history with an active conversation available to archive and an existing archived conversation. 2. Click the active row's archive button; keep that normal update pending. 3. Switch the actual scope control to Archived. Let its list query succeed and show the archived conversation. 4. Let the earlier archive update finish. 5. The callback reloads Active (`archived: false`). Active rows replace the archived rows while the scope still says Archived, so row action wording no longer matches those records. The deterministic real-modal regression supplies coherent page-1 lists according to actual criteria. Before the archive finishes it shows an existing archived row; after finishing, old code loses that row and issues the wrong scope query. No invalid pagination count or malformed record is required. ### What Did You Expect to See? After archive completion, refresh the current visible query. Archived rows remain under Archived, including the newly archived conversation. A retained callback should not revive a departed list. ### What Did You See Instead? An earlier callback issues the previous query and overwrites current rows. Existing late-response tests do not cover an old callback starting a new wrong-query request later. ### Additional Context Current #6053 / #6050 handles deletion's current-conversation navigation context; #5454 handles duplicate deletes, #5540 selection across pages, and earlier page-clamp work handles shrinking totals. Their actual patches/comments do not fix the archive continuation's captured query. This report does not claim to repair deletion's separate captured previous-page fallback. The proposed fix invalidates the current query via a stable reload callback, leaving existing stale-read guards intact. Actual validation and AI assistance are documented in the PR. No schema, backend, ownership/permission or API contract change is proposed. AI assistance: OpenAI Codex investigated, implemented and tested this ordinary frontend path, with independent automated review; no human/maintainer approval is claimed. ### Are You Willing to Submit a Pull Request? - [x] Yes. ### Implementation PR https://github.com/apache/rocketmq-dashboard/pull/6295 -- 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]
