Files
HellionChat/NOTICE.md
T
JonKazama-Hellion 1b63765caa docs: community standards, privacy notice and release-body automation
Closes the remaining gaps in GitHub's community-standards check, adds
explicit privacy and dependency documentation matching the plugin's
"DSGVO-by-design" claim, and removes the stale upstream Crowdin
artefact so the repo no longer suggests it ships its own translation
pipeline.

New community-health files:

- CODE_OF_CONDUCT.md: project-specific, short and direct, single
  reporting path to kontakt@hellion-media.de
- CONTRIBUTING.md: scope, accepted vs declined contributions, build
  and test instructions, EUPL-1.2 contribution terms, translation
  policy split between Hellion-specific (here) and upstream strings
  (Chat 2 repo)
- SUPPORT.md: routing for bugs, security, privacy and casual feedback
- .github/PULL_REQUEST_TEMPLATE.md: summary, change-type checklist,
  testing notes, compatibility notes for migrations and manifest
  fields, contribution checklist
- .github/FUNDING.yml: comments-only file, no platforms enabled,
  points donors at the upstream Chat 2 maintainers' Ko-fi pages

New privacy and compliance documentation:

- PRIVACY.md: what the plugin stores locally (config, SQLite,
  EmoteCacheV1), retention defaults, the two outbound network calls
  (BetterTTV API+CDN with ShowEmotes opt-out, Square Enix Lodestone
  font once-off), explicit no-telemetry statement, GDPR
  Art. 15/17/18/20/21 rights mapped to plugin features, third-party
  privacy-policy links
- THIRD_PARTY_NOTICES.md: direct NuGet dependencies with versions
  pinned to v0.5.4 (MessagePack, Microsoft.Data.Sqlite, morelinq,
  Pidgin, SixLabors.ImageSharp under Six Labors Split License 1.0),
  Dalamud SDK and .NET tooling, bundled Exo 2 font (OFL-1.1) and
  plugin icon, network-touch status per component, re-audit commands

Crowdin cleanup:

- crowdin.yml deleted (was upstream Chat 2's project_id 663694,
  pointed at /ChatTwo/Resources/Language.resx, never wired to
  HellionChat strings)
- README, CONTRIBUTING and CODE_OF_CONDUCT no longer suggest
  HellionChat operates a Crowdin project; remaining mentions are
  explicitly framed as upstream Chat 2's workflow

Contact and version consistency:

- Maintainer email switched from maintainer@hellion-media.de to
  kontakt@hellion-media.de in SECURITY.md and NOTICE.md
- README version references updated to 0.5.4 (header, project status
  block) and the update-tag pattern generalised from v0.1.x to v0.X.Y
- bug_report.yml version placeholder bumped to 0.5.4
- Project-documents table added to README footer linking all health
  and reference files in one place

Release-body automation:

- .github/workflows/release.yml now extracts the matching version
  block from ChatTwo/HellionChat.yaml's changelog and combines it
  with a static install / docs footer (custom-repo URL, project
  document links, licence) before passing the result to
  softprops/action-gh-release@v3 via body_path
- Workflow fails fast if no changelog block exists for the tagged
  version, automating the existing "yaml + repo.json + release body
  kept in sync" rule
- Tag value passed via env: TAG_NAME with strict ^v\d+\.\d+\.\d+$
  validation before any string concatenation, so the tag input cannot
  break out into shell evaluation
2026-05-03 10:42:07 +02:00

90 lines
4.2 KiB
Markdown

# Notice
## Acknowledgements
HellionChat is a fork of [Chat 2](https://github.com/Infiziert90/ChatTwo) by
**Infiziert90 (Infi)** and **Anna Clemens**, 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.
## A direct word to Infi and Anna
Hi. I am Florian (Flo, also Jon Kazama in-game on Phoenix). 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.
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 is the standard I want to keep using as
long as both projects are alive. You should never have to look at this
fork and wonder if I quietly ate your work.
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:
- **GitHub Issues:** [JonKazama-Hellion/HellionChat/issues](https://github.com/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.
## 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, attribute clearly,
and pull selected upstream patches when they apply.
## 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 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.
## 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.