name: Hellion Chat author: JonKazama-Hellion punchline: Chat 2 with privacy controls aligned to EU, US and JP rules description: |- Hellion Chat is built on top of Chat 2 with one removal and a stack of privacy controls on top. Tabs, channel filters, RGB colours, emotes, screenshot mode, IPC integration and the chat replacement window itself work the same. The optional webinterface that Chat 2 ships is intentionally not part of this fork because it serves a different use case from the smaller default footprint Hellion Chat is built around. On top of that, Hellion Chat adds privacy and data-handling controls designed to align with the modern data protection rules that apply across the EU, the United States and Japan. By default only your own conversations are stored; messages from strangers, NPCs and system spam stay out of the database. Retention windows are configurable per channel, history can be wiped retroactively, and stored data can be exported on demand. Key additions on top of Chat 2: - Channel whitelist with a Privacy-First default - Per-channel retention with a daily background sweep - Retroactive cleanup with a Ctrl+Shift confirm - Export to Markdown, JSON or CSV - First-run wizard with three preset profiles (Privacy-First, Casual, Full History) - Bilingual UI (English and German) with live language switching - Independent plugin state — own config file and database directory, so Hellion Chat does not share state with the upstream plugin Based on Chat 2 by Infi and Anna, licensed under EUPL-1.2. repo_url: https://github.com/JonKazama-Hellion/HellionChat accepts_feedback: true icon_url: https://raw.githubusercontent.com/JonKazama-Hellion/HellionChat/main/ChatTwo/images/icon.png image_urls: - https://raw.githubusercontent.com/JonKazama-Hellion/HellionChat/main/ChatTwo/images/chatWindow.png - https://raw.githubusercontent.com/JonKazama-Hellion/HellionChat/main/ChatTwo/images/withSimpleTweaks.png tags: - Social - UI - Chat - Replacement - Privacy changelog: |- **Hellion Chat 0.5.4 — WrapText hardening** Replaces the unsafe pointer-arithmetic in ImGuiUtil.WrapText with Span- and index-based control flow. Closes the persistent CodeQL Critical alert "unvalidated local pointer arithmetic" that kept re-firing on every shape of the previous fix. Hardening: - WrapText now allocates a buffer sized by Encoding.UTF8.GetMaxByteCount via ArrayPool, validates the actual encoded length against that ceiling, and threads the rest of the algorithm through int offsets instead of raw byte pointers - Pointer arithmetic only happens inside two small private helpers (CalcWordWrap and DrawText) that take the pinned base pointer plus int offsets sourced from the plugin's own logic, not from any virtual-method return - Added a 16 KiB upper bound on the buffer rent to prevent a pathological input from triggering an unbounded ArrayPool allocation No user-visible behaviour change. Word-wrap output is byte-identical to v0.5.3. Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2). **Hellion Chat 0.5.3 — Pointer arithmetic hardening** Closed CodeQL Critical alert in ImGuiUtil.WrapText by validating the encoded byte buffer length via GetByteCount before pointer arithmetic. Single-fix patch on top of v0.5.2. **Hellion Chat 0.5.2 — Bugfix patch** Auto-Tell-Tabs history-separator landed below the live tell instead of above (preload now excludes the trigger message). Plugin icon packaging fixed by removing a stale DalamudPackager.targets override that conflicted with the SDK 15 default. Default config aligned to the maintainer's daily driver: HellionThemeWindowOpacity 0.5, Use24HourClock true, Gruppe tab no longer auto-routes /party. Two earlier CodeQL findings closed (workflow permissions, empty-input pointer arithmetic). **Hellion Chat 0.5.1 — Backlog Sweep** Pure hardening and polish. Eight backlog items from the v0.5.0 codebase review collected into one patch: cleanup-preview-stale detection, greeted-tab dim background, Performance HelpMarker consistency, Tabs/Database tab names from HellionStrings, FontChooser framework-thread marshalling, async-void on EmoteCache.LoadData, parameterised SQL via BindIntList helper. --- Earlier history at https://github.com/JonKazama-Hellion/HellionChat/releases.