release(v1.5.4): manifest bump and forge post
Bumps csproj, yaml, repo.json, CHANGELOG, ROADMAP and README in lock-step to 1.5.4. Forge-post DE-body added with the Polish & Motion versionsnatur. Slim-rule applied to the yaml and repo.json changelog blocks (keeps v1.5.4 + v1.5.3 + v1.5.2 + v1.5.1, drops v1.5.0). A csharpier reflow of two v1.5.4 source files (ChatLogWindow, HellionStyle) is folded in. preflight.sh blocks A-F all green.
This commit is contained in:
1 parent
a42cc2a97e
commit
57b6ead003
9 files changed
+99
-68
No files matched your search
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
subtitle: "Theme-Crossfade, Quick-Picker, Hover-Animationen"
|
||||||
|
versionsnatur: "Polish & Motion"
|
||||||
|
---
|
||||||
|
- **Theme-Crossfade.** Theme-Wechsel blenden jetzt sanft über rund 300 ms ineinander, statt hart umzuschalten. Alle Hellion-Flächen gleiten mit: Sidebar, Titel, Buttons, Tabs, Scrollbar, Trennlinien. Der Fenster-Hintergrund snappt bewusst weiter, damit das Per-Window-Deckkraft-Setting aus Dalamuds Pinning-Menü unangetastet bleibt.
|
||||||
|
- **Header-Quick-Picker.** Neuer Paletten-Button links vom Zahnrad im Chat-Header. Ein Klick öffnet ein kompaktes Popup mit zwei Sektionen: alle Built-in- und Custom-Themes sowie alle Tabs. Der aktive Eintrag trägt ein Häkchen, ein Klick wechselt ohne das Popup zu schließen. So lassen sich mehrere Wechsel hintereinander erledigen, ohne den Umweg über die Einstellungen.
|
||||||
|
- **Sanfte Hover-Animationen.** Sidebar-Icons faden bei Hover sanft von gedimmt auf volle Deckkraft. Card-Mode-Trennlinien heben sich beim Überfahren einer Zeile für den ganzen Tab dezent ab. Beides framerate-unabhängig gerechnet, also auch bei Wine-Stall-Frames stabil.
|
||||||
|
- **Bewegung reduzieren.** Neuer Toggle im Tab für Theme und Layout. Er deaktiviert Crossfade, Hover-Animationen und das Pulsieren ungelesener Tabs für alle, die eine statische Oberfläche bevorzugen.
|
||||||
|
- Drei P3-Items plus der Accessibility-Toggle, kein Schema-Bump, keine Migration. Eine kleine Polish-Welle vor den größeren Cycles.
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<Project Sdk="Dalamud.NET.Sdk/15.0.0">
|
<Project Sdk="Dalamud.NET.Sdk/15.0.0">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<!-- Independent versioning; see yaml changelog for upstream Chat 2 base -->
|
<!-- Independent versioning; see yaml changelog for upstream Chat 2 base -->
|
||||||
<Version>1.5.3</Version>
|
<Version>1.5.4</Version>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<!-- Use lock file to pin exact versions -->
|
<!-- Use lock file to pin exact versions -->
|
||||||
|
|||||||
@@ -35,6 +35,44 @@ tags:
|
|||||||
- Replacement
|
- Replacement
|
||||||
- Privacy
|
- Privacy
|
||||||
changelog: |-
|
changelog: |-
|
||||||
|
**v1.5.4 — Polish and Motion (2026-05-20)**
|
||||||
|
|
||||||
|
A polish cycle: smoother theme switching, faster theme and tab
|
||||||
|
access, and subtle hover motion. Three P3 items plus an
|
||||||
|
accessibility toggle.
|
||||||
|
|
||||||
|
User-visible:
|
||||||
|
|
||||||
|
- Theme switches now crossfade smoothly over ~300 ms across every
|
||||||
|
Hellion-rendered surface — sidebar, title, buttons, tabs,
|
||||||
|
scrollbar, separators. The window background snaps deliberately
|
||||||
|
so the per-window opacity override from Dalamud's pinning menu
|
||||||
|
stays untouched.
|
||||||
|
- New header quick-picker: a palette button left of the cog opens
|
||||||
|
a compact popup with two sections — every built-in and custom
|
||||||
|
theme, and every tab. The active entry carries a check glyph;
|
||||||
|
clicking another switches without closing the popup.
|
||||||
|
- Sidebar icons ease their opacity on hover, and card-mode message
|
||||||
|
borders highlight per tab while the cursor is over their rows.
|
||||||
|
Framerate-independent, so a stalled Wine frame cannot overshoot
|
||||||
|
the animation.
|
||||||
|
- New "Reduce motion" toggle in Theme & Layout disables the
|
||||||
|
crossfade, the hover animations and the unread-tab pulse for
|
||||||
|
users who prefer a static UI.
|
||||||
|
|
||||||
|
Under the hood:
|
||||||
|
|
||||||
|
- Two pure-helper lerp paths (ThemeAbgrCacheLerp, FrameLerp) with
|
||||||
|
xUnit coverage in the Build Suite, plus a ColourUtil.ApplyAlpha
|
||||||
|
alpha modulator. Two new /xlperf self-test steps pin the
|
||||||
|
crossfade and quick-picker contracts.
|
||||||
|
|
||||||
|
No schema bump, no migration. Migration v17 stays.
|
||||||
|
|
||||||
|
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
**v1.5.3 — Localisation Wave + Bundled-Font Overhaul (2026-05-19)**
|
**v1.5.3 — Localisation Wave + Bundled-Font Overhaul (2026-05-19)**
|
||||||
|
|
||||||
Multi-language pass plus a long-standing first-frame HITCH lands
|
Multi-language pass plus a long-standing first-frame HITCH lands
|
||||||
@@ -194,52 +232,4 @@ changelog: |-
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**v1.5.0 — DI Foundation and Service Refactor (2026-05-17)**
|
|
||||||
|
|
||||||
Major architecture cycle. The plugin bootstrap moves to a
|
|
||||||
generic-host DI container (Microsoft.Extensions.Hosting +
|
|
||||||
IServiceCollection) modelled on Lightless Sync. Service logging
|
|
||||||
moves from a static Plugin.LogProxy locator to typed
|
|
||||||
Microsoft.Extensions.Logging.ILogger<T> via constructor injection,
|
|
||||||
bridged over Dalamud's IPluginLog by a custom DalamudLogger trio.
|
|
||||||
|
|
||||||
What changes under the hood:
|
|
||||||
|
|
||||||
- 18 instance-class services migrate to ILogger<T> via constructor
|
|
||||||
injection across four slices: data layer (MessageStore,
|
|
||||||
MessageManager, AutoTellTabsService), IPC and integrations
|
|
||||||
(HonorificService, IpcManager, TypingIpc, ExtraChat, the three
|
|
||||||
GameFunctions classes), UI window layer (ChatLogWindow,
|
|
||||||
DbViewer, Popout, three settings tabs), and root (Commands,
|
|
||||||
ThemeRegistry, PayloadHandler).
|
|
||||||
- Plugin.LogProxy stays in place for the eight buckets ctor
|
|
||||||
injection cannot reach: static helpers (EmoteCache,
|
|
||||||
AutoTranslate, MemoryUtil, WrapperUtil), Dalamud-reflected
|
|
||||||
types (Configuration), the Message data class, and instance
|
|
||||||
classes that only log from static methods (FontManager, one
|
|
||||||
GameFunctions site).
|
|
||||||
- Plugin.cs finishes at 1012 lines — virtually identical to the
|
|
||||||
pre-cycle 1013. The new Phase-1 host build and Plugin.X bridge
|
|
||||||
wiring trade out exactly the service and window allocations
|
|
||||||
that previously lived in LoadAsync.
|
|
||||||
- Cross-plugin baseline confirms no performance penalty against
|
|
||||||
Chat 2: HellionChat first-frame HITCH 77 ms median, Chat 2
|
|
||||||
74 ms median. Lightless and XIVInstantMessenger sit around
|
|
||||||
7 ms by deferring their font-atlas build past Finished
|
|
||||||
loading — that pattern is the v1.5.1 follow-up.
|
|
||||||
|
|
||||||
User-visible:
|
|
||||||
|
|
||||||
- Slash-command insert fix: pasting a slash command into the
|
|
||||||
chat input (Friend List "/tell" action, plugin-driven inserts
|
|
||||||
from Artisan, AllaganTools etc.) now replaces the existing
|
|
||||||
input instead of concatenating. Cherry-picked from ChatTwo
|
|
||||||
upstream ee7768ac with namespace adaptation.
|
|
||||||
|
|
||||||
Migration v17 stays (no schema bump).
|
|
||||||
|
|
||||||
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Full history: https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases
|
Full history: https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases
|
||||||
@@ -515,8 +515,7 @@ public sealed class ChatLogWindow : Window
|
|||||||
$"{theme.Name}##quick-theme-{theme.Slug}",
|
$"{theme.Name}##quick-theme-{theme.Slug}",
|
||||||
isActive,
|
isActive,
|
||||||
ImGuiSelectableFlags.DontClosePopups
|
ImGuiSelectableFlags.DontClosePopups
|
||||||
)
|
) && !isActive
|
||||||
&& !isActive
|
|
||||||
)
|
)
|
||||||
Plugin.ThemeRegistry.Switch(theme.Slug);
|
Plugin.ThemeRegistry.Switch(theme.Slug);
|
||||||
}
|
}
|
||||||
@@ -547,8 +546,7 @@ public sealed class ChatLogWindow : Window
|
|||||||
$"{tabs[i].Name}##quick-tab-{i}",
|
$"{tabs[i].Name}##quick-tab-{i}",
|
||||||
isActive,
|
isActive,
|
||||||
ImGuiSelectableFlags.DontClosePopups
|
ImGuiSelectableFlags.DontClosePopups
|
||||||
)
|
) && !isActive
|
||||||
&& !isActive
|
|
||||||
)
|
)
|
||||||
ChangeTab(i);
|
ChangeTab(i);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,10 +49,7 @@ internal static class HellionStyle
|
|||||||
// per-window opacity override and must not fade. See
|
// per-window opacity override and must not fade. See
|
||||||
// feedback_dalamud_pinning_override.
|
// feedback_dalamud_pinning_override.
|
||||||
ThemeAbgrCache a;
|
ThemeAbgrCache a;
|
||||||
if (
|
if (!Plugin.Config.ReduceMotion && registry.TryGetActiveCrossfade(out var lerped))
|
||||||
!Plugin.Config.ReduceMotion
|
|
||||||
&& registry.TryGetActiveCrossfade(out var lerped)
|
|
||||||
)
|
|
||||||
{
|
{
|
||||||
a = lerped;
|
a = lerped;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
[](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/actions/workflows/build.yml)
|
[](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/actions/workflows/build.yml)
|
||||||
[](LICENSE)
|
[](LICENSE)
|
||||||
[](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/latest)
|
[](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/latest)
|
||||||
[](https://github.com/goatcorp/Dalamud)
|
[](https://github.com/goatcorp/Dalamud)
|
||||||
[](https://dotnet.microsoft.com/)
|
[](https://dotnet.microsoft.com/)
|
||||||
[](https://www.finalfantasyxiv.com/)
|
[](https://www.finalfantasyxiv.com/)
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
<img src="docs/images/hellion-forge.png" alt="Hellion Forge" width="180" />
|
<img src="docs/images/hellion-forge.png" alt="Hellion Forge" width="180" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
**Version 1.5.3** — Privacy-first chat plugin for FINAL FANTASY XIV / Dalamud, built on
|
**Version 1.5.4** — Privacy-first chat plugin for FINAL FANTASY XIV / Dalamud, built on
|
||||||
[Chat 2](https://github.com/Infiziert90/ChatTwo) (EUPL-1.2).
|
[Chat 2](https://github.com/Infiziert90/ChatTwo) (EUPL-1.2).
|
||||||
|
|
||||||
Hellion Chat is a privacy-first plugin built on the Chat 2 foundation. The majority of the engine
|
Hellion Chat is a privacy-first plugin built on the Chat 2 foundation. The majority of the engine
|
||||||
@@ -299,6 +299,22 @@ An optional submission to the Dalamud main plugin repo (in addition to the custo
|
|||||||
|
|
||||||
## Project Status
|
## Project Status
|
||||||
|
|
||||||
|
**Version 1.5.4** — Polish and Motion. Theme switches now crossfade smoothly over
|
||||||
|
~300 ms across every Hellion-rendered surface — sidebar, title, buttons, tabs,
|
||||||
|
scrollbar, separators. The window background snaps deliberately so the per-window
|
||||||
|
opacity override from Dalamud's pinning menu stays intact. A new header quick-picker —
|
||||||
|
a palette button left of the cog — opens a compact popup that switches themes and tabs
|
||||||
|
without opening Settings; the active entry carries a check glyph and the popup stays
|
||||||
|
open between picks. Sidebar icons ease their opacity on hover and card-mode message
|
||||||
|
borders highlight per tab, both framerate-independent so a stalled Wine frame cannot
|
||||||
|
overshoot. A new "Reduce motion" toggle in Theme & Layout disables the crossfade, the
|
||||||
|
hover animations and the unread-tab pulse for users who prefer a static UI. No schema
|
||||||
|
bump, migration v17 stays.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Project status (pre-v1.5.4, kept for context)
|
||||||
|
|
||||||
**Version 1.5.3** — Localisation Wave + Bundled-Font Overhaul. Twenty-four selectable UI languages
|
**Version 1.5.3** — Localisation Wave + Bundled-Font Overhaul. Twenty-four selectable UI languages
|
||||||
(Catalan, Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hungarian, Italian,
|
(Catalan, Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hungarian, Italian,
|
||||||
Japanese, Korean, Norsk bokmål, Polish, Portuguese (Brazil), Portuguese (Portugal), Romanian,
|
Japanese, Korean, Norsk bokmål, Polish, Portuguese (Brazil), Portuguese (Portugal), Romanian,
|
||||||
@@ -319,8 +335,6 @@ EN/DE/FR/JA — other languages may garble when typed in-game. Migration v17 sta
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Project status (pre-v1.5.3, kept for context)
|
|
||||||
|
|
||||||
**Version 1.5.2** — First-Run Wizard Rework. The single-page wizard becomes a four-step
|
**Version 1.5.2** — First-Run Wizard Rework. The single-page wizard becomes a four-step
|
||||||
staged-commit flow (Welcome → Privacy → Power Settings → Done). The privacy picker becomes a 2×2
|
staged-commit flow (Welcome → Privacy → Power Settings → Done). The privacy picker becomes a 2×2
|
||||||
grid with a fourth profile "Roleplay" that extends Privacy-First with `Say` and both emote types
|
grid with a fourth profile "Roleplay" that extends Privacy-First with `Say` and both emote types
|
||||||
|
|||||||
@@ -11,6 +11,17 @@ releases as an overview and links to the release pages for details.
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## Hellion Chat 1.5.4 — Polish and Motion (2026-05-20)
|
||||||
|
|
||||||
|
A polish cycle of three P3 items. Theme switches now crossfade smoothly over ~300 ms
|
||||||
|
across every Hellion-rendered surface; the window background snaps deliberately so the
|
||||||
|
per-window opacity override from Dalamud's pinning menu stays intact. A new header
|
||||||
|
quick-picker — a palette button left of the cog — opens a compact popup for switching
|
||||||
|
themes and tabs without opening Settings. Sidebar icons and card-mode message borders
|
||||||
|
gain framerate-independent hover animations. A new "Reduce motion" toggle in Theme &
|
||||||
|
Layout disables the crossfade, hover animations and unread-tab pulse for accessibility.
|
||||||
|
No schema bump, migration v17 stays.
|
||||||
|
|
||||||
## Hellion Chat 1.5.3 — Localisation Wave + Bundled-Font Overhaul (2026-05-19)
|
## Hellion Chat 1.5.3 — Localisation Wave + Bundled-Font Overhaul (2026-05-19)
|
||||||
|
|
||||||
Multi-language pass plus a long-standing first-frame HITCH lands as a side effect of a font-stack
|
Multi-language pass plus a long-standing first-frame HITCH lands as a side effect of a font-stack
|
||||||
|
|||||||
@@ -22,6 +22,18 @@ parallel as a continuous correction pass, gathered via the Hellion Forge Discord
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## v1.5.4 — Polish and Motion (released 2026-05-20)
|
||||||
|
|
||||||
|
A polish cycle of three P3 items. Theme switches crossfade over ~300 ms across every
|
||||||
|
Hellion-rendered surface; the window background snaps deliberately to preserve the
|
||||||
|
per-window opacity override from Dalamud's pinning menu. A header quick-picker — a
|
||||||
|
palette button left of the cog — switches themes and tabs from a compact popup without
|
||||||
|
opening Settings. Sidebar icons and card-mode borders gain framerate-independent hover
|
||||||
|
animations. A new "Reduce motion" toggle in Theme & Layout covers accessibility. No
|
||||||
|
schema bump; migration v17 stays.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## v1.5.3 — Localisation Wave + Bundled-Font Overhaul (released 2026-05-19)
|
## v1.5.3 — Localisation Wave + Bundled-Font Overhaul (released 2026-05-19)
|
||||||
|
|
||||||
Twenty-four selectable UI languages: from FR-only as the original plan scope, the cycle expanded to
|
Twenty-four selectable UI languages: from FR-only as the original plan scope, the cycle expanded to
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"Author": "Jon Kazama (Hellion Forge)",
|
"Author": "Jon Kazama (Hellion Forge)",
|
||||||
"Name": "Hellion Chat",
|
"Name": "Hellion Chat",
|
||||||
"InternalName": "HellionChat",
|
"InternalName": "HellionChat",
|
||||||
"AssemblyVersion": "1.5.3.0",
|
"AssemblyVersion": "1.5.4.0",
|
||||||
"Description": "A Hellion Forge plugin — privacy-focused chat replacement for FINAL FANTASY XIV, built for EU, US and JP data rules.\n\nBy default only your own conversations are stored. Public chat, NPC dialogue, system messages and battle logs are discarded at the storage layer unless you opt in. Retention windows are configurable per channel, history can be wiped retroactively, and everything can be exported on demand.\n\nFeatures:\n- Channel whitelist with a Privacy-First default\n- Per-channel retention with a daily background sweep\n- Retroactive cleanup with preview and Ctrl+Shift confirm\n- Export to Markdown, JSON or CSV\n- First-run wizard with four profiles: Privacy-First, Casual, Roleplay, Full History\n- Multi-language UI (24 locales) with live language switching\n- Own config and database — no shared state with other plugins\n\nBased on Chat 2 by Infi and Anna (EUPL-1.2).\nSupport: https://discord.gg/X9V7Kcv5gR",
|
"Description": "A Hellion Forge plugin — privacy-focused chat replacement for FINAL FANTASY XIV, built for EU, US and JP data rules.\n\nBy default only your own conversations are stored. Public chat, NPC dialogue, system messages and battle logs are discarded at the storage layer unless you opt in. Retention windows are configurable per channel, history can be wiped retroactively, and everything can be exported on demand.\n\nFeatures:\n- Channel whitelist with a Privacy-First default\n- Per-channel retention with a daily background sweep\n- Retroactive cleanup with preview and Ctrl+Shift confirm\n- Export to Markdown, JSON or CSV\n- First-run wizard with four profiles: Privacy-First, Casual, Roleplay, Full History\n- Multi-language UI (24 locales) with live language switching\n- Own config and database — no shared state with other plugins\n\nBased on Chat 2 by Infi and Anna (EUPL-1.2).\nSupport: https://discord.gg/X9V7Kcv5gR",
|
||||||
"ApplicableVersion": "any",
|
"ApplicableVersion": "any",
|
||||||
"RepoUrl": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat",
|
"RepoUrl": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat",
|
||||||
@@ -20,12 +20,12 @@
|
|||||||
"CanUnloadAsync": false,
|
"CanUnloadAsync": false,
|
||||||
"LoadPriority": 0,
|
"LoadPriority": 0,
|
||||||
"Punchline": "A Hellion Forge plugin. Privacy-first chat for FFXIV, built to stay out of your way.",
|
"Punchline": "A Hellion Forge plugin. Privacy-first chat for FFXIV, built to stay out of your way.",
|
||||||
"Changelog": "**v1.5.3 — Localisation Wave + Bundled-Font Overhaul (2026-05-19)**\n\nMulti-language pass plus a long-standing first-frame HITCH lands\nas a side effect of a font-stack rewrite.\n\nUser-visible:\n\n- 24 selectable UI languages (was 2). Catalan, Czech, Danish,\n Dutch, English, Finnish, French, German, Greek, Hungarian,\n Italian, Japanese, Korean, Norsk bokmål, Polish, Portuguese\n (BR + PT), Romanian, Russian, Spanish, Swedish, Turkish,\n Ukrainian, Simplified + Traditional Chinese. Sorted by endonym,\n \"None\" pinned first. Non-native locales are AI-assisted and\n flagged for native-speaker review via the Forge Discord.\n- Bundled Inter Light replaces Exo 2 (SIL OFL 1.1, 343 KB). The\n Inter font ships Latin Extended-A/B, Greek polytonic and\n Cyrillic Supplement coverage; NotoSansCjkRegular joins as a\n third merge layer for Hangul and Simplified-Han glyphs the\n FFXIV Japanese game font does not ship.\n- First-frame HITCH dropped from ~74 ms (v1.5.2 baseline that\n held since v1.4.x) to a median of ~20 ms (5-reload sample\n 17.9-23.6 ms, Linux/Wine). The bundled-font path silently\n fell back to the FFXIV Axis font for the entire v1.5.x series\n because of an early-return in the draw loop. The fix that\n routes RegularFont through draw also lands the defer-pattern\n win the v1.5.1 cycle was reaching for.\n- ExtraGlyphRanges auto-activates on language change. Korean,\n ChineseFull and the two new flags (LatinExtended, Greek) toggle\n on without a manual visit to Fonts and Colours.\n- New WarningText under the language dropdown notes FFXIV's\n chat input only fully supports EN/DE/FR/JA character sets.\n Other languages render in HellionChat but may garble when\n typed into in-game chat.\n\nUnder the hood:\n\n- Three-layer font stack: Inter Light primary, FFXIV\n JapaneseFont merge 1 for kana/kanji style, NotoSansCjkRegular\n merge 2 for everything else CJK.\n- LanguageOverride enum gains ten locales plus three previously\n commented out (Italian, Korean, Norwegian as `nb`). New\n values append to the enum so existing config integers stay\n stable across update.\n- Crowdin gap closed: four post-sync ChatTwo keys backfilled\n into 13 legacy locales with per-key AI markers.\n- Plugin.LoadAsync runs a one-shot migration that ORs in the\n matching ExtraGlyphRanges flag for users already on a\n non-default language. Settings.Apply auto-activates on\n change going forward.\n- Em-dash sweep across the EN source and 18 translations to the\n house style. Russian and Ukrainian keep the typographic norm.\n\nMigration v17 stays. UseHellionFont users transition from Exo 2\nto Inter Light transparently on first reload.\n\nBased on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).\n\n---\n\n**v1.5.2 — First-Run Wizard Rework (2026-05-18)**\n\nUX patch. The first-run wizard becomes a four-step flow with a\nnew Roleplay privacy profile and a power-settings step that\nsurfaces previously-hidden defaults. Existing v1.5.1 users see\nthe new wizard once on first v1.5.2 boot.\n\nWhat changes user-visible:\n\n- Wizard navigation: Welcome → Privacy profile → Power settings\n → Done. Forge-Bronze pagination dots, dedicated stage for the\n power settings so they are no longer buried in Settings.\n- Fourth privacy profile \"Roleplay\": Privacy-First plus Say and\n both emote types, with a 30-day window for Say and a 90-day\n window for emotes. Shout, Yell and Novice Network stay out.\n- Privacy picker becomes a 2x2 grid. Casual stays the\n recommended option with a ★ marker.\n- Power-settings step covers Load Previous Session, Filter\n Include Previous Sessions, Auto-Tell-Tabs History Preload,\n Compact Density, Prettier Timestamps and a built-in theme\n picker. All six map to existing Configuration fields — no new\n settings introduced.\n- Staged commit: the wizard only writes to Config on the Finish\n step. Decide-later or X-close at any point leaves the existing\n config untouched.\n- Inline test hint on the done step: \"type /tell <Player Name>\n into chat\" surfaces the auto-tell-tab spawn mechanism.\n- Window starts at 720x480 (was 900x560) and can shrink to\n 600x400; Step 1 keeps the fox banner in a folded TreeNode so\n the onboarding copy stays primary.\n- Existing users get the new wizard surfaced once on first boot\n after the update via the new WizardLastShownVersion config\n field. Future cycles bump the constant only when the wizard\n itself changes shape.\n\nUnder the hood:\n\n- WizardStateSmokeStep added to /xlperf alongside the FontManager\n and ThemeSwitch self-tests.\n- Twelve new pure-helper xUnit Facts in the Build Suite cover\n all four privacy profile sets and their retention overrides.\n\nMigration v17 stays (no schema bump). The Configuration grows\none optional string field (WizardLastShownVersion) which\ndefaults to empty for legacy users.\n\nBased on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).\n\n--Line truncated
|
"Changelog": "**v1.5.4 — Polish and Motion (2026-05-20)**\n\nA polish cycle: smoother theme switching, faster theme and tab\naccess, and subtle hover motion. Three P3 items plus an\naccessibility toggle.\n\nUser-visible:\n\n- Theme switches now crossfade smoothly over ~300 ms across every\n Hellion-rendered surface — sidebar, title, buttons, tabs,\n scrollbar, separators. The window background snaps deliberately\n so the per-window opacity override from Dalamud's pinning menu\n stays untouched.\n- New header quick-picker: a palette button left of the cog opens\n a compact popup with two sections — every built-in and custom\n theme, and every tab. The active entry carries a check glyph;\n clicking another switches without closing the popup.\n- Sidebar icons ease their opacity on hover, and card-mode message\n borders highlight per tab while the cursor is over their rows.\n Framerate-independent, so a stalled Wine frame cannot overshoot\n the animation.\n- New \"Reduce motion\" toggle in Theme & Layout disables the\n crossfade, the hover animations and the unread-tab pulse for\n users who prefer a static UI.\n\nUnder the hood:\n\n- Two pure-helper lerp paths (ThemeAbgrCacheLerp, FrameLerp) with\n xUnit coverage in the Build Suite, plus a ColourUtil.ApplyAlpha\n alpha modulator. Two new /xlperf self-test steps pin the\n crossfade and quick-picker contracts.\n\nNo schema bump, no migration. Migration v17 stays.\n\nBased on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).\n\n---\n\n**v1.5.3 — Localisation Wave + Bundled-Font Overhaul (2026-05-19)**\n\nMulti-language pass plus a long-standing first-frame HITCH lands\nas a side effect of a font-stack rewrite.\n\nUser-visible:\n\n- 24 selectable UI languages (was 2). Catalan, Czech, Danish,\n Dutch, English, Finnish, French, German, Greek, Hungarian,\n Italian, Japanese, Korean, Norsk bokmål, Polish, Portuguese\n (BR + PT), Romanian, Russian, Spanish, Swedish, Turkish,\n Ukrainian, Simplified + Traditional Chinese. Sorted by endonym,\n \"None\" pinned first. Non-native locales are AI-assisted and\n flagged for native-speaker review via the Forge Discord.\n- Bundled Inter Light replaces Exo 2 (SIL OFL 1.1, 343 KB). The\n Inter font ships Latin Extended-A/B, Greek polytonic and\n Cyrillic Supplement coverage; NotoSansCjkRegular joins as a\n third merge layer for Hangul and Simplified-Han glyphs the\n FFXIV Japanese game font does not ship.\n- First-frame HITCH dropped from ~74 ms (v1.5.2 baseline that\n held since v1.4.x) to a median of ~20 ms (5-reload sample\n 17.9-23.6 ms, Linux/Wine). The bundled-font path silently\n fell back to the FFXIV Axis font for the entire v1.5.x series\n because of an early-return in the draw loop. The fix that\n routes RegularFont through draw also lands the defer-pattern\n win the v1.5.1 cycle was reaching for.\n- ExtraGlyphRanges auto-activates on language change. Korean,\n ChineseFull and the two new flags (LatinExtended, Greek) toggle\n on without a manual visit to Fonts and Colours.\n- New WarningText under the language dropdown notes FFXIV's\n chat input only fully supports EN/DE/FR/JA character sets.\n Other languages render in HellionChat but may garble when\n typed into in-game chat.\n\nUnder the hood:\n\n- Three-layer font stack: Inter Light primary, FFXIV\n JapaneseFont merge 1 for kana/kanji style, NotoSansCjkRegular\n merge 2 for everything else CJK.\n- LanguageOverride enum gains ten locales plus three previously\n commented out (Italian, Korean, Norwegian as `nb`). New\n values append to the enum so existing config integers stay\n stable across update.\n- Crowdin gap closed: four post-sync ChatTwo keys backfilled\n into 13 legacy locales with per-key AI markers.\n- Plugin.LoadAsync runs a one-shot migration that ORs in the\n matching ExtraGlyphRanges flag for users already on a\n non-default language. Settings.Apply auto-activates on\n change going forward.\n- Em-dash sweep across the EN source and 18 translations to the\n house style. Russian and Ukrainian keep the typographic norm.\n\nMigration v17 stays. UseHellionFont users transition from Exo 2\nto Inter Light transparently on first reload.\n\nBased on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).\n\n---\n\n**v1.5.2 — First-Run Wizard Rework (2026-05-18)**\n\nUX patch. The first-run wizard becomes a four-step flow with a\nnew Roleplay privacy profile and a power-settings step that\nsurfaces previously-hidden defaults. Existing v1.5.1 users see\nthe new wizard once on first v1.5.2 boot.\n\nWhat changes user-visible:\n\n- Wizard navigation: Welcome → Privacy profile → Power settings\n → Done. Forge-Bronze pagination dots, dedicated stage for the\n power settings so they are no longer buried in Settings.\n- Fourth privacy profile \"Roleplay\": Privacy-First plus Say and\n both emote types, with a 30-day window for Say and a 90-day\n window for emotes. Shout, Yell and Novice NetwLine truncated
|
||||||
"AcceptsFeedback": true,
|
"AcceptsFeedback": true,
|
||||||
"DownloadLinkInstall": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/download/v1.5.3/latest.zip",
|
"DownloadLinkInstall": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/download/v1.5.4/latest.zip",
|
||||||
"DownloadLinkUpdate": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/download/v1.5.3/latest.zip",
|
"DownloadLinkUpdate": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/download/v1.5.4/latest.zip",
|
||||||
"DownloadLinkTesting": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/download/v1.5.3/latest.zip",
|
"DownloadLinkTesting": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/download/v1.5.4/latest.zip",
|
||||||
"TestingAssemblyVersion": "1.5.3.0",
|
"TestingAssemblyVersion": "1.5.4.0",
|
||||||
"IconUrl": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/raw/branch/main/HellionChat/images/icon.png",
|
"IconUrl": "https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/raw/branch/main/HellionChat/images/icon.png",
|
||||||
"ImageUrls": [
|
"ImageUrls": [
|
||||||
"https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/raw/branch/main/HellionChat/images/chatWindow.png",
|
"https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/raw/branch/main/HellionChat/images/chatWindow.png",
|
||||||
@@ -39,4 +39,4 @@
|
|||||||
"social"
|
"social"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
Reference in new issue
Block a user