Repository navigation
Settings: delete every archived session at once - #861
Merged
Merged
Conversation
Archived sessions can only be removed one at a time from the sidebar's context menu, which is slow once the list runs into the hundreds. - Settings > Archived gets a red Delete all button beside the subtitle. - It opens the same confirmation as deleting a single session, naming the count. Confirming deletes exactly the sessions that were archived when the button was clicked, one deleteChat mutation each, so rows leave this page and the sidebar's Archived shelf as each delete lands. - Failed deletes are counted and reported in one toast. - Settings buttons gain a Danger tone using the dialogs' destructive fill. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
Author
…e dialog The confirmed id list was deleted as captured, so a chat unarchived after the confirmation (on another device, or via Unarchive while the run is in flight) was still deleted. Each id is now rechecked against the live list before its deleteChat. Escape on the Archived page also closed Settings under the dialog; the page outlives Settings, so the stale dialog reopened with it. Route Escape to the page first, like Devices/Harnesses/Appearance. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
wingleeio
approved these changes
Oct 14, 2026
wingleeio
left a comment
Contributor
There was a problem hiding this comment.
Thanks! Capturing the id list when the dialog opens, one deleteChat per chat through the existing mutation, the count in the confirmation, and the in-flight guard all look right.
I pushed one commit (1276c60):
- Each captured id is rechecked against the live list right before its delete, so a chat unarchived after confirming (via Unarchive here or on another device) is spared.
- Escape closed Settings underneath the dialog, and since the page outlives Settings the stale dialog reopened with it. Escape now dismisses the dialog first, like Devices/Harnesses/Appearance.
Ran cargo check -p zeron-ui --all-targets and cargo test -p zeron-ui --lib merged with main — green.
kopeng-mi
added a commit
to kopeng-mi/zeron
that referenced
this pull request
Oct 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




Archived sessions only go away one at a time, through the sidebar's context menu. Once Settings > Archived holds a hundred-plus of them, clearing the list means a hundred-plus rounds of right-click, Delete, confirm.
This adds a Delete all button to the Archived page. It asks once, with the count, then deletes every archived session.
Summary
deleteChatmutation, the same call the sidebar's Delete makes. No new RPC or wire change. Rows leave the page and the sidebar's Archived shelf as each delete lands.widgets::ActionTonegainsDanger: the dialogs' destructive fill at the standard settings button size.Worth a look: the deletes run one mutation per session in a detached task, the same pattern as the sidebar's section archive. With 146 sessions that's 146 sequential calls. I kept it that way to avoid a new batch op, but I've only run it with 8.
Test plan
cargo test --locked -p zeron-ui --lib -- --test-threads=1(1675 passed)delete_all_deletes_the_confirmed_archived_chats_and_reports_failures: only the confirmed archived chats getdeleteChat, a chat archived after the dialog opened survives, and a rejected delete produces the toastcargo clippy -p zeron-ui --lib --tests: no new warnings in touched codeScreenshots
Screenshots and a recording follow.
🤖 Generated with Claude Code
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.