Files
HellionChat/docs/ROADMAP.md
T
JonKazama-Hellion 3b24b2adc4
Security / scan (push) Successful in 13s
docs: translate CHANGELOG and ROADMAP to English
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.
2026-05-11 20:32:11 +02:00

10 KiB
Raw Blame History

Hellion Chat — Roadmap

Planned work after the v1.0.0 standalone cut. This list is intentionally high-level: concrete specs, size estimates and repro steps live in the internal backlog. External tracking runs via Gitea Issues with the roadmap label once an item is scheduled for a cycle.

Order reflects priority, not a guarantee. Items may shift or be dropped entirely if they turn out to be a poor fit for the plugin's privacy-first scope during brainstorming.


Next Cycle (v1.4.4)

Window-Lazy-Open + Render-Init-Cost Optimisation — take the IAsyncDalamudPlugin foundation laid in v1.4.3 and turn it into wins users can actually feel. Window construction deferred until first open, render-path init cost reduced in 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)

Fourth and largest sub-patch of the v1.4.x Polish Sweep series. Plugin migrated to Dalamud's IAsyncDalamudPlugin API: the constructor handles only bootstrap essentials (config load, language init, conflict detection); migrations, service allocations, window construction and hook subscription move to LoadAsync. Schema gate replaces the v9 → v16 migration chain; configs on schema v16+ load directly, older configs trigger an "install v1.4.2 first" error. AutoTranslate.PreloadCache moved off the load path. FontManager.BuildFonts runs sync at the start of LoadAsync; Dalamud rebuilds the font atlas on its own pipeline. Custom-repo URL cut over to gitea.hellion-forge.cloud; the GitHub 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 async migration is a foundation for v1.4.4 lazy-init optimisations rather than an immediate user-perceived win.

v1.4.2 — ChatLog Frame-Hot-Path (released 2026-05-08)

Third sub-patch of the v1.4.x Polish Sweep series. Per-frame allocations eliminated from the ChatLogWindow render path and the settings status bar. Card-mode border loop in DrawMessages hoists five invariants into a pre-loop hoist; AutoTellTabTint gets a per-tab cache via TabTintCache (separate validation keys per cache, no cross-invalidation); status bar moves the cache-gate check before the aggregation and replaces LINQ Sum+Count with a single-pass foreach.

v1.4.1 — Theme Engine Performance (released 2026-05-08)

Second sub-patch of the v1.4.x Polish Sweep series. ABGR cache pre-computed on theme records; HellionStyle.PushGlobal reads from the cache instead of converting per slot per frame. ~13 % render-time recovery in smoke tests (plan estimate of 26 % was conservative; real result ~1015 %). Custom-theme hot-reload survives transient file locks via last-known-good snapshot. Plus: Synthwave Sunset as the tenth built-in, author credits consolidated under Hellion Forge, Mint Grove + Forge Merchantman credited to Carla Beleandis as a community thanks.

v1.4.0 — Critical Lifecycle Fixes (released 2026-05-07)

First sub-patch of the v1.4.x Polish Sweep series. Seven P0 findings from audit passes 3 and 4 resolved: async-void loads, missing IsBackground flags, GC.Collect in Dispose, deferred-save race and pre-v13 backup lookup for WindowOpacity. No schema bumps, no user-facing behaviour changes other than reload and shutdown running noticeably cleaner.

v1.3.0 — Plugin Integrations: Honorific (released 2026-05-07)

First cycle of the plugin integrations roadmap. Honorific custom titles displayed in the chat header with auto-detect and silent fallback. New Integrations settings tab. Pattern-setter for the five following cycles (Context Menu, NotificationMaster, RP Status Block, ExtraChat, XIVIM).

Spec: Plugin Integrations Overview

v1.2.3 — Theme Expansion (released 2026-05-06)

Four new built-in themes: Night Blue, Indigo Violet, Forge Merchantman, Hellion Spectrum (Deuteran/Protan-safe). No engine changes. See docs/CHANGELOG.md.

(v1.2.2 was burned because the repo.json manifest was not bumped in sync on the first push — re-released as v1.2.3 with full manifest synchronisation.)

v1.2.1 — Settings Cleanup (released 2026-05-06)

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)

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)

Theme engine with five built-in themes, settings card grid, custom themes via JSON, theme authoring docs. Plugin icon updated to Hellion Forge hammer. See docs/CHANGELOG.md for details.

Items from the original v1.1.0 plan (ad-block / spam filter, receive-suppressed-tells toggle) were deferred in favour of the theme engine — both items live on in the mid-term block.


Mid-Term (v1.4.x+)

  • Plugin Integrations Roadmap (Cycles 26) — six plugin integrations planned; Honorific (Cycle 1) is live, followed by Context Menu, NotificationMaster, RP Status Block, ExtraChat and XIVIM in their own cycles. Spec and cycle order in Plugin Integrations Overview.
  • Ad-Block / Spam Filter — hybrid concept combining a lightweight built-in filter with optional NoSoliciting IPC integration. Addresses ad-spam in public channels and tells. Deferred from the v1.1.0 plan.
  • Receive-Suppressed-Tells Toggle — auto-tell tabs trigger even when a third-party plugin (e.g. XIVMessenger) globally suppresses /tell display. Same hook layer as ad-block, so they are bundled.
  • Database Viewer Inline Search — full-text search in the DB viewer via SQLite FTS5. Currently only date and channel filters are available.
  • TempTell Persistence — pin toggle on TempTell tabs so selected tells survive a relog. Tester request from Jingliu.
  • FontManager Async Refactor — move LoadGameSymFontAsync out of the blocking plugin constructor. Fix cold-start 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.

Long-Term (v1.x+)

Storage Backends (three-stage confirmation)

  • MySQL/MariaDB backend for multi-device setups
  • 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. Reply helper appears to swallow the @World suffix.
  • FPS Drops with Plugin Active — upstream #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. 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; 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.