docs: translate CHANGELOG and ROADMAP to English
Security / scan (push) Successful in 13s

Translate all remaining German sections in docs/CHANGELOG.md and
docs/ROADMAP.md to English for consistency across the repository.
Previously English sections left unchanged.
This commit is contained in:
2026-05-11 20:32:11 +02:00
parent c493340104
commit 3b24b2adc4
2 changed files with 235 additions and 219 deletions
+99 -87
View File
@@ -1,13 +1,12 @@
# Changelog — Hellion Chat # Changelog — Hellion Chat
Alle nutzersichtbaren Änderungen an Hellion Chat. Das Format orientiert sich an All user-facing changes to Hellion Chat. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
[Keep a Changelog](https://keepachangelog.com/de/1.0.0/), die Version-Nummern folgen version numbers follow [Semantic Versioning](https://semver.org/).
[Semantischer Versionierung](https://semver.org/lang/de/).
Detaillierte Release-Notes pro Version stehen direkt am Detailed release notes per version are available directly on the
[Gitea-Release](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases) und im Plugin-Changelog-Block [Gitea Release page](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases) and in the plugin
(`HellionChat/HellionChat.yaml``changelog:`). Diese Datei fasst die Releases als Überblick zusammen und verlinkt für changelog block (`HellionChat/HellionChat.yaml``changelog:`). This file summarises releases as an overview and links
Details auf die Release-Pages. to the release pages for details.
--- ---
@@ -40,8 +39,8 @@ Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
Third sub-patch of the v1.4.x Polish Sweep series. Per-frame allocations from the chat-log render path eliminated. Third sub-patch of the v1.4.x Polish Sweep series. Per-frame allocations from the chat-log render path eliminated.
- `DrawMessages` card-mode hoists `theme`/`drawList`/`winLeft`/ `winRight`/`borderColorAbgr` out of the per-message - `DrawMessages` card-mode hoists `theme`/`drawList`/`winLeft`/`winRight`/`borderColorAbgr` out of the per-message loop.
loop. About 500 redundant calls per frame at 100 visible messages, multiplied by every pop-out window About 500 redundant calls per frame at 100 visible messages, multiplied by every pop-out window
- Auto-tell tab tint and icon use a per-tab cache. Hash computation and string allocation only happen when the tell - Auto-tell tab tint and icon use a per-tab cache. Hash computation and string allocation only happen when the tell
target name or world drifts. `AutoTellTabTint` stays a pure hash helper; cache lives in a thin `TabTintCache` wrapper target name or world drifts. `AutoTellTabTint` stays a pure hash helper; cache lives in a thin `TabTintCache` wrapper
- Status bar gates its tab aggregation behind the same one-second cache it already used for the format strings. LINQ - Status bar gates its tab aggregation behind the same one-second cache it already used for the format strings. LINQ
@@ -105,7 +104,7 @@ Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
--- ---
## Hellion Chat 1.3.0 - Plugin Integrations: Honorific ## Hellion Chat 1.3.0 Plugin Integrations: Honorific
First step on the plugin-integration roadmap. HellionChat now listens to Honorific and shows your custom title in the First step on the plugin-integration roadmap. HellionChat now listens to Honorific and shows your custom title in the
chat header. The slot auto-hides when Honorific is not installed, when no custom title is active, or when you are using chat header. The slot auto-hides when Honorific is not installed, when no custom title is active, or when you are using
@@ -118,7 +117,7 @@ the original FFXIV title.
- Maintainer attribution buttons for Honorific repo and Caraxi - Maintainer attribution buttons for Honorific repo and Caraxi
- New service-class pattern under HellionChat/Integrations/ - New service-class pattern under HellionChat/Integrations/
Modding and support: join Hellion Forge - <https://discord.gg/X9V7Kcv5gR> Modding & support: join Hellion Forge <https://discord.gg/X9V7Kcv5gR>
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2). Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
@@ -177,7 +176,7 @@ Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
## v1.2.0 — Layout Refresh (2026-05-05) ## v1.2.0 — Layout Refresh (2026-05-05)
### 1.2.0 Added ### Added
- Sidebar tab modernization: icon-only at fixed 44 px, tooltip on hover, vertical accent pill for active tab - Sidebar tab modernization: icon-only at fixed 44 px, tooltip on hover, vertical accent pill for active tab
- Top tabs: accent underline pill replaces background fill on active tab - Top tabs: accent underline pill replaces background fill on active tab
@@ -190,12 +189,12 @@ Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
- Unread indicator: pulsing red dot in the top-right corner of any sidebar tab icon with unread messages, 2-second - Unread indicator: pulsing red dot in the top-right corner of any sidebar tab icon with unread messages, 2-second
sine-wave pulse, respects `Configuration.ReduceMotion` sine-wave pulse, respects `Configuration.ReduceMotion`
### 1.2.0 Changed ### Changed
- Migration v14 → v15: deprecated Configuration fields `HellionThemeEnabled` and `HellionThemeWindowOpacity` removed - Migration v14 → v15: deprecated Configuration fields `HellionThemeEnabled` and `HellionThemeWindowOpacity` removed
- Appearance settings cleaned: legacy theme-engine bindings replaced by Themes tab (introduced in v1.1.0) - Appearance settings cleaned: legacy theme-engine bindings replaced by Themes tab (introduced in v1.1.0)
### 1.2.0 Fixed ### Fixed
- Settings save no longer wipes chat history by default — the heavy `ClearAllTabs + FilterAllTabsAsync` cycle now only - 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). runs when a filter-relevant setting actually changed (Privacy filter, persisted channels, per-tab channel selection).
@@ -206,75 +205,78 @@ Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
- Sidebar child window no longer paints the top padding area with its frame background - 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 - Status bar version slot (`vX.Y.Z · Hellion`) no longer clips its rightmost character
### 1.2.0 Notes ### Notes
- Polish phase (animations, theme crossfade, header quick-picker) follows in v1.3.0 - Polish phase (animations, theme crossfade, header quick-picker) follows in v1.3.0
- Top-Tab icon prefixes were considered but dropped: Dalamud's default font atlas does not include FontAwesome - Top-Tab icon prefixes were considered but dropped: Dalamud's default font atlas does not include FontAwesome
codepoints, so mixed-font in a single TabItem label renders as tofu. Underline pill alone is the v1.2.0 visual codepoints, so mixed-font in a single TabItem label renders as tofu. Underline pill alone is the v1.2.0 visual
treatment for top tabs. Resolution would require Font-Atlas merge at FontManager level — out of scope. treatment for top tabs. Resolution would require Font-Atlas merge at FontManager level — out of scope.
---
## [1.1.0] — 2026-05-05 — Theme Foundation ## [1.1.0] — 2026-05-05 — Theme Foundation
Erster großer UI-Cycle nach v1.0.0. Theme-Engine, fünf Built-In-Themes, Custom-Themes via JSON, Settings-Card-Grid. First major UI cycle after v1.0.0. Theme engine, five built-in themes, custom themes via JSON, settings card grid.
### Hinzugefügt ### Added
- **Theme-Engine** mit fünf Built-In-Themes: Hellion Arctic (Default), Chat 2 Klassik, Event Horizon, Moonlit Bloom, - **Theme engine** with five built-in themes: Hellion Arctic (default), Chat 2 Classic, Event Horizon, Moonlit Bloom,
Mint Grove. Mint Grove.
- **Settings → Themes** mit Mini-Mockup-Preview pro Theme. Klick auf eine Card switcht sofort das ganze Plugin (Chat, - **Settings → Themes** with mini mockup preview per theme. Clicking a card instantly switches the entire plugin (chat,
Settings, Pop-Out). settings, pop-outs).
- **Custom-Themes via JSON** in `pluginConfigs/HellionChat/themes/`. Beim ersten Start wird `example-theme.json` als - **Custom themes via JSON** in `pluginConfigs/HellionChat/themes/`. On first start, `example-theme.json` is placed
Vorlage abgelegt. there as a template.
- **Optional Theme-Chat-Channel-Colors**: Themes können eigene Channel-Farben mitliefern. Beim Switch erscheint ein - **Optional theme chat channel colours**: themes can ship their own channel colours. On switch, a banner appears with
Banner mit _Übernehmen / Behalten_ — nie automatisch. _Apply / Keep current_ — never applied automatically.
- **Settings-Card-Grid**: neue Übersicht beim Öffnen, Card-Klick führt in die Detail-Ansicht der Section. Breadcrumb + - **Settings card grid**: new overview on open, clicking a card navigates into the section's detail view. Breadcrumb +
ESC führen zurück. ESC navigate back.
- **`docs/THEME-AUTHORING.md`** als Anleitung zum Schreiben eigener Themes, mit Hellion-Forge-Branding. - **`docs/THEME-AUTHORING.md`** as a guide for writing custom themes, with Hellion Forge branding.
### Geändert ### Changed
- **Plugin-Icon** auf Hellion Forge Hammer (vorher ChatTwo-Derivat). - **Plugin icon** updated to Hellion Forge hammer (previously a ChatTwo derivative).
- **Settings-Detail-View** verwendet die volle Breite — die zweite Tab-Liste links ist weg, weil die Card-Übersicht den - **Settings detail view** uses the full width — the second tab list on the left is gone because the card overview
Wechsel übernimmt. handles navigation.
- **`HellionStyle.PushGlobal`** ist jetzt theme-driven (`PushGlobal(theme, opacity)`) statt const-palette-driven. - **`HellionStyle.PushGlobal`** is now theme-driven (`PushGlobal(theme, opacity)`) instead of const-palette-driven.
- **Configuration v13 → v14**: alle User landen auf `hellion-arctic`. Wer den Upstream-Look will, wählt `chat2-classic` - **Configuration v13 → v14**: all users land on `hellion-arctic`. Those who prefer the upstream look can select
in Settings → Themes. `chat2-classic` in Settings → Themes.
### Veraltet ### Deprecated
- `Configuration.HellionThemeEnabled` und `HellionThemeWindowOpacity` bleiben für ein Release lesbar als Safety-Net, - `Configuration.HellionThemeEnabled` and `HellionThemeWindowOpacity` remain readable for one release as a safety net
werden aber nicht mehr ausgewertet. Entfernung geplant in v1.2.0. but are no longer evaluated. Removal planned for v1.2.0.
### Sicherheit ### Security
- Custom-Theme-JSON-Loader prüft `schemaVersion`, Pflichtfelder und Hex-Format. Ungültige Themes werden mit Warning - Custom theme JSON loader validates `schemaVersion`, required fields and hex format. Invalid themes are skipped with a
übersprungen, das Plugin lädt mit Built-Ins weiter. warning; the plugin continues loading with built-ins.
### Intern ### Internal
- 51 lokale Unit-Tests (Theme-Records, Registry, JSON-Round-Trip, Sanity pro Built-In-Theme). Tests sind gitignored. - 51 local unit tests (theme records, registry, JSON round-trip, sanity per built-in theme). Tests are gitignored.
--- ---
## [1.0.3] — 2026-05-04 — Polish patch ## [1.0.3] — 2026-05-04 — Polish Patch
Vier kleine Polish-Items aus dem Backlog gebündelt: Four small polish items from the backlog bundled together:
- **Hide bei New Game+ Menü**: Optionaler globaler Toggle der Hellion Chat (und alle weiteren Plugin-Fenster wie - **Hide on New Game+ menu**: optional global toggle that hides Hellion Chat (and all other plugin windows such as
Settings, DB-Viewer, Pop-Outs) ausblendet, solange das NG+-Menü offen ist. Settings → Fenster → Rahmen, Default aus. Settings, DB Viewer, pop-outs) while the NG+ menu is open. Settings → Window → Frame, default off. Skips the entire
Skipt analog zum bestehenden LoadingScreens-Pattern den gesamten `WindowSystem.Draw()`-Pfad. `WindowSystem.Draw()` path analogous to the existing LoadingScreens pattern.
- **Channel-Selector-Färbung**: Optionales Tinting des Channel-Auswahl-Knopfs (Comment-Icon) neben dem Eingabefeld in - **Channel selector colouring**: optional tinting of the channel-select button (comment icon) next to the input field
der aktuellen Channel-Farbe. Settings → Aussehen → Chat-Farben, Default an. Konsistent zur bestehenden in the current channel colour. Settings → Appearance → Chat Colours, default on. Consistent with the existing input
Eingabetext-Färbung, ExtraChat-Override wird übernommen. text colouring; ExtraChat override is carried over.
- **(De)Buff-Icon Aspect-Ratio-Fix**: `PayloadHandler.InlineIcon` quetschte alle Hover-Icons auf 32×32. Status-Icons mit - **(De)buff icon aspect-ratio fix**: `PayloadHandler.InlineIcon` was squashing all hover icons to 32×32. Status icons
nicht-quadratischen Dimensionen (Debuffs mit Pfeil-Indikator) sind jetzt aspekt-erhaltend geshrinkt. Eigenständige with non-square dimensions (debuffs with an arrow indicator) are now shrunk aspect-preserving. Standalone float-math
Float-Math-Implementierung mit Zero-Size-Guard statt Cherry-Pick aus dem offenen ChatTwo PR #157 (der hatte eine implementation with zero-size guard instead of a cherry-pick from the open ChatTwo PR #157 (which had an int-division
int-Division-Falle). trap).
- **HideState-Logging-Sweep**: Alle HideState-Transitions (Battle/Cutscene/User/Override plus die Pop-Out-Spiegelung) - **HideState logging sweep**: all HideState transitions (Battle/Cutscene/User/Override plus pop-out mirroring) log at
loggen sich auf Verbose-Level. Aus by default, Aktivierung via `/xllog set HellionChat verbose` für verbose level. Off by default; enable via `/xllog set HellionChat verbose` for bug-report diagnostics.
Bug-Report-Diagnose.
[Release-Notes 1.0.3](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v1.0.3) [Release Notes 1.0.3](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v1.0.3)
---
## [1.0.1] — 2026-05-04 — Window Position Recovery ## [1.0.1] — 2026-05-04 — Window Position Recovery
@@ -287,61 +289,71 @@ Bundled housekeeping since v1.0.0: documentation restructured into `docs/`, stal
cleaned up, Pidgin parser library bumped from 3.3.0 to 3.5.1, GitHub Actions bumps for `actions/setup-dotnet` (4 → 5) cleaned up, Pidgin parser library bumped from 3.3.0 to 3.5.1, GitHub Actions bumps for `actions/setup-dotnet` (4 → 5)
and `github/codeql-action` (3 → 4). and `github/codeql-action` (3 → 4).
[Release-Notes 1.0.1](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v1.0.1) [Release Notes 1.0.1](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v1.0.1)
---
## [1.0.0] — 2026-05-03 — Standalone Major Release ## [1.0.0] — 2026-05-03 — Standalone Major Release
Erste vollständig eigenständige Version. Code-Namespace, IPC-Kanäle und Source-Tree-Struktur wurden auf `HellionChat.*` First fully independent release. Code namespace, IPC channels and source tree structure consolidated under
konsolidiert. Plugin verweigert den Start bei aktivem Upstream Chat 2 (bilinguale Konflikt-Meldung). SQLite-Native auf `HellionChat.*`. Plugin refuses to start alongside an active upstream Chat 2 (bilingual conflict message). SQLite native
3.50.3 gepinnt (CVE-2025-6965, CVE-2025-7709). Tab-Layout-Default für neue Installationen und für User auf pinned to 3.50.3 (CVE-2025-6965, CVE-2025-7709). Tab layout default for new installs and users on config version 12 or
Config-Version 12 oder älter neu strukturiert (5 thematische Tabs statt 6+ kitchen-sink). Sweep aus Critical- und older restructured (5 thematic tabs instead of 6+ kitchen-sink). Sweep of critical and major findings from the codebase
Major-Findings aus dem Codebase-Audit eingearbeitet. audit incorporated.
[Release-Notes 1.0.0](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v1.0.0) [Release Notes 1.0.0](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v1.0.0)
---
## [0.6.1] — 2026-05-03 — Pop-Out Discoverability & /tell Auto-Pop-Out ## [0.6.1] — 2026-05-03 — Pop-Out Discoverability & /tell Auto-Pop-Out
Pop-Out-Button im Chat-Header sichtbar, einmaliger Hint-Banner für die Pop-Out-Funktionalität. Neue Einstellung "Neue Pop-out button visible in the chat header, one-time hint banner for the pop-out feature. New setting "Open new /tell
/tell-Tabs direkt als Pop-Out öffnen". Pop-Out-Input ist jetzt standardmäßig aktiv. Bugfixes: Ghost-Windows bei LRU-Drop tabs directly as pop-out". Pop-out input is now active by default. Bug fixes: ghost windows on LRU-drop / logout, dead
/ Logout, Dead-Zone unter dem Input-Bar bei aktivem Hint-Banner. zone below the input bar when the hint banner is active.
[Release-Notes 0.6.1](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v0.6.1) [Release Notes 0.6.1](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v0.6.1)
---
## [0.6.0] — 2026-05-03 — UX Polish: Pop-Out Input + Colour Presets ## [0.6.0] — 2026-05-03 — UX Polish: Pop-Out Input + Colour Presets
Zwei opt-in UX-Features. Pop-Out-Fenster bekommen optional eine kompakte Eingabe-Bar mit channel-farbigem Icon-Button Two opt-in UX features. Pop-out windows optionally get a compact input bar with a channel-coloured icon button and an
und unabhängigem Text-Buffer pro Pop-Out. Sieben Built-in-Color-Presets (Klassik, High-Contrast, Pastell, independent text buffer per pop-out. Seven built-in colour presets (Classic, High Contrast, Pastel, Dark Mode Tuned,
Dark-Mode-Tuned, Hellion, Night Blue, Indigo Violet) zum One-Click-Apply. Konfigurations-Migration v10 → v11. Hellion, Night Blue, Indigo Violet) for one-click apply. Configuration migration v10 → v11.
[Release-Notes 0.6.0](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v0.6.0) [Release Notes 0.6.0](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v0.6.0)
---
## [0.5.4] — 2026-05-02 — WrapText Hardening ## [0.5.4] — 2026-05-02 — WrapText Hardening
`ImGuiUtil.WrapText` von Pointer-Arithmetik auf Span- und Index-basierten Control-Flow umgestellt. Schließt das `ImGuiUtil.WrapText` rewritten from pointer arithmetic to Span- and index-based control flow. Permanently closes the
wiederkehrende CodeQL-Critical-Alert "unvalidated local pointer arithmetic" dauerhaft. Keine nutzersichtbare recurring CodeQL critical alert "unvalidated local pointer arithmetic". No user-visible behaviour change — word-wrap
Verhaltensänderung — Word-Wrap-Output ist byte-identisch zu 0.5.3. output is byte-identical to 0.5.3.
[Release-Notes 0.5.4](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v0.5.4) [Release Notes 0.5.4](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v0.5.4)
---
## [0.5.3] — 2026-05-02 — Pointer Arithmetic Hardening ## [0.5.3] — 2026-05-02 — Pointer Arithmetic Hardening
Erster Anlauf zur Schließung des CodeQL-Critical-Alerts in `ImGuiUtil.WrapText`. Encoded-Byte-Buffer-Length wird vor der First attempt at closing the CodeQL critical alert in `ImGuiUtil.WrapText`. Encoded byte buffer length is validated via
Pointer-Arithmetik via `GetByteCount` validiert. `GetByteCount` before pointer arithmetic.
[Release-Notes 0.5.3](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v0.5.3) [Release Notes 0.5.3](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v0.5.3)
--- ---
## Frühere Versionen ## Earlier Versions
Releases vor 0.5.3 (Bootstrap-Phase 0.1.0 bis 0.5.2) sind direkt am GitHub-Release-Stream einsehbar: Releases before 0.5.3 (bootstrap phase 0.1.0 to 0.5.2) are available directly on the Gitea release stream:
[Alle Releases](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases) [All Releases](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases)
--- ---
## Pflege-Hinweis ## Maintenance Note
Die Source-of-Truth für den nutzersichtbaren Changelog ist der `changelog:`-Block in `HellionChat/HellionChat.yaml`. The source of truth for the user-facing changelog is the `changelog:` block in `HellionChat/HellionChat.yaml`.
`repo.json` und der GitHub-Release-Body werden daraus gespeist. Diese Datei (`docs/CHANGELOG.md`) ist eine kuratierte `repo.json` and the GitHub release body are fed from there. This file (`docs/CHANGELOG.md`) is a curated summary with
Zusammenfassung mit Verweis auf die Release-Pages und wird beim Versions-Bump manuell ergänzt. links to the release pages and is updated manually on each version bump.
+136 -132
View File
@@ -1,174 +1,178 @@
# Hellion Chat — Roadmap # Hellion Chat — Roadmap
Geplante Arbeit nach dem v1.0.0 Standalone-Cut. Diese Liste ist absichtlich grob: konkrete Specs, Größenschätzungen und Planned work after the v1.0.0 standalone cut. This list is intentionally high-level: concrete specs, size estimates and
Repro-Steps liegen im internen Backlog. Tracking nach außen läuft über repro steps live in the internal backlog. External tracking runs via
[Gitea Issues](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/issues) mit dem `roadmap`-Label, sobald [Gitea Issues](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/issues) with the `roadmap` label once an
ein Item für einen Cycle eingeplant ist. item is scheduled for a cycle.
Reihenfolge ist Priorität, nicht Garantie. Items können sich verschieben oder ganz wegfallen wenn sie sich beim Order reflects priority, not a guarantee. Items may shift or be dropped entirely if they turn out to be a poor fit for
Brainstorm als nicht passend zur Privacy-First-Schnittmenge des Plugins erweisen. the plugin's privacy-first scope during brainstorming.
--- ---
## Nächster Cycle (v1.4.4) ## Next Cycle (v1.4.4)
**Window-Lazy-Open + Render-Init-Cost-Optimisation**die in v1.4.3 gelegte IAsyncDalamudPlugin-Foundation jetzt für **Window-Lazy-Open + Render-Init-Cost Optimisation**take the `IAsyncDalamudPlugin` foundation laid in v1.4.3 and turn
die echten User- spürbaren Wins nutzen. Window-Konstruktion erst beim ersten Open, Render-Path-Init-Kosten in den ersten it into wins users can actually feel. Window construction deferred until first open, render-path init cost reduced in
Frames runter. Konkrete Kandidaten und Größenschätzungen werden im v1.4.4-Brainstorm konsolidiert. the first frames. Concrete candidates and size estimates will be consolidated in the v1.4.4 brainstorm.
---
## v1.4.3 — Plugin-Load Async-Init + Repo-Cutover (released 2026-05-08) ## v1.4.3 — Plugin-Load Async-Init + Repo-Cutover (released 2026-05-08)
Vierter und größter Sub-Patch der v1.4.x Polish-Sweep-Serie. Plugin auf Dalamud's IAsyncDalamudPlugin-API migriert: der Fourth and largest sub-patch of the v1.4.x Polish Sweep series. Plugin migrated to Dalamud's `IAsyncDalamudPlugin` API:
Konstruktor übernimmt nur noch Bootstrap-Essentials (Config-Load, Language-Init, Conflict-Detection), Migrationen, the constructor handles only bootstrap essentials (config load, language init, conflict detection); migrations, service
Service-Allokationen, Window- Konstruktion und Hook-Subscription wandern in LoadAsync. Schema- Gate ersetzt die v9 → v16 allocations, window construction and hook subscription move to `LoadAsync`. Schema gate replaces the v9 → v16 migration
Migrations-Kette; Configs auf Schema v16+ laden direkt, ältere Configs triggern eine "install v1.4.2 chain; configs on schema v16+ load directly, older configs trigger an "install v1.4.2 first" error.
first"-Fehlermeldung. AutoTranslate.PreloadCache vom Load-Pfad runter. FontManager.BuildFonts läuft sync am Start von `AutoTranslate.PreloadCache` moved off the load path. `FontManager.BuildFonts` runs sync at the start of `LoadAsync`;
LoadAsync, Dalamud baut den Font-Atlas auf seiner eigenen Pipeline. Custom-Repo-URL auf `gitea.hellion-forge.cloud` Dalamud rebuilds the font atlas on its own pipeline. Custom-repo URL cut over to `gitea.hellion-forge.cloud`; the GitHub
cut-over, das GitHub-Repo bleibt als eingefrorener v1.4.2-Snapshot stehen. Plugin-Load-Zeit liegt bei ~3.7 s Median (5 repo remains as a frozen v1.4.2 snapshot. Plugin load time sits at ~3.7 s median (5 reloads), comparable to v1.4.2 — the
Reloads), vergleichbar mit v1.4.2: Async-Migration ist Foundation für v1.4.4 Lazy-Init- Optimierungen, kein direkter async migration is a foundation for v1.4.4 lazy-init optimisations rather than an immediate user-perceived win.
User-spürbarer Win.
## v1.4.2 — ChatLog Frame-Hot-Path (released <Datum>) ## v1.4.2 — ChatLog Frame-Hot-Path (released 2026-05-08)
Dritter Sub-Patch der v1.4.x Polish-Sweep-Serie. Per-Frame- Allokationen aus dem ChatLogWindow-Render-Pfad und der Third sub-patch of the v1.4.x Polish Sweep series. Per-frame allocations eliminated from the ChatLogWindow render path
Settings-StatusBar eliminiert. Card-Mode-Border-Loop in DrawMessages hebt fünf Invarianten in einen Pre-Loop-Hoist, and the settings status bar. Card-mode border loop in `DrawMessages` hoists five invariants into a pre-loop hoist;
AutoTellTabTint bekommt einen Per-Tab-Cache via TabTintCache (separate Validation-Keys pro Cache, kein `AutoTellTabTint` gets a per-tab cache via `TabTintCache` (separate validation keys per cache, no cross-invalidation);
Cross-Invalidation), StatusBar zieht den Cache-Gate-Check vor die Aggregations und ersetzt LINQ Sum+Count durch eine status bar moves the cache-gate check before the aggregation and replaces LINQ `Sum`+`Count` with a single-pass foreach.
Single-Pass-Foreach.
## v1.4.1 — Theme Engine Performance (released <Datum>) ## v1.4.1 — Theme Engine Performance (released 2026-05-08)
Zweiter Sub-Patch der v1.4.x Polish-Sweep-Serie. ABGR-Cache auf den Theme-Records pre-computed, HellionStyle.PushGlobal Second sub-patch of the v1.4.x Polish Sweep series. ABGR cache pre-computed on theme records; `HellionStyle.PushGlobal`
liest aus dem Cache statt pro Slot pro Frame zu konvertieren. **~13 % Render-Time-Recovery** im Smoke-Test reads from the cache instead of converting per slot per frame. **~13 % render-time recovery** in smoke tests (plan
(Plan-Erwartung 2-6 % war konservativ, real ~10-15 %). Custom-Theme-Hot-Reload überlebt transient File-Locks via estimate of 26 % was conservative; real result ~1015 %). Custom-theme hot-reload survives transient file locks via
Last-Known-Good-Snapshot. Plus: Synthwave Sunset als zehnter Built-In, Author-Credits auf Hellion Forge konsolidiert, last-known-good snapshot. Plus: Synthwave Sunset as the tenth built-in, author credits consolidated under Hellion Forge,
Mint Grove + Forge Merchantman auf Carla Beleandis als Community-Thanks. Mint Grove + Forge Merchantman credited to Carla Beleandis as a community thanks.
## v1.4.0 — Critical Lifecycle Fixes (released 2026-05-07) ## v1.4.0 — Critical Lifecycle Fixes (released 2026-05-07)
Erster Sub-Patch der v1.4.x Polish-Sweep-Serie. Sieben P0- Findings aus Audit-Pass-3 und Pass-4 abgearbeitet: First sub-patch of the v1.4.x Polish Sweep series. Seven P0 findings from audit passes 3 and 4 resolved: async-void
async-void-Loads, fehlende IsBackground-Flags, GC.Collect in Dispose, DeferredSave-Race und Pre-v13-Backup-Lookup für loads, missing `IsBackground` flags, `GC.Collect` in Dispose, deferred-save race and pre-v13 backup lookup for
WindowOpacity. Keine Schema-Bumps, keine Funktions- Änderungen für den User außer dass Reload und Shutdown spürbar `WindowOpacity`. No schema bumps, no user-facing behaviour changes other than reload and shutdown running noticeably
sauberer laufen. cleaner.
## v1.3.0 - Plugin Integrations: Honorific (released 2026-05-07) ## v1.3.0 Plugin Integrations: Honorific (released 2026-05-07)
Erster Cycle der Plugin-Integrations-Roadmap. Honorific-Custom- Titles werden im Chat-Header angezeigt, mit Auto-Detect First cycle of the plugin integrations roadmap. Honorific custom titles displayed in the chat header with auto-detect
und silent Fallback. Neuer Integrations-Settings-Tab. Pattern- Etablierer für die fünf folgenden Cycles (Context-Menu, and silent fallback. New Integrations settings tab. Pattern-setter for the five following cycles (Context Menu,
NotificationMaster, RP-Status-Block, ExtraChat, XIVIM). NotificationMaster, RP Status Block, ExtraChat, XIVIM).
Spec: [Plugin-Integrationen-Übersicht](../Hellion%20Chat%20Plugin-Integrationen.md) Spec: [Plugin Integrations Overview](../Hellion%20Chat%20Plugin-Integrationen.md)
## v1.2.3 — Theme Expansion (released 2026-05-06) ## v1.2.3 — Theme Expansion (released 2026-05-06)
Vier neue Built-In-Themes: Night Blue, Indigo Violet, Forge Merchantman, Hellion Spectrum (Deuteran/Protan-safe). Keine Four new built-in themes: Night Blue, Indigo Violet, Forge Merchantman, Hellion Spectrum (Deuteran/Protan-safe). No
Engine-Änderungen. Siehe `docs/CHANGELOG.md`. engine changes. See `docs/CHANGELOG.md`.
(v1.2.2 wurde verbrannt weil das `repo.json`-Manifest beim ersten Push nicht synchron mitgebumpt wurdeRe-Release als (v1.2.2 was burned because the `repo.json` manifest was not bumped in sync on the first pushre-released as v1.2.3
v1.2.3 mit kompletter Manifest-Synchronisation.) with full manifest synchronisation.)
## v1.2.1 — Settings Cleanup (released 2026-05-06) ## v1.2.1 — Settings Cleanup (released 2026-05-06)
Re-sortierte Settings (9 Cards thematisch), 4 tote Settings entfernt, Auto-Migration v15 → v16 ohne Daten-Verlust. Settings re-sorted thematically (9 cards), 4 dead settings removed, auto-migration v15 → v16 without data loss.
## v1.2.0 — Layout Refresh (released 2026-05-05) ## v1.2.0 — Layout Refresh (released 2026-05-05)
Top-Tabs-Refresh, Sidebar-Tab-Icons, Bottom-Status-Bar, Card-Rows als Default-Message-Render, Auto-Tell-Tab-Hashing. Top tabs refresh, sidebar tab icons, bottom status bar, card rows as default message render, auto-tell tab hashing.
## v1.1.0 — Theme Foundation (released 2026-05-05) ## v1.1.0 — Theme Foundation (released 2026-05-05)
Theme-Engine mit fünf Built-In-Themes, Settings-Card-Grid, Custom- Themes via JSON, Theme-Authoring-Doku. Plugin-Icon Theme engine with five built-in themes, settings card grid, custom themes via JSON, theme authoring docs. Plugin icon
auf Hellion Forge. Siehe `docs/CHANGELOG.md` für Details. updated to Hellion Forge hammer. See `docs/CHANGELOG.md` for details.
Aus dem ursprünglichen v1.1.0-Plan (Ad-Block / Spam-Filter, Receive- Suppressed-Tells-Toggle) wurden zugunsten der Items from the original v1.1.0 plan (ad-block / spam filter, receive-suppressed-tells toggle) were deferred in favour of
Theme-Engine zurück­ gestellt — beide Items leben weiter im Mittelfrist-Block. the theme engine — both items live on in the mid-term block.
## Mittelfristig (v1.4.x+)
- **Plugin-Integrations-Roadmap (Cycles 2-6)** - sechs Plugin- Integrationen geplant, Honorific (Cycle 1) ist live,
danach folgen Context-Menu, NotificationMaster, RP-Status-Block, ExtraChat und XIVIM in eigenen Cycles. Spec und
Cycle-Reihenfolge in [Plugin-Integrationen-Übersicht](../Hellion%20Chat%20Plugin-Integrationen.md).
- **Ad-Block / Spam-Filter** — Hybrid-Konzept aus eigenem Light-Filter und optionaler `NoSoliciting`-IPC-Integration.
Adressiert Werbe-Spam in öffentlichen Channels und Tells. Aus dem v1.1.0-Plan zurückgestellt.
- **Receive-Suppressed-Tells-Toggle** — Auto-Tell-Tabs greift auch wenn ein Drittplugin (z.B. XIVMessenger) die
/tell-Anzeige global suppressed. Gleicher Hook-Layer wie Ad-Block, deshalb gebündelt.
- **Database-Viewer Inline-Search** — Volltext-Suche im DB-Viewer via SQLite FTS5. Aktuell gibt es nur Datums- und
Channel-Filter.
- **TempTell Persistence** — Pin-Toggle auf TempTell-Tabs damit ausgewählte Tells einen Relog überleben. Tester-Wunsch
von Jingliu.
- **FontManager Async-Refactor** — `LoadGameSymFontAsync` aus dem blockierenden Plugin-Constructor herausziehen.
Cold-Start-Hitching beim ersten Plugin-Start beheben (Severity niedrig, Plugin ist funktional).
- **Separate Opacity Active vs. Inactive** — zweiter Slider für inaktive Fenster-Deckkraft. Upstream lehnt das ab; wir
können hier anders entscheiden.
- **Failed-Tell-Notification** — sichtbare Nachricht bei /tell-Fail (offline, restricted instance, blacklisted,
world-mismatch) statt stillem Failure.
- **Per-Tab Sound-Notification** — Sound-Toggle und optional eigene .wav pro Tab, mit Mute-In-Combat-Option.
## Langfrist (v1.x+)
### Storage-Backends (drei Stufen Bestätigung)
- MySQL/MariaDB-Backend für Multi-Device-Setups
- PostgreSQL-Backend
- AES-256-Verschlüsselung für sensible Channels mit lokalem Key
### Linux-spezifisch
- WireGuard-Network-Detection als optionaler Filter-Trigger
- libnotify-Integration für native Linux-Toasts
- XDG-Compliance (komplex unter Wine)
### UX und Tab-Management
- **Regex Tab Routing** — Plugin-Output-Spam in eigene Tabs, Tells bestimmter Personen automatisch sortieren. Klar
abgegrenzt zum Ad-Block: Routing sortiert in Views, Block versteckt global.
- **Auto-Detect Duties** — Tab-Switch beim Duty-Start via Condition-Flag.
- **UX Bundle** — Vertical-Tab-Bar als Layout-Option, Shift+Mousewheel zum Tab-Header-Scrollen ohne Aktivierung,
globaler Hotkey zum Schließen des aktiven Tabs.
- **Configure Tab Title** — konfigurierbares Tab-Title-Format (Name / Name + abgekürzter World / voller Name / Custom),
pro Tab überschreibbar.
- **Name Display Options** — analog zu FFXIV-Vanilla (voller Name, Vorname abgekürzt, Initialen), per-Channel-Override
möglich.
- **Item & Flag Linking** — Outgoing: Shift-Klick auf Item/Flag sendet ins fokussierte Plugin-Input. Incoming:
Item-Links und Map-Coords klickbar.
- **Color Currently Selected Input Channel** — Channel-Selector-Button im Input-Bar mit Channel-Farbe einfärben.
- **Plugin-Disclosure Pre-Send Filter** — konfigurierbare Wort-/Regex-Liste blockiert das Senden mit Pre-Send-Confirm.
Schutz vor versehentlicher Plugin-Nennung in öffentlichen Channels.
- **Chat Clear on Name Change** — bei Charakter-Namensänderung lokalen Verlauf migrieren oder löschen, Default Wipe für
maximale Privacy.
- **Hide Plugin Window on NG+ Screen** — Hide-Logik um zusätzliche Addon-Namen erweitern.
- **Kick from Novice Network** — Mentor-Nische, Context-Menü-Eintrag mit Confirmation.
- **Text-to-Speech für /tell** — eingehende Tells via TTS, optional pro Sender, mit Channel-Filter und Mute-In-Combat.
Geringe Priorität.
### Distribution und Branding
- Hand-gezeichnetes Hellion-Logo (aktuell Platzhalter aus dem Hellion-Online-Media-Brand-Repo)
- GitHub Action für automatischen `repo.json`-Sync nach Tag-Push
- Submission ans Dalamud-Main-Plugin-Repo (zusätzlich zum Custom-Repo)
--- ---
## Bug-Verifizierungen ## Mid-Term (v1.4.x+)
Aus dem Upstream-Issue-Tracker übernommen, in Hellion Chat 1.0.0 noch nicht reproduziert oder verifiziert. Werden bei - **Plugin Integrations Roadmap (Cycles 26)** — six plugin integrations planned; Honorific (Cycle 1) is live, followed
Gelegenheit gegen den aktuellen Stand getestet. by Context Menu, NotificationMaster, RP Status Block, ExtraChat and XIVIM in their own cycles. Spec and cycle order in
[Plugin Integrations Overview](../Hellion%20Chat%20Plugin-Integrationen.md).
- **Right-Click Whisper Error** in Field Ops / Special Instances (Eureka, Bozja, Occult Crescent, DRS) — Upstream - **Ad-Block / Spam Filter** — hybrid concept combining a lightweight built-in filter with optional `NoSoliciting` IPC
[#168](https://github.com/Infiziert90/ChatTwo/issues/168). Reply-Helper scheint `@World`-Suffix zu schlucken. integration. Addresses ad-spam in public channels and tells. Deferred from the v1.1.0 plan.
- **FPS Drops with Plugin active** — Upstream [#145](https://github.com/Infiziert90/ChatTwo/issues/145). 1020 % Drop - **Receive-Suppressed-Tells Toggle** — auto-tell tabs trigger even when a third-party plugin (e.g. XIVMessenger)
seit upstream v1.29.19.0. v1.0.0 hat mehrere Fixes auf den verdächtigen Pfaden, Repro-Test gegen aktuellen Stand globally suppresses /tell display. Same hook layer as ad-block, so they are bundled.
offen. - **Database Viewer Inline Search** — full-text search in the DB viewer via SQLite FTS5. Currently only date and channel
- **Add Blacklist from Plugin Window** — Upstream [#140](https://github.com/Infiziert90/ChatTwo/issues/140). Right-Click filters are available.
Add-to-Blacklist wirft "Cannot locate character with that name", via Vanilla-Chat funktioniert es. - **TempTell Persistence** — pin toggle on TempTell tabs so selected tells survive a relog. Tester request from Jingliu.
- **DB-Viewer Column Sort** — sortiert State-Column lexikografisch statt numerisch (10 vor 2). XIVIM - **FontManager Async Refactor** — move `LoadGameSymFontAsync` out of the blocking plugin constructor. Fix cold-start
[#82](https://github.com/NightmareXIV/XIVInstantMessenger/issues/82), Repro in Hellion Chat offen. hitching on first plugin load (low severity; plugin is functional).
- **Separate Opacity Active vs. Inactive** — second slider for inactive window opacity. Upstream declines this; we can
decide differently here.
- **Failed-Tell Notification** — visible message on /tell failure (offline, restricted instance, blacklisted,
world-mismatch) instead of silent failure.
- **Per-Tab Sound Notification** — sound toggle and optionally a custom .wav per tab, with mute-in-combat option.
--- ---
## Lizenz-Boundary ## Long-Term (v1.x+)
Hellion Chat ist EUPL-1.2-lizenziert. Konzept-Imports aus AGPL-3.0-Plugins (z.B. XIV Instant Messenger) sind ### Storage Backends (three-stage confirmation)
ausschließlich architektonische Inspiration, kein Code-Port. Code-Imports aus dem Upstream-Bestand sind seit v1.4.x
abgeschlossen, weil Chat 2 in einem grundlegenden Rework ist und selektive Patches nicht mehr sauber portierbar sind. - MySQL/MariaDB backend for multi-device setups
Stand und Begründung in [`UPSTREAM_SYNC.md`](UPSTREAM_SYNC.md). - PostgreSQL backend
- AES-256 encryption for sensitive channels with a local key
### Linux-Specific
- WireGuard network detection as an optional filter trigger
- libnotify integration for native Linux toasts
- XDG compliance (complex under Wine)
### UX and Tab Management
- **Regex Tab Routing** — route plugin output spam into dedicated tabs, auto-sort tells from specific people. Clearly
scoped against ad-block: routing sorts into views, blocking hides globally.
- **Auto-Detect Duties** — tab switch on duty start via condition flag.
- **UX Bundle** — vertical tab bar as a layout option, Shift+Mousewheel to scroll tab headers without activating them,
global hotkey to close the active tab.
- **Configure Tab Title** — configurable tab title format (name / name + abbreviated world / full name / custom),
overridable per tab.
- **Name Display Options** — analogous to FFXIV vanilla (full name, first name abbreviated, initials), per-channel
override possible.
- **Item & Flag Linking** — outgoing: Shift-click on an item/flag sends it to the focused plugin input. Incoming: item
links and map coordinates are clickable.
- **Color Currently Selected Input Channel** — tint the channel-selector button in the input bar with the current
channel colour.
- **Plugin-Disclosure Pre-Send Filter** — configurable word/regex list blocks sending with a pre-send confirmation.
Protects against accidentally mentioning plugins in public channels.
- **Chat Clear on Name Change** — on character name change, migrate or wipe local history; default is wipe for maximum
privacy.
- **Hide Plugin Window on NG+ Screen** — extend hide logic to cover additional addon names.
- **Kick from Novice Network** — mentor niche; context menu entry with confirmation.
- **Text-to-Speech for /tell** — incoming tells via TTS, optionally per sender, with channel filter and mute-in-combat.
Low priority.
### Distribution and Branding
- Hand-drawn Hellion logo (currently a placeholder from the Hellion Online Media brand repo)
- GitHub Action for automatic `repo.json` sync after tag push
- Submission to the Dalamud main plugin repository (in addition to the custom repo)
---
## Bug Verifications
Carried over from the upstream issue tracker; not yet reproduced or verified in Hellion Chat 1.0.0. Will be tested
against the current state when opportunity allows.
- **Right-Click Whisper Error** in Field Ops / Special Instances (Eureka, Bozja, Occult Crescent, DRS) — upstream
[#168](https://github.com/Infiziert90/ChatTwo/issues/168). Reply helper appears to swallow the `@World` suffix.
- **FPS Drops with Plugin Active** — upstream [#145](https://github.com/Infiziert90/ChatTwo/issues/145). 1020 % drop
since upstream v1.29.19.0. v1.0.0 includes several fixes on the suspected paths; repro test against the current state
is open.
- **Add Blacklist from Plugin Window** — upstream [#140](https://github.com/Infiziert90/ChatTwo/issues/140). Right-click
add-to-blacklist throws "Cannot locate character with that name"; works via vanilla chat.
- **DB Viewer Column Sort** — State column sorts lexicographically instead of numerically (10 before 2). XIVIM
[#82](https://github.com/NightmareXIV/XIVInstantMessenger/issues/82); repro in Hellion Chat open.
---
## Licence Boundary
Hellion Chat is licensed under EUPL-1.2. Concept imports from AGPL-3.0 plugins (e.g. XIV Instant Messenger) are
architectural inspiration only — no code was ported. Code imports from the upstream codebase are complete as of v1.4.x
because Chat 2 is undergoing a fundamental rework and selective patches are no longer cleanly portable. Status and
rationale in [`UPSTREAM_SYNC.md`](UPSTREAM_SYNC.md).