From 58e754c169096cc6b38d23b7c7937cab7d4214e0 Mon Sep 17 00:00:00 2001 From: Jon Kazama Date: Tue, 12 May 2026 09:41:52 +0200 Subject: [PATCH] feat(privacy): default PrivacyPersistUnknownChannels to true for new configs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- HellionChat/Configuration.cs | 8 ++++++-- HellionChat/Privacy/PrivacyDefaults.cs | 6 ++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/HellionChat/Configuration.cs b/HellionChat/Configuration.cs index 5efebfd..d8bfd55 100755 --- a/HellionChat/Configuration.cs +++ b/HellionChat/Configuration.cs @@ -57,8 +57,12 @@ public class Configuration : IPluginConfiguration // Empty set means the migration has not run yet — see Plugin.cs v6→v7. public HashSet PrivacyPersistChannels = []; - // Failsafe for ChatTypes added by future FFXIV patches. - public bool PrivacyPersistUnknownChannels; + // Failsafe for ChatTypes added by future FFXIV patches. New configs default + // 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) { diff --git a/HellionChat/Privacy/PrivacyDefaults.cs b/HellionChat/Privacy/PrivacyDefaults.cs index 2a3e503..ae5f569 100644 --- a/HellionChat/Privacy/PrivacyDefaults.cs +++ b/HellionChat/Privacy/PrivacyDefaults.cs @@ -4,6 +4,12 @@ namespace HellionChat.Privacy; 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 // are persisted out-of-the-box. Public chat, NPC dialogue, system logs and // battle messages require explicit opt-in.