Polish: README, AI disclosure, scoped Hellion ImGui style

Replace the inherited upstream README with a Hellion-specific one
that lists the privacy/retention/cleanup/export features, links to
upstream and the relevant unanswered filtering issues, documents
the EUPL-1.2 license relationship, and acknowledges Infi & Anna for
the Chat 2 engine that everything builds on.

Add AI_DISCLOSURE.md with the goatcorp Pair classification, an
explicit list of what AI is and is not used for in this fork
(translations, visual assets and license-sensitive boundaries are
handled by the maintainer), and the tooling list. Drops in before
v0.1 so it's already in place when the repo goes public.

HellionStyle.Push() returns a disposable bundle of ImGui color
pushes (cyan-teal accents on a deep-slate frame with steel
borders) and pops them in reverse on Dispose. Privacy tab and the
first-run wizard wrap their Draw with `using var _style =
HellionStyle.Push()` so only Hellion-owned surfaces get the
HUD-flavored palette while upstream Chat 2 tabs render in their
original style — important so cherry-picks from upstream don't
fight with our color overrides.
This commit is contained in:
2026-05-01 21:00:07 +02:00
parent 68a6910c53
commit c285dcb0a0
5 changed files with 239 additions and 25 deletions
+82 -25
View File
@@ -1,34 +1,91 @@
# Chat 2
#### Electric Boogaloo - ♪ A whole new chat, a new fantastic chat window ♪
# Hellion Chat
Chat 2 is a complete rewrite of the in-game chat window as a plugin.
It supports:
A GDPR-compliant, Linux-aware fork of [Chat 2](https://github.com/Infiziert90/ChatTwo)
for FINAL FANTASY XIV / Dalamud.
- Unlimited tabs
- Tabs that always send to a certain channel
- More flexible filtering
- RGB channel colouring
- Completely variable font size
- Sidebar tabs
- Unread counts
- Emotes
- Screenshot mode (obfuscate names)
Same chat replacement you know from upstream, with extra controls for what
actually gets stored:
---
- **Channel whitelist** for database persistence (GDPR Art. 25 — privacy by
default). Out-of-the-box only your own conversations are kept: Tells, Party,
Free Company, Linkshells, Cross-World Linkshells, Alliance, ExtraChat. Public
chat from strangers (Say/Shout/Yell), Novice Network, NPC dialogue, system
spam and battle messages stay outside the database unless you opt them in.
- **Per-channel retention** with a 24-hour idempotent background sweep. Tells
default to 365 days, own-conversation channels to 90, the global default to
30. Off until you switch it on — the plugin never deletes history without
your explicit consent.
- **Retroactive cleanup** with a Ctrl+Shift confirm. Apply the current
whitelist to an existing 800-MB+ database, watch it shrink to MBs, all on a
background thread.
- **Export** to Markdown, JSON or CSV (GDPR Art. 15 right of access). Filter
by channel, date range or sender substring; written via Dalamud's file
dialog without blocking the UI.
- **First-run wizard** with three profiles (Privacy-First / Casual / Full
History) that maps to concrete configuration sets. Reopenable from the
Privacy tab any time.
- **Independent plugin state.** Config and database live under
`pluginConfigs/HellionChat/`, completely separate from upstream Chat 2 — you
can run both side by side, or migrate from Chat 2 once and keep going.
- **Migration recovery.** Heals databases left in a half-applied Migrate3
state (columns added, `user_version` never bumped) without needing the
backup file upstream creates.
- **Localized UI (EN + DE).** All Hellion-specific surfaces follow Dalamud's
language override and switch live. Translations live in
`Resources/HellionStrings.<lang>.resx`.
### Chat Window
![chatWindow.png](ChatTwo/images/chatWindow.png)
## Status
### With SimpleTweaks "Chat Name Colors"
![withSimpleTweaks.png](ChatTwo/images/withSimpleTweaks.png)
Bootstrap (v0.1.x). Used in production on a single user's setup. Not (yet)
submitted to the official Dalamud plugin repository — distributed as a
custom-repo / dev-plugin while the architecture stabilises.
---
## Why a fork
### IPC Integration
Other plugins can easily integrate their functionality into the context menu of chat2
For more infos read [IPC Guide](ipc.md)
The upstream maintainer has left filtering-related issues open since 2024
([#84](https://github.com/Infiziert90/ChatTwo/issues/84),
[#173](https://github.com/Infiziert90/ChatTwo/issues/173),
[#174](https://github.com/Infiziert90/ChatTwo/issues/174)). The original
design treats the database as an unlimited searchable archive of *everything*
the chat window sees, which is fine in the US-/JP-shaped privacy mindset but
hard to reconcile with EU GDPR data minimization rules when the archive
contains messages from third parties.
---
Forking under EUPL-1.2 is explicitly permitted, the upstream stays
authoritative for the chat-replacement engine, and we cherry-pick relevant
upstream bugfixes from `Infiziert90/ChatTwo` periodically.
### Thanks to
The original dev Anna~
## Build
```bash
# Linux with XIVLauncher Core
cp .env.example .env
# adjust DALAMUD_HOME if your hooks live somewhere else
set -a; source .env; set +a
dotnet build ChatTwo/ChatTwo.csproj
```
The output assembly is `ChatTwo/bin/Debug/HellionChat.dll`. Add the parent
directory as a Dev Plugin Location in Dalamud's experimental settings.
## Branding assets
`ChatTwo/images/icon.png` is the upstream Chat 2 icon and stays in place
until a hand-drawn Hellion logo replaces it. **No AI-generated artwork —
ever.**
## License
EUPL-1.2 (same as upstream Chat 2). See `LICENCE`.
## Acknowledgments
- **Infi & Anna (ascclemens)** — original Chat 2 engine, filtering, IPC, all
the heavy lifting before this fork existed.
- **Dalamud team** — the plugin framework underneath everything.
- **JonKazama-Hellion** — fork maintenance, privacy/retention/export
features, German localization.
## AI assistance disclosure
See `AI_DISCLOSURE.md`.