Files
HellionChat/HellionChat/HellionChat.yaml
T
JonKazama-Hellion c5fe69f0d3 feat(themes): swap Moonlit Bloom for Crystal Nocturne, sort built-ins by colour family
Crystal Nocturne (royal sapphire + electric magenta on obsidian, by
CRYSTALLITE) replaces Moonlit Bloom in the built-in roster. The same
chat-channel tinting convention applies: sapphire-blue identity on
party/team channels, accent-magenta on tells, and an alternating
mint/yellow/peach palette across the eight linkshell slots so each
LS stays individually distinguishable on the dark obsidian background.

Users who had Moonlit Bloom selected fall back to the default Hellion
Arctic on the first plugin load. A custom JSON copy of Moonlit Bloom
dropped into pluginConfigs/HellionChat/themes/ keeps working as a
user theme.

Plus a cosmetic re-sort of the registry: insertion order now drives a
deliberate Theme-Picker grid layout (3 columns) — blue family in row 1,
purple to magenta in row 2, green/warm/classic in row 3, Synthwave
Sunset alone in row 4 as a retro bonus.
2026-05-12 21:28:16 +02:00

136 lines
6.3 KiB
YAML
Executable File

name: Hellion Chat
author: Jon Kazama (Hellion Forge)
punchline: A Hellion Forge plugin — privacy-focused chat replacement for FFXIV, built for EU, US and JP data rules.
description: |-
Chat replacement for FINAL FANTASY XIV with privacy controls built around
EU, US and JP data-protection rules.
By default only your own conversations are stored. Public chat, NPC
dialogue and system messages stay out of the database unless you opt in.
Retention windows are configurable per channel, history can be wiped
retroactively, and everything can be exported on demand.
Features:
- Channel whitelist with a Privacy-First default
- Per-channel retention with a daily background sweep
- Retroactive cleanup (Ctrl+Shift confirm)
- Export to Markdown, JSON or CSV
- First-run wizard with three preset profiles
- Bilingual UI (EN/DE) with live language switching
- Own config and database — no shared state with other plugins
Based on Chat 2 by Infi and Anna (EUPL-1.2).
Support: https://discord.gg/X9V7Kcv5gR
repo_url: https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat
accepts_feedback: true
icon_url: https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/raw/branch/main/HellionChat/images/icon.png
image_urls:
- https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/raw/branch/main/HellionChat/images/chatWindow.png
- https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/raw/branch/main/HellionChat/images/settingsOverview.png
- https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/raw/branch/main/HellionChat/images/themesPicker.png
tags:
- Social
- UI
- Chat
- Replacement
- Privacy
changelog: |-
**v1.4.6 — Code Hygiene and Refactor (2026-05-12)**
Maintenance patch. No user-visible behaviour changes; tightens the
development feedback loop, fixes two upstream-inherited bugs, and
prepares the code for the v1.4.7 backlog cleanup.
- preflight.sh gains a csharpier reflow check and a markdownlint
pass so style drift and markdown violations are caught at the
pre-push gate
- FontManager fallback catches the full set of atlas-toolkit
throws (IO, InvalidOperation, ArgumentException) — a corrupt
font config no longer takes down the whole atlas build
- BrandingLinks and IntegrationLinks URLs validated on plugin
load — a typo in a future URL rotation now throws at startup
- Cherry-picked from ChatTwo upstream f35b7d3: Chat.SetChannel
no longer leaks the native Utf8String when the linkshell check
rejects the channel
- Cherry-picked from ChatTwo upstream f35b7d3: Tab.Clone now
deep-clones UsedChannel and TellTarget — PopOut and Temp tabs
no longer mutate each other's channel state
- Active-tab underline scales with DPI and rounds to physical
pixels for crisp rendering above 100% scaling
- IconButton width parameter no longer subtracts HUD-scaled
padding from a raw int (measured width passes through verbatim)
- Internal: HellionStyle ChildBgAlpha extracted to a testable
helper; Plugin.SaveConfig clones only the temp tabs;
SettingsOverview caches the draw-list per frame;
Dalamud.Utility.Util surface routed through an IPlatformUtil
indirection (MessageStore IsWine probe is now testable in
isolation)
- Built-in themes: Crystal Nocturne (sapphire and electric
magenta over obsidian, by CRYSTALLITE) replaces Moonlit Bloom.
Users with Moonlit Bloom selected fall back to Hellion Arctic
on first load
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
---
**v1.4.5 — UX and Robustness (2026-05-12)**
Sixth sub-patch of the v1.4.x polish-sweep series. Chat-log draw
failures surface as a notification, the first-run wizard has an
explicit "Later" option, the input history clears on plugin reload,
and the status bar version slot stops clipping in narrow windows.
- Chat window draw errors now show a one-shot notification instead
of failing silently — stack trace stays in /xllog
- First-run wizard: explicit "Later — keep defaults" button.
Closing the X no longer silently accepts the defaults; the wizard
reopens on the next plugin load if nothing was picked
- InputHistoryService clears on plugin dispose so the previous
session's typed commands don't bleed into the next load
- Status bar hides the version slot when the chat window is too
narrow to fit all five slots without overlap
- Internal: explicit session-only Auto-Tell-Tab invariant in
Plugin.cs plus a pinning test in the Build-Suite
- Internal: FontManager falls back to the system font if the
embedded Hellion font resource is missing — logs a Warning
---
**v1.4.4 — Threading and IPC safety polish (2026-05-12)**
Fifth sub-patch of the v1.4.x polish-sweep series. Threading
assumptions are documented per-method, a hot-path lock falls
away, and the privacy filter speaks up when an unknown ChatType
shows up.
- AutoTellTabs hot-path getter uses an Interlocked counter
instead of taking the lock on every read
- Honorific integration: per-method threading banners, plus
Warning-level log on unsubscribe failure
- AutoTranslate warmup thread marked IsBackground so plugin
unload doesn't wait for it
- PrivacyFilter logs once per unknown ChatType so a future
patch's added channel doesn't drop off the radar
- New installs persist unknown channels by default; existing
configs keep their explicit choice
---
**v1.4.3 — Faster plugin load + new repo (2026-05-08)**
Heavy startup work (migrations, hooks, windows) now runs async so
Dalamud's UI stays responsive during load. Load time is comparable
to v1.4.2 — this is the foundation for v1.4.4 optimisations.
- Two-phase async load via IAsyncDalamudPlugin
- Schema-gate replaces the v9→v16 migration chain; old configs
require a v1.4.2 install first
- AutoTranslate cache loads on first use instead of every startup
- Custom font (Hellion-Exo2) appears with a brief pop after load
- Repo moved to gitea.hellion-forge.cloud — update your custom-repo URL
---
Full history: https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases