Add retroactive cleanup for the existing database
The privacy filter only catches new messages. Two new MessageStore methods support a one-shot retroactive sweep: GetMessageCountsByChatType returns a (ChatType, count) snapshot so the UI can preview the impact, and CleanupRetainOnly hard-deletes everything outside the supplied allowlist and runs VACUUM to reclaim disk space. The Privacy tab gains a new section with a refresh-preview button, a keep/delete summary, a per-channel breakdown tree, and a Ctrl+Shift confirm. The cleanup runs on a background thread so a 800+ MB VACUUM does not block the settings UI; tabs are rebuilt via the framework thread once the delete finishes. The cleanup deliberately uses the saved Plugin.Config whitelist (not unsaved Mutable edits) so it stays consistent with the prospective filter.
This commit is contained in:
@@ -40,7 +40,7 @@ public sealed class SettingsWindow : Window
|
||||
new Fonts(Mutable),
|
||||
new ChatColours(Plugin, Mutable),
|
||||
new Tabs(Plugin, Mutable),
|
||||
new SettingsTabs.Privacy(Mutable),
|
||||
new SettingsTabs.Privacy(Plugin, Mutable),
|
||||
new Database(Plugin, Mutable),
|
||||
new Webinterface(Plugin, Mutable),
|
||||
new Miscellaneous(Mutable),
|
||||
|
||||
Reference in New Issue
Block a user