Chat 2 has entered a major rework that Infi confirmed makes selective patches no longer portable. The cherry-pick pipeline as a routine workflow stops with the v1.4.x cycle. Documentation reflects the new state across all touchpoints. UPSTREAM_SYNC.md rewritten: replaces the "How I Cherry-Pick" / "Reviewing What Is New Upstream" / "Conflict Handling" sections with "Why Cherry-Picking Stopped", "What Closing the Pipeline Means in Practice", "What Does Not Change", "What Could Re-Open Later". Existing cherry-pick trails in the git history stay intact, EUPL-1.2 anchor lines and NOTICE.md remain canonical. README.md, CONTRIBUTING.md, ROADMAP.md, THIRD_PARTY_NOTICES.md and the PR template updated to match: cherry-pick references reframed as historical or pointed at UPSTREAM_SYNC.md for the current state. NOTICE.md keeps the BetterTTV cherry-pick example as a concrete past case but adds a paragraph that the pipeline is closed and clarifies the attribution standard is preserved unchanged. PULL_REQUEST_TEMPLATE.md drops the "Upstream cherry-pick from Chat 2" checkbox and the cherry-pick-path compatibility prompt. The upstream git remote was already removed locally on 2026-05-08 (separate change, not in this commit). No source-file edits, no manifest version bump, no changelog entry — this is documentation-only and ships with the next release.
5.8 KiB
Upstream Sync
HellionChat is a standalone EUPL-1.2 plugin that originated from Chat 2. Since v1.0.0 it lives under its own namespace, IPC channels and source tree. The active cherry-pick pipeline from upstream Chat 2 is closed since the v1.4.x cycle.
This document covers what that means, why I closed it, and what stays in place.
A Word on Intent
HellionChat is not trying to replace Chat 2. I build it for myself, and maybe for people who want the same things I do: a privacy-first chat plugin with tighter defaults and no remote-access surface. If that is not you, Chat 2 is the better choice and a well-maintained project.
I am available to Infi if he ever has questions about HellionChat or how I have diverged from the upstream code. What I will not do is interfere with Chat 2's direction or push unsolicited opinions into his project.
Long-term compatibility between Chat 2 and HellionChat is not guaranteed and, frankly, not technically possible. I am building a new UI from scratch and making deliberate architectural decisions that pull in a different direction. Some upstream patches will simply stop applying cleanly and that is expected.
Why Cherry-Picking Stopped in v1.4.x
Two things converged:
- Chat 2 is in a rework cycle. Infi mentioned directly that
parts of ChatTwo are being reworked and "stuff may not be able to
be cherry picked anymore." Once the upstream code paths I would
pull from no longer exist in the same shape,
git cherry-pickstops being a meaningful tool — what would land would not be the change Infi wrote, it would be a hand-port of his concept. - HellionChat has drifted enough that selective patches require adaptation anyway. The UI is being rebuilt, the theme engine sits on top of HellionStyle which has no upstream equivalent, the privacy filter changes how messages flow through MessageManager. Even before the rework was announced, more and more upstream patches needed adaptation rather than a clean apply.
Together those two points mean continuing to call this an "active cherry-pick pipeline" was no longer honest. So I closed it.
What Closing the Pipeline Means in Practice
- The
upstreamgit remote was removed locally on 2026-05-08. Anyone setting up a fresh clone does not add it back. - New commits will not carry
(cherry picked from commit ...)trailers. Anything that originates from Chat 2 from this point forward will be a hand-port at most, and it gets called out as such in its own commit message and in the relevant source comments. - The existing cherry-pick trail stays in the git history exactly as
it is. Every
(cherry picked from commit ...)line that was added with-xin earlier releases remains intact; that is the attribution paper trail and removing it would be wrong.
What Does Not Change
- EUPL-1.2 anchor lines in source files. Files that originated from Chat 2 keep their licence headers and any "based on Infiziert90/ChatTwo" notice exactly as they are. The licence obligations under EUPL-1.2 do not lapse because cherry-picking stopped.
- NOTICE.md stays canonical. Attribution to Infi and Anna for the message store, channel logic, hook system, ImGui chat window and the localisation infrastructure remains the foundation statement of this fork.
- README acknowledgements. The Acknowledgements section in
README.md, the maintainer thanks in the About tab, and theLanguage.*.resxCrowdin translator credit list all stay as they are. - The original
Language.*.resxfiles remain in the source tree in their last upstream-sync state. They are the work of the Chat 2 Crowdin community and the existing translations stay valuable. They will not receive automatic upstream updates anymore — see CONTRIBUTING.md for what that means for translators.
What Could Re-Open Later
If Chat 2's rework lands and stabilises, and there is a piece of upstream code that I genuinely want in HellionChat, the path forward is study and re-implement, not cherry-pick. That means:
- Read the upstream change, understand the design, port the concept to HellionChat's actual code paths.
- Credit the upstream author in the commit message and, if the ported code is non-trivial, in a source-file comment.
- Pre-clear with Infi if the port is large enough to warrant a conversation.
This is heavier than git cherry-pick -x and that is the point.
Cherry-picking was light because both codebases shared structure;
once they do not, the proper attribution costs a real conversation
rather than a flag on a git command.
Contributing Back
HellionChat benefits from Chat 2's work, so I try to give something back where I can. If I fix a bug or improve something that would be useful to Chat 2 and is not HellionChat-specific, I submit a good-will PR to Infiziert90/ChatTwo.
A few things to note about that process:
- Good-will PRs are validated in a separate fork first to make sure the fix stands on its own without HellionChat context.
- They are written by hand. No AI-generated code goes to Infi's project. He did not ask for Pair-level AI involvement and I will not push that decision onto his codebase.
- This is not guaranteed for every change, only where it makes sense and where I am confident the fix is clean and self-contained.
- Whether it gets accepted is Infi's call, and a "no" is fine.
When Upstream Takes a Direction I Cannot Follow
If a future Chat 2 release breaks compatibility with the HellionChat privacy philosophy in a way that cannot be resolved (mandatory cloud sync, removal of the local message store, an incompatible licence change), HellionChat continues from where it is. The inherited history stays under EUPL-1.2 and stays attributed.