230 lines
10 KiB
Markdown
230 lines
10 KiB
Markdown
# Hellion Chat — Roadmap
|
||
|
||
Geplante Arbeit nach dem v1.0.0 Standalone-Cut. Diese Liste ist absichtlich
|
||
grob: konkrete Specs, Größenschätzungen und Repro-Steps liegen im
|
||
internen Backlog. Tracking nach außen läuft über
|
||
[Gitea Issues](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/issues)
|
||
mit dem `roadmap`-Label, sobald ein Item für einen Cycle eingeplant ist.
|
||
|
||
Reihenfolge ist Priorität, nicht Garantie. Items können sich verschieben
|
||
oder ganz wegfallen wenn sie sich beim Brainstorm als nicht passend zur
|
||
Privacy-First-Schnittmenge des Plugins erweisen.
|
||
|
||
---
|
||
|
||
## Nächster Cycle (v1.4.4)
|
||
|
||
**Window-Lazy-Open + Render-Init-Cost-Optimisation** — die in v1.4.3
|
||
gelegte IAsyncDalamudPlugin-Foundation jetzt für die echten User-
|
||
spürbaren Wins nutzen. Window-Konstruktion erst beim ersten Open,
|
||
Render-Path-Init-Kosten in den ersten Frames runter. Konkrete
|
||
Kandidaten und Größenschätzungen werden im v1.4.4-Brainstorm
|
||
konsolidiert.
|
||
|
||
## 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 Konstruktor
|
||
übernimmt nur noch Bootstrap-Essentials (Config-Load, Language-Init,
|
||
Conflict-Detection), Migrationen, Service-Allokationen, Window-
|
||
Konstruktion und Hook-Subscription wandern in LoadAsync. Schema-
|
||
Gate ersetzt die v9 → v16 Migrations-Kette; Configs auf Schema
|
||
v16+ laden direkt, ältere Configs triggern eine "install v1.4.2
|
||
first"-Fehlermeldung. AutoTranslate.PreloadCache vom Load-Pfad
|
||
runter. FontManager.BuildFonts läuft sync am Start von LoadAsync,
|
||
Dalamud baut den Font-Atlas auf seiner eigenen Pipeline.
|
||
Custom-Repo-URL auf `gitea.hellion-forge.cloud` cut-over, das
|
||
GitHub-Repo bleibt als eingefrorener v1.4.2-Snapshot stehen.
|
||
Plugin-Load-Zeit liegt bei ~3.7 s Median (5 Reloads), vergleichbar
|
||
mit v1.4.2: Async-Migration ist Foundation für v1.4.4 Lazy-Init-
|
||
Optimierungen, kein direkter User-spürbarer Win.
|
||
|
||
## v1.4.2 — ChatLog Frame-Hot-Path (released <Datum>)
|
||
|
||
Dritter Sub-Patch der v1.4.x Polish-Sweep-Serie. Per-Frame-
|
||
Allokationen aus dem ChatLogWindow-Render-Pfad und der
|
||
Settings-StatusBar eliminiert. Card-Mode-Border-Loop in
|
||
DrawMessages hebt fünf Invarianten in einen Pre-Loop-Hoist,
|
||
AutoTellTabTint bekommt einen Per-Tab-Cache via TabTintCache
|
||
(separate Validation-Keys pro Cache, kein Cross-Invalidation),
|
||
StatusBar zieht den Cache-Gate-Check vor die Aggregations
|
||
und ersetzt LINQ Sum+Count durch eine Single-Pass-Foreach.
|
||
|
||
## v1.4.1 — Theme Engine Performance (released <Datum>)
|
||
|
||
Zweiter Sub-Patch der v1.4.x Polish-Sweep-Serie. ABGR-Cache
|
||
auf den Theme-Records pre-computed, HellionStyle.PushGlobal
|
||
liest aus dem Cache statt pro Slot pro Frame zu konvertieren.
|
||
**~13 % Render-Time-Recovery** im Smoke-Test (Plan-Erwartung
|
||
2-6 % war konservativ, real ~10-15 %). Custom-Theme-Hot-Reload
|
||
überlebt transient File-Locks via Last-Known-Good-Snapshot.
|
||
Plus: Synthwave Sunset als zehnter Built-In, Author-Credits
|
||
auf Hellion Forge konsolidiert, Mint Grove + Forge Merchantman
|
||
auf Carla Beleandis als Community-Thanks.
|
||
|
||
## 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:
|
||
async-void-Loads, fehlende IsBackground-Flags, GC.Collect
|
||
in Dispose, DeferredSave-Race und Pre-v13-Backup-Lookup für
|
||
WindowOpacity. Keine Schema-Bumps, keine Funktions-
|
||
Änderungen für den User außer dass Reload und Shutdown
|
||
spürbar sauberer laufen.
|
||
|
||
## 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 und
|
||
silent Fallback. Neuer Integrations-Settings-Tab. Pattern-
|
||
Etablierer für die fünf folgenden Cycles (Context-Menu,
|
||
NotificationMaster, RP-Status-Block, ExtraChat, XIVIM).
|
||
|
||
Spec: [Plugin-Integrationen-Übersicht](../Hellion%20Chat%20Plugin-Integrationen.md)
|
||
|
||
## 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 Engine-Änderungen. Siehe `docs/CHANGELOG.md`.
|
||
|
||
(v1.2.2 wurde verbrannt weil das `repo.json`-Manifest beim
|
||
ersten Push nicht synchron mitgebumpt wurde — Re-Release als
|
||
v1.2.3 mit kompletter Manifest-Synchronisation.)
|
||
|
||
## 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.
|
||
|
||
## 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.
|
||
|
||
## 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 auf Hellion Forge.
|
||
Siehe `docs/CHANGELOG.md` für Details.
|
||
|
||
Aus dem ursprünglichen v1.1.0-Plan (Ad-Block / Spam-Filter, Receive-
|
||
Suppressed-Tells-Toggle) wurden zugunsten der Theme-Engine zurück
|
||
gestellt — beide Items leben weiter im Mittelfrist-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
|
||
|
||
Aus dem Upstream-Issue-Tracker übernommen, in Hellion Chat 1.0.0 noch
|
||
nicht reproduziert oder verifiziert. Werden bei Gelegenheit gegen den
|
||
aktuellen Stand getestet.
|
||
|
||
- **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
|
||
scheint `@World`-Suffix zu schlucken.
|
||
- **FPS Drops with Plugin active** — Upstream
|
||
[#145](https://github.com/Infiziert90/ChatTwo/issues/145). 10–20 % Drop
|
||
seit upstream v1.29.19.0. v1.0.0 hat mehrere Fixes auf den verdächtigen
|
||
Pfaden, Repro-Test gegen aktuellen Stand offen.
|
||
- **Add Blacklist from Plugin Window** — Upstream
|
||
[#140](https://github.com/Infiziert90/ChatTwo/issues/140). Right-Click
|
||
Add-to-Blacklist wirft "Cannot locate character with that name", via
|
||
Vanilla-Chat funktioniert es.
|
||
- **DB-Viewer Column Sort** — sortiert State-Column lexikografisch statt
|
||
numerisch (10 vor 2). XIVIM
|
||
[#82](https://github.com/NightmareXIV/XIVInstantMessenger/issues/82),
|
||
Repro in Hellion Chat offen.
|
||
|
||
---
|
||
|
||
## Lizenz-Boundary
|
||
|
||
Hellion Chat ist EUPL-1.2-lizenziert. Konzept-Imports aus AGPL-3.0-Plugins
|
||
(z.B. XIV Instant Messenger) sind 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.
|
||
Stand und Begründung in [`UPSTREAM_SYNC.md`](UPSTREAM_SYNC.md).
|