fde85e6d69
Settings UX polish release. Twelve organic settings tabs collapsed into eight themed ones, theme/font controls moved to Appearance, About and Changelog merged into Information. Configuration migrates from v9 to v10 as a wipe with a backup file written next to the live config; chat history and tabs survive.
288 lines
13 KiB
YAML
Executable File
288 lines
13 KiB
YAML
Executable File
name: Hellion Chat
|
||
author: JonKazama-Hellion
|
||
punchline: Chat 2 with privacy controls aligned to EU, US and JP rules
|
||
description: |-
|
||
Hellion Chat is built on top of Chat 2 with one removal and a stack
|
||
of privacy controls on top. Tabs, channel filters, RGB colours,
|
||
emotes, screenshot mode, IPC integration and the chat replacement
|
||
window itself work the same. The optional webinterface that Chat 2
|
||
ships is intentionally not part of this fork because it serves a
|
||
different use case from the smaller default footprint Hellion Chat
|
||
is built around.
|
||
|
||
On top of that, Hellion Chat adds privacy and data-handling controls
|
||
designed to align with the modern data protection rules that apply
|
||
across the EU, the United States and Japan. By default only your own
|
||
conversations are stored; messages from strangers, NPCs and system
|
||
spam stay out of the database. Retention windows are configurable per
|
||
channel, history can be wiped retroactively, and stored data can be
|
||
exported on demand.
|
||
|
||
Key additions on top of Chat 2:
|
||
|
||
- Channel whitelist with a Privacy-First default
|
||
- Per-channel retention with a daily background sweep
|
||
- Retroactive cleanup with a Ctrl+Shift confirm
|
||
- Export to Markdown, JSON or CSV
|
||
- First-run wizard with three preset profiles (Privacy-First, Casual,
|
||
Full History)
|
||
- Bilingual UI (English and German) with live language switching
|
||
- Independent plugin state — own config file and database directory,
|
||
so Hellion Chat does not share state with the upstream plugin
|
||
|
||
Based on Chat 2 by Infi and Anna, licensed under EUPL-1.2.
|
||
repo_url: https://github.com/JonKazama-Hellion/HellionChat
|
||
accepts_feedback: true
|
||
tags:
|
||
- Social
|
||
- UI
|
||
- Chat
|
||
- Replacement
|
||
- Privacy
|
||
changelog: |-
|
||
**Hellion Chat 0.5.0 — Settings UX polish**
|
||
|
||
The settings window has been pulled apart and rebuilt around eight
|
||
themed tabs instead of the twelve organic ones it grew into.
|
||
Settings now sit where they belong and the wall-of-text descriptions
|
||
have been replaced with hover help markers across every section.
|
||
|
||
What changed in this release:
|
||
|
||
- Twelve tabs collapsed into eight: General, Appearance, Window,
|
||
Chat, Tabs, Privacy, Database and Information
|
||
- Theme and font controls moved out of the Privacy tab into
|
||
Appearance where they belong
|
||
- Auto-Tell-Tabs settings, message preview and emote controls now
|
||
live under one Chat tab with collapsible sections
|
||
- About and Changelog merged into a single Information tab
|
||
- Disabled settings keep their tooltip help marker visible so you
|
||
can still read why an option is greyed out
|
||
- Section headings start collapsed by default, the same pattern
|
||
used for the Auto-Tell-Tabs preload section in 0.4.0
|
||
|
||
Configuration version bumps from 9 to 10 as a wipe migration. The
|
||
old config file is copied to HellionChat.json.pre-v10-backup before
|
||
the new defaults are written, so you can restore your previous
|
||
setup by hand if anything looks off. A one-shot notification on
|
||
first start explains the reset.
|
||
|
||
No changes to message storage, retention sweep, the privacy filter
|
||
or the export pipeline. Tabs and chat history are untouched by the
|
||
migration.
|
||
|
||
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
|
||
|
||
**Hellion Chat 0.4.0 — Auto-Tell-Tabs**
|
||
|
||
Auto-Tell-Tabs lets you turn each /tell into a session-only tab
|
||
dedicated to that conversation partner. The original use case is
|
||
the FFXIV club greeter who has to track 5–15 parallel "hi, welcome"
|
||
exchanges; everyone else can disable the feature in one click and
|
||
go back to a single Tell Exclusive tab.
|
||
|
||
What lands in this release:
|
||
|
||
- Auto-spawn temp tab "Name@World" on /tell (incoming and outgoing)
|
||
- Tab limit (default 15, range 1–50) with LRU drop that prefers
|
||
greeted tabs first, then sorts by last activity
|
||
- History preload from the local message store (default 20 tells,
|
||
range 0–100) with a "— Earlier conversations —" separator above
|
||
the live tell that triggered the spawn
|
||
- Optional "mark as greeted" toggle button (off by default,
|
||
greeter-specific) that dims the tab name and lets you flip the
|
||
status
|
||
- Section header "Active Tells (n)" or compact-mode separator in
|
||
the sidebar between persistent tabs and the temp tabs
|
||
- Settings UI under Chat (toggle / limit / compact / greeted-toggle)
|
||
and Privacy (history preload count), with hover-tooltip help
|
||
markers replacing the previous wall-of-text descriptions for the
|
||
new sections
|
||
- Save and load filters strip temp tabs from the on-disk config so
|
||
a crash or a sidebar-mode toggle never persists or wipes them
|
||
|
||
Compatibility note: if XIV Messanger or another plugin is
|
||
suppressing direct messages, disable its "Suppress DMs" option so
|
||
Hellion Chat can receive tells and open the auto tabs.
|
||
|
||
Configuration version bumps from 8 to 9. Existing users get a one-
|
||
shot notification on the first start, defaults are seeded by
|
||
property initializers, persistent tabs are untouched.
|
||
|
||
The vertical sidebar tab view becomes the default for fresh
|
||
installs; existing users keep their saved preference.
|
||
|
||
Inspired by the per-sender tab pattern in XIV InstantMessenger
|
||
(Limiana, AGPL-3.0). No code was ported across the licence
|
||
boundary; only the architectural concept influenced this design.
|
||
|
||
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
|
||
|
||
**Hellion Chat 0.3.1 — Upstream emote regression fix**
|
||
|
||
Cherry-picks Infi's upstream commit ff899ff "Fix a regression
|
||
from API 15 updates" which changes the BetterTTV emote DTOs
|
||
(Emote and Top100) from public fields to public properties.
|
||
System.Text.Json under the API 15 toolchain only honours the
|
||
[JsonPropertyName] attribute on properties, so the previous
|
||
field-based version deserialised every fetched emote into empty
|
||
default values. Result: BetterTTV emotes were silently broken
|
||
on fresh installs. The fix is six lines and applies cleanly on
|
||
top of our defensive null-check from earlier; the EmoteCache
|
||
path-traversal hardening from 0.3.0 stays as it is.
|
||
|
||
Authorship of the fix is preserved with git cherry-pick -x, so
|
||
Infi shows up as the author on the commit. Thanks to him for
|
||
catching it in the upstream codebase.
|
||
|
||
**Hellion Chat 0.3.0 — Audit hardening, brand sweep and rebrand of slash commands**
|
||
|
||
This release closes the remaining audit follow-ups from the
|
||
0.2.0 cleanup and finishes turning Hellion Chat into a properly
|
||
branded fork rather than a Chat 2 with a different name.
|
||
|
||
Slash commands have been renamed across the board so they no
|
||
longer collide with the upstream plugin and tell you which
|
||
plugin owns them at a glance:
|
||
|
||
- /chat2 becomes /hellion
|
||
- /chat2Viewer becomes /hellionView
|
||
- /clearlog2 becomes /clearhellion
|
||
- /chat2Debugger becomes /hellionDebugger (internal)
|
||
- /chat2SeString becomes /hellionSeString (internal)
|
||
|
||
This is a breaking change for anyone with macros bound to the
|
||
old command names. The upstream Chat 2 commands keep working
|
||
if you also have that plugin installed.
|
||
|
||
Privacy and storage hardening based on the post-0.2.0 audit:
|
||
|
||
- Privacy filter master switch now states explicitly that the
|
||
filter only governs storage, not the live chat log
|
||
- Emote cache refuses to write outside its own directory if a
|
||
third-party API ever returns a path that escapes
|
||
- Retention sweep is serialised so the 24h auto-sweep and the
|
||
manual button cannot launch in parallel and race for the
|
||
SQLite connection
|
||
- DbViewer paging uses an int constant and the matching SQL
|
||
parameter name (the upstream code passed a float and a name
|
||
without the parameter prefix; both worked in practice but
|
||
were inconsistent)
|
||
|
||
Visual identity now matches the Hellion Online Media website:
|
||
|
||
- Theme palette switched to Arctic Cyan plus Ember Orange,
|
||
matching the website's BRANDING.md tokens
|
||
- Active tabs and window title bars use a brand-color-dark teal
|
||
variation as identity colour, replacing the previous slate
|
||
violet that did not appear in the brand
|
||
- Resize grips and scrollbar grabs picked up Ember Orange
|
||
instead of industrial amber on hover and active states
|
||
|
||
About tab rewritten and properly localised:
|
||
|
||
- New "Why this fork exists" block sets out the mission in
|
||
neutral terms, framing Chat 2's full-history default as the
|
||
right one for most users while explaining the narrower
|
||
default footprint this fork chose
|
||
- All Hellion-specific About copy now lives in HellionStrings
|
||
in EN and DE, so German users see the Hellion sections in
|
||
German rather than the upstream English fallback
|
||
- Webinterface absence is described as a focus mismatch
|
||
(different use case, substantial rebuild) rather than as
|
||
a security issue with the upstream code
|
||
- Translator list at the bottom of the About tab is reachable
|
||
again on smaller settings windows
|
||
|
||
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
|
||
|
||
**Hellion Chat 0.2.0 — Webinterface removed**
|
||
|
||
The upstream webinterface has been removed in its entirety. It
|
||
serves a different use case from the smaller default footprint
|
||
this fork is built around, namely remote access to chat from a
|
||
second device. Aligning it with the data minimisation defaults
|
||
Hellion Chat ships with would have meant a substantial rebuild.
|
||
Removing it was the cleaner path for this particular fork.
|
||
|
||
What changed in this release:
|
||
|
||
- Settings tab "Webinterface" is gone, the corresponding
|
||
Configuration fields (WebinterfaceEnabled / AutoStart / Password /
|
||
Port / AuthStore / MaxLinesToSend) are dropped and stale entries
|
||
fall out of the JSON on the next save automatically
|
||
- The whole ChatTwo/Http tree, the bundled Svelte frontend in
|
||
websiteBuild.zip and the WebinterfaceUtil helper are deleted
|
||
- Watson.Lite (the HTTP server) and Newtonsoft.Json (only used by
|
||
the webinterface JSON wire format) are removed from the
|
||
package references
|
||
- DbViewer's "Chat2 JSON Export" button is dropped because it
|
||
serialised the database into the webinterface message protocol;
|
||
the Privacy tab's MessageExporter (Markdown, JSON, CSV with
|
||
channel and date filters) covers the same ground without the
|
||
proprietary shape
|
||
- About tab notes the absence so users coming from Chat 2 do not
|
||
look for it
|
||
- Configuration version bumps from 7 to 8 with a one-shot
|
||
notification (EN + DE)
|
||
|
||
No changes to the privacy filter, retention sweep, first-run wizard
|
||
or export pipeline. Existing chat history is preserved.
|
||
|
||
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
|
||
|
||
**Hellion Chat 0.1.2 — About tab rebrand, DBViewer polish**
|
||
|
||
- About tab now shows Hellion-specific maintainer, license, EU/US/JP
|
||
disclaimer and SQUARE ENIX disclaimer instead of the inherited
|
||
Chat 2 contact info; original ChatTwo translator credits stay
|
||
visible under a clearly labelled upstream tree node
|
||
- Localization clarified: Hellion-specific German strings are
|
||
maintained by the fork maintainer, the Crowdin contributor list
|
||
only covers the inherited upstream strings
|
||
- Cherry-picked DBViewer UI improvements from upstream Chat 2
|
||
(auto-scroll-reset on page change, tooltips on date reset,
|
||
folder export, page arrows, localized export-running messages)
|
||
- README rewritten in the Hellion project style with a tech-stack
|
||
table, architecture tree, database column list, install guide,
|
||
upstream-sync workflow notes and project-status checklist
|
||
|
||
**Hellion Chat 0.1.1 — Packaging and migration fixes**
|
||
|
||
- Plugin icon now ships inside the bundle, so the Hellion logo
|
||
renders locally in the Dalamud plugin list once installed (the
|
||
previous release relied only on the remote IconUrl)
|
||
- Plugin icon downsampled from 1024×1024 to 256×256 to match the
|
||
rendered size; loads faster and caches better
|
||
- Migration from upstream Chat 2 is more robust: each file move is
|
||
wrapped individually, a locked SQLite database no longer aborts
|
||
the rest of the migration, and a warning notification fires when
|
||
any file is held open (with a hint to disable Chat 2 and restart
|
||
the game)
|
||
- README ships a step-by-step migration guide (fresh install versus
|
||
coming from Chat 2) and a troubleshooting section with manual
|
||
recovery commands for Linux and Windows
|
||
|
||
**Hellion Chat 0.1.0 — Initial fork release**
|
||
|
||
Privacy
|
||
- Channel whitelist filter in MessageStore.UpsertMessage with a
|
||
Privacy-First default (own conversations only)
|
||
- Per-channel retention with a 24-hour idempotent background sweep
|
||
- Retroactive cleanup with a Ctrl+Shift confirm and VACUUM
|
||
- Export to Markdown / JSON / CSV via Dalamud's file dialog
|
||
|
||
Onboarding
|
||
- First-run wizard with three profiles: Privacy-First / Casual /
|
||
Full History
|
||
- Configuration migration that seeds defaults on update
|
||
- One-shot migration from upstream Chat 2's pluginConfigs layout
|
||
- Migrate3 idempotency recovery for half-migrated databases
|
||
|
||
Look & feel
|
||
- Localized UI (English and German) with live language switching
|
||
- Industrial HUD theme with cyan-teal action accents, slate-violet
|
||
tabs, amber active highlights and a window-opacity slider
|
||
|
||
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
|