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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user