Chat 2 has entered a major rework that Infi confirmed makes selective patches no longer portable. The cherry-pick pipeline as a routine workflow stops with the v1.4.x cycle. Documentation reflects the new state across all touchpoints. UPSTREAM_SYNC.md rewritten: replaces the "How I Cherry-Pick" / "Reviewing What Is New Upstream" / "Conflict Handling" sections with "Why Cherry-Picking Stopped", "What Closing the Pipeline Means in Practice", "What Does Not Change", "What Could Re-Open Later". Existing cherry-pick trails in the git history stay intact, EUPL-1.2 anchor lines and NOTICE.md remain canonical. README.md, CONTRIBUTING.md, ROADMAP.md, THIRD_PARTY_NOTICES.md and the PR template updated to match: cherry-pick references reframed as historical or pointed at UPSTREAM_SYNC.md for the current state. NOTICE.md keeps the BetterTTV cherry-pick example as a concrete past case but adds a paragraph that the pipeline is closed and clarifies the attribution standard is preserved unchanged. PULL_REQUEST_TEMPLATE.md drops the "Upstream cherry-pick from Chat 2" checkbox and the cherry-pick-path compatibility prompt. The upstream git remote was already removed locally on 2026-05-08 (separate change, not in this commit). No source-file edits, no manifest version bump, no changelog entry — this is documentation-only and ships with the next release.
9.4 KiB
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
GitHub 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.3)
Plugin-Load Async-Init — IAsyncDalamudPlugin-Migration und FontManager-async, Plugin-Konstruktor von 3.16 Sek auf unter 500 ms perceived load time. Größter und riskantester Patch der Serie, kommt nach drei stabilen Vorläufer-Patches.
v1.4.2 — ChatLog Frame-Hot-Path (released )
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 )
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
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.
- 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 —
LoadGameSymFontAsyncaus 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. Reply-Helper
scheint
@World-Suffix zu schlucken. - FPS Drops with Plugin active — Upstream #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. 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, 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.