chore(linting): refresh configs and sweep auto-fix

Pull in the refreshed linter and tooling configs (editorconfig,
gitignore, gitattributes, prettierignore, prettierrc, markdownlint,
yamllint, env.example, dotnet-tools) and run prettier and markdownlint
in --fix / --write mode across the repo so the existing tree matches
the new rules.

- prettier 2-space indent on yaml/yml and json overrides, asterisk
  strong, underscore emphasis, proseWrap always
- markdownlint MD007 indent aligned to 2 and MD049 to underscore so
  prettier output stays passing
- preflight Block F also ignores CLAUDE.md (gitignored personal file)
- prettierignore extended to keep HellionChat.yaml manifest and the
  NuGet packages.lock.json out of the formatter

No semantic content changed; csharpier, build, full build-suite
(729/729) and the new prettier/markdownlint/yamllint checks all green.
This commit is contained in:
2026-05-17 17:20:55 +02:00
parent 2315f10d91
commit 0220e5d756
53 changed files with 3501 additions and 2630 deletions
+54 -46
View File
@@ -3,82 +3,90 @@
## Acknowledgements
HellionChat is a fork of [Chat 2](https://github.com/Infiziert90/ChatTwo) by
**[Infiziert90 (Infi)](https://github.com/Infiziert90)** and **[Anna](https://github.com/anna-is-cute)**, both of whom
kept that plugin running and maintained for years before I ever opened the source. Without their work this fork would
not exist, full stop. I owe them the architecture, the message store, the channel filtering, the sidebar tab system, the
hooks into FFXIV's chat, the localisation infrastructure, and countless small decisions that I only noticed because they
had already been made correctly.
**[Infiziert90 (Infi)](https://github.com/Infiziert90)** and
**[Anna](https://github.com/anna-is-cute)**, both of whom kept that plugin running and maintained
for years before I ever opened the source. Without their work this fork would not exist, full stop.
I owe them the architecture, the message store, the channel filtering, the sidebar tab system, the
hooks into FFXIV's chat, the localisation infrastructure, and countless small decisions that I only
noticed because they had already been made correctly.
If you find HellionChat useful, please remember that the foundation came from Chat 2. The code Anna and Infi wrote is
doing most of the heavy lifting in this fork too.
If you find HellionChat useful, please remember that the foundation came from Chat 2. The code Anna
and Infi wrote is doing most of the heavy lifting in this fork too.
## A direct word to Infi and Anna
Hi. I am Florian. I forked Chat 2 because I wanted a privacy-by-default version for my own use case and a small group of
friends I play with, not because I thought I could do anything better than what you built. The opposite is true.
ChatTwo's default of full history and cross-character logging is the right call for most users. I just have a different
threat model and a different data-handling philosophy that fits a smaller, locally-stored, retention- limited approach.
Hi. I am Florian. I forked Chat 2 because I wanted a privacy-by-default version for my own use case
and a small group of friends I play with, not because I thought I could do anything better than what
you built. The opposite is true. ChatTwo's default of full history and cross-character logging is
the right call for most users. I just have a different threat model and a different data-handling
philosophy that fits a smaller, locally-stored, retention- limited approach.
What HellionChat adds is mostly Hellion-specific surface area: a privacy filter, per-channel retention windows, an
export pipeline, an Auto-Tell- Tabs feature for FFXIV club greeters, the Hellion theme and font, German localisation,
and a settings UX rebuild. None of it touches the bones of what you built. Where I had to modify your code I tried to
keep the edits minimal, isolated to clearly-marked Hellion files, and reversible.
What HellionChat adds is mostly Hellion-specific surface area: a privacy filter, per-channel
retention windows, an export pipeline, an Auto-Tell- Tabs feature for FFXIV club greeters, the
Hellion theme and font, German localisation, and a settings UX rebuild. None of it touches the bones
of what you built. Where I had to modify your code I tried to keep the edits minimal, isolated to
clearly-marked Hellion files, and reversible.
Concrete example: when API 15 hit, I cherry-picked your fix for the BetterTTV emote regression with `git cherry-pick -x`
so authorship and co-author trail stay intact. That was the standard I held to as long as cherry-picking was viable, and
you should never have to look at this fork and wonder if I quietly ate your work.
Concrete example: when API 15 hit, I cherry-picked your fix for the BetterTTV emote regression with
`git cherry-pick -x` so authorship and co-author trail stay intact. That was the standard I held to
as long as cherry-picking was viable, and you should never have to look at this fork and wonder if I
quietly ate your work.
With ChatTwo entering its rework cycle, the active cherry-pick pipeline is closed since v1.4.x — see
[docs/UPSTREAM_SYNC.md](docs/UPSTREAM_SYNC.md) for the full reasoning. The attribution standard stays exactly the same:
every existing `(cherry picked from commit ...)` line remains in the git history, the EUPL-1.2 anchor lines in source
files are untouched, and this NOTICE.md remains canonical. If anything from this point forward originates from Chat 2 it
will be a hand-port at most, called out as such in the commit message and source comments, not a `git cherry-pick`.
[docs/UPSTREAM_SYNC.md](docs/UPSTREAM_SYNC.md) for the full reasoning. The attribution standard
stays exactly the same: every existing `(cherry picked from commit ...)` line remains in the git
history, the EUPL-1.2 anchor lines in source files are untouched, and this NOTICE.md remains
canonical. If anything from this point forward originates from Chat 2 it will be a hand-port at
most, called out as such in the commit message and source comments, not a `git cherry-pick`.
If anything in this fork ever steps on something you would not be okay with, please reach out and I will fix it.
Genuinely. The list of contacts is below.
If anything in this fork ever steps on something you would not be okay with, please reach out and I
will fix it. Genuinely. The list of contacts is below.
## Maintainer contact
If something in HellionChat causes problems, especially if it relates back to Chat 2 or to anything Infi or Anna would
want flagged:
If something in HellionChat causes problems, especially if it relates back to Chat 2 or to anything
Infi or Anna would want flagged:
- **Gitea Issues:**
[JonKazama-Hellion/HellionChat/issues](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/issues)
- **Discord:** `@j.j_kazama`
- **Email (business):** <kontakt@hellion-media.de>
I respond on weekdays during European business hours. For anything urgent (security, attribution, takedown), email is
the fastest path.
I respond on weekdays during European business hours. For anything urgent (security, attribution,
takedown), email is the fastest path.
## Why this fork is not upstreamed
The privacy-by-default position fits a small audience. ChatTwo's full-history-by-default position fits a much larger
one, including the roleplaying community where chat archive is part of the play experience. Trying to upstream
HellionChat's defaults would have meant arguing that Chat 2's defaults are wrong, and they are not. They are right for
the user base ChatTwo serves. So I keep the fork separate and attribute clearly. Active cherry-picking from upstream
stopped in the v1.4.x cycle once Chat 2's rework made selective patches no longer portable; the existing cherry-pick
trail stays in the git history.
The privacy-by-default position fits a small audience. ChatTwo's full-history-by-default position
fits a much larger one, including the roleplaying community where chat archive is part of the play
experience. Trying to upstream HellionChat's defaults would have meant arguing that Chat 2's
defaults are wrong, and they are not. They are right for the user base ChatTwo serves. So I keep the
fork separate and attribute clearly. Active cherry-picking from upstream stopped in the v1.4.x cycle
once Chat 2's rework made selective patches no longer portable; the existing cherry-pick trail stays
in the git history.
## Why HellionChat left the GitHub fork network
The Dalamud plugin ecosystem treats the GitHub-Fork relation as a signal that a fork is either a development branch or a
dead mirror. HellionChat is neither. It is an independently-maintained EUPL-1.2 fork with its own release cadence, its
own custom repo, its own user base. Detaching the fork-network relation just makes the situation honest. The git
history, the existing cherry-pick trail, and the attribution stay exactly the same. The only thing that changes is the
GitHub UI no longer says "forked from".
The Dalamud plugin ecosystem treats the GitHub-Fork relation as a signal that a fork is either a
development branch or a dead mirror. HellionChat is neither. It is an independently-maintained
EUPL-1.2 fork with its own release cadence, its own custom repo, its own user base. Detaching the
fork-network relation just makes the situation honest. The git history, the existing cherry-pick
trail, and the attribution stay exactly the same. The only thing that changes is the GitHub UI no
longer says "forked from".
## Trademarks and naming
"Chat 2" and "ChatTwo" are the names Infi and Anna chose for the upstream plugin. HellionChat does not use either of
those names in user-facing copy except where required to describe origin (settings tab, manifest, this file, the
README). The Hellion brand is mine.
"Chat 2" and "ChatTwo" are the names Infi and Anna chose for the upstream plugin. HellionChat does
not use either of those names in user-facing copy except where required to describe origin (settings
tab, manifest, this file, the README). The Hellion brand is mine.
## Questions
This file is the canonical place for "is this attribution correct, is the maintainer reachable, is the relationship to
Chat 2 documented". If anything in here is wrong, please open an issue or contact me directly.
This file is the canonical place for "is this attribution correct, is the maintainer reachable, is
the relationship to Chat 2 documented". If anything in here is wrong, please open an issue or
contact me directly.
---
Maintained under **Hellion Forge**, the modding and plugin line of **Hellion Online Media** | Bad Harzburg |
[hellion-media.de](https://hellion-media.de)
Maintained under **Hellion Forge**, the modding and plugin line of **Hellion Online Media** | Bad
Harzburg | [hellion-media.de](https://hellion-media.de)