fix(settings): conditional refilter on save — preserve chat history for cosmetic changes
Settings.Save() unconditionally ran ClearAllTabs + FilterAllTabsAsync after every save. The cycle reloads messages from the DB, which silently wipes any in-session message that wasn't persisted — Privacy-First configurations block most channels from the DB, so all unlogged channels (Allgemein/Say/Yell/Shout under default filters) showed up empty after every settings save. New HasFilterRelevantChanges helper compares Mutable to Plugin.Config across: - PrivacyFilterEnabled - PrivacyPersistChannels (HashSet<ChatType>) - PrivacyPersistUnknownChannels - FilterIncludePreviousSessions - per-persistent-tab: Identifier (reorder/swap), SelectedChannels, ExtraChatAll, ExtraChatChannels Refilter only runs if any of those changed. Cosmetic settings (theme, tab icons, layout, fonts, language) leave the chat log untouched. Combined with the prior UpdateFrom Identifier-mapping fix and the TempTab skip in ClearAllTabs/FilterAllTabs, both persistent and Auto-Tell tabs now fully survive a settings save. Reported by Flo from in-game testing 2026-05-05/06: 'der allgemein chat tab z.b immernoch gecleart wird' / 'alle vom plugin nicht geloggten channel sind dann leer'. Also updated yaml changelog, docs/CHANGELOG.md and .github/forge-posts/ v1.2.0.md to describe the actual fix shape rather than the partial UpdateFrom-only fix that preceded it.
This commit is contained in:
+2
-2
@@ -29,8 +29,8 @@ und verlinkt für Details auf die Release-Pages.
|
||||
- Appearance settings cleaned: legacy theme-engine bindings replaced by Themes tab (introduced in v1.1.0)
|
||||
|
||||
### Fixed
|
||||
- Settings save no longer wipes the in-session chat history of persistent tabs (`Tab.Clone` preserved `Identifier` but not `Messages` — Identifier-based mapping now restores the live `MessageList` onto cloned tabs)
|
||||
- Settings save no longer clears Auto-Tell tab message history (`ClearAllTabs`/`FilterAllTabs` now skip TempTabs since their messages have no DB persistence to refilter from)
|
||||
- Settings save no longer wipes chat history by default — the heavy `ClearAllTabs + FilterAllTabsAsync` cycle now only runs when a filter-relevant setting actually changed (Privacy filter, persisted channels, per-tab channel selection). Cosmetic changes keep the in-session chat intact
|
||||
- Identifier-based `MessageList` restore in `Configuration.UpdateFrom` plus TempTab skip in `ClearAllTabs`/`FilterAllTabs` ensure persistent tabs and Auto-Tell tabs both survive the save
|
||||
- Sidebar buttons now align vertically with the first message row (top padding mirrors the chat header toolbar height)
|
||||
- Sidebar child window no longer paints the top padding area with its frame background
|
||||
- Status bar version slot (`vX.Y.Z · Hellion`) no longer clips its rightmost character
|
||||
|
||||
Reference in New Issue
Block a user