feat(privacy): default PrivacyPersistUnknownChannels to true for new configs

F3.1: future FFXIV patches can add new ChatTypes that aren't on any
existing whitelist. With the field defaulted to false a new install
would silently drop those channels until the user opts in. New configs
now start with PrivacyPersistUnknownChannels=true via a constant in
PrivacyDefaults. Existing configs keep their explicit choice — the
deserializer overrides the initializer, so no migration and no schema
bump.
This commit is contained in:
2026-05-12 09:41:52 +02:00
parent 83064cd40b
commit 58e754c169
2 changed files with 12 additions and 2 deletions
+6 -2
View File
@@ -57,8 +57,12 @@ public class Configuration : IPluginConfiguration
// Empty set means the migration has not run yet — see Plugin.cs v6→v7. // Empty set means the migration has not run yet — see Plugin.cs v6→v7.
public HashSet<ChatType> PrivacyPersistChannels = []; public HashSet<ChatType> PrivacyPersistChannels = [];
// Failsafe for ChatTypes added by future FFXIV patches. // Failsafe for ChatTypes added by future FFXIV patches. New configs default
public bool PrivacyPersistUnknownChannels; // to the failsafe via PrivacyDefaults; existing configs keep their saved
// choice because the deserializer overrides this initializer.
public bool PrivacyPersistUnknownChannels = Privacy
.PrivacyDefaults
.DefaultPersistUnknownChannels;
public bool IsAllowedForStorage(ChatType type) public bool IsAllowedForStorage(ChatType type)
{ {
+6
View File
@@ -4,6 +4,12 @@ namespace HellionChat.Privacy;
internal static class PrivacyDefaults internal static class PrivacyDefaults
{ {
// F3.1: failsafe for ChatTypes added by future FFXIV patches. New installs
// persist unknown channels so a major patch's added ChatType isn't silently
// dropped before the user can opt in or out. Existing configs keep their
// explicit choice — see Configuration.cs PrivacyPersistUnknownChannels.
internal const bool DefaultPersistUnknownChannels = true;
// DSGVO Art. 25 (Privacy by Default): only the player's own conversations // DSGVO Art. 25 (Privacy by Default): only the player's own conversations
// are persisted out-of-the-box. Public chat, NPC dialogue, system logs and // are persisted out-of-the-box. Public chat, NPC dialogue, system logs and
// battle messages require explicit opt-in. // battle messages require explicit opt-in.