chore(release): v1.5.2 manifest bump
Bumps csproj Version, repo.json AssemblyVersion/TestingAssemblyVersion plus the three DownloadLink* URLs, yaml + repo.json changelog blocks (slim-rule: v1.5.2 + v1.5.1 + v1.5.0 + v1.4.10 retained, v1.4.9 trimmed to the Full history footer link), docs CHANGELOG long-form block, ROADMAP v1.5.2 marked complete and v1.5.3 set as next cycle (FR localisation with Hezcal native-speaker review), README status strings plus moved pre-v1.5.2 history. Changelog includes the in-cycle UI shrink + Fox-Banner-TreeNode smoke fix and the WizardLastShownVersion re-show-once mechanism for existing users.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<Project Sdk="Dalamud.NET.Sdk/15.0.0">
|
||||
<PropertyGroup>
|
||||
<!-- Independent versioning; see yaml changelog for upstream Chat 2 base -->
|
||||
<Version>1.5.1</Version>
|
||||
<Version>1.5.2</Version>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<!-- Use lock file to pin exact versions -->
|
||||
|
||||
@@ -35,6 +35,56 @@ tags:
|
||||
- Replacement
|
||||
- Privacy
|
||||
changelog: |-
|
||||
**v1.5.2 — First-Run Wizard Rework (2026-05-18)**
|
||||
|
||||
UX patch. The first-run wizard becomes a four-step flow with a
|
||||
new Roleplay privacy profile and a power-settings step that
|
||||
surfaces previously-hidden defaults. Existing v1.5.1 users see
|
||||
the new wizard once on first v1.5.2 boot.
|
||||
|
||||
What changes user-visible:
|
||||
|
||||
- Wizard navigation: Welcome → Privacy profile → Power settings
|
||||
→ Done. Forge-Bronze pagination dots, dedicated stage for the
|
||||
power settings so they are no longer buried in Settings.
|
||||
- Fourth privacy profile "Roleplay": Privacy-First plus Say and
|
||||
both emote types, with a 30-day window for Say and a 90-day
|
||||
window for emotes. Shout, Yell and Novice Network stay out.
|
||||
- Privacy picker becomes a 2x2 grid. Casual stays the
|
||||
recommended option with a ★ marker.
|
||||
- Power-settings step covers Load Previous Session, Filter
|
||||
Include Previous Sessions, Auto-Tell-Tabs History Preload,
|
||||
Compact Density, Prettier Timestamps and a built-in theme
|
||||
picker. All six map to existing Configuration fields — no new
|
||||
settings introduced.
|
||||
- Staged commit: the wizard only writes to Config on the Finish
|
||||
step. Decide-later or X-close at any point leaves the existing
|
||||
config untouched.
|
||||
- Inline test hint on the done step: "type /tell <Player Name>
|
||||
into chat" surfaces the auto-tell-tab spawn mechanism.
|
||||
- Window starts at 720x480 (was 900x560) and can shrink to
|
||||
600x400; Step 1 keeps the fox banner in a folded TreeNode so
|
||||
the onboarding copy stays primary.
|
||||
- Existing users get the new wizard surfaced once on first boot
|
||||
after the update via the new WizardLastShownVersion config
|
||||
field. Future cycles bump the constant only when the wizard
|
||||
itself changes shape.
|
||||
|
||||
Under the hood:
|
||||
|
||||
- WizardStateSmokeStep added to /xlperf alongside the FontManager
|
||||
and ThemeSwitch self-tests.
|
||||
- Twelve new pure-helper xUnit Facts in the Build Suite cover
|
||||
all four privacy profile sets and their retention overrides.
|
||||
|
||||
Migration v17 stays (no schema bump). The Configuration grows
|
||||
one optional string field (WizardLastShownVersion) which
|
||||
defaults to empty for legacy users.
|
||||
|
||||
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).
|
||||
|
||||
---
|
||||
|
||||
**v1.5.1 — FontAtlas Refactor and Hellion Forge Signature (2026-05-17)**
|
||||
|
||||
Hybrid FontManager refactor plus an embedded provenance mark.
|
||||
@@ -177,42 +227,4 @@ changelog: |-
|
||||
|
||||
---
|
||||
|
||||
**v1.4.9 — Plugin-Load Render Polish (2026-05-15)**
|
||||
|
||||
Tenth sub-patch of the v1.4.x polish-sweep series. First-frame
|
||||
render cost drops from ~127 ms median to ~76 ms median,
|
||||
comfortably under Dalamud's 100 ms HITCH warning threshold.
|
||||
|
||||
- First-frame defer: six non-essential rendering sections inside
|
||||
ChatLogWindow skip their first Draw and run one frame later
|
||||
(bottom status bar, channel-name SeString chunks, window bounds
|
||||
check, v0.6.1 hint banner, autocomplete, input-preview
|
||||
calculation). User-visible delay is ~17 ms at 60 fps, hidden
|
||||
inside the post-reload font-atlas build window.
|
||||
- Slash-command centralisation: /hellion, /hellionView,
|
||||
/hellionSeString and /hellionDebugger are registered in
|
||||
LoadAsync instead of inside the corresponding window
|
||||
constructors. The plugin-manager Open and configuration buttons
|
||||
hang on the same path.
|
||||
- Plugin-load profiling logs stay on at Information level
|
||||
(MessageStore connect/migrate, FilterAllTabs, auto-translate
|
||||
warmup) as a regression tripwire — a future load past 100 ms
|
||||
will show up in /xllog without a Debug filter.
|
||||
- ChatTwo IPC compatibility layer: HellionChat now mirrors
|
||||
ChatTwo's full IPC surface (GetChatInputState,
|
||||
ChatInputStateChanged, Register, Unregister, Available,
|
||||
Invoke) under the ChatTwo.* namespace in addition to our
|
||||
existing HellionChat.* provider gates. Third-party
|
||||
integrations that historically only subscribe to ChatTwo's
|
||||
IPC — for example Artisan's and AllaganTools' context-menu
|
||||
hooks — keep working without requiring a code change on their
|
||||
side. Conflict detection prevents ChatTwo from loading in
|
||||
parallel with HellionChat, so there is no slot-collision risk
|
||||
at runtime.
|
||||
- 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
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
[](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/actions/workflows/build.yml)
|
||||
[](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://dotnet.microsoft.com/)
|
||||
[](https://www.finalfantasyxiv.com/)
|
||||
@@ -11,7 +11,7 @@
|
||||
<img src="docs/images/hellion-forge.png" alt="Hellion Forge" width="180" />
|
||||
</p>
|
||||
|
||||
**Version 1.5.1** — Privacy-first chat plugin for FINAL FANTASY XIV / Dalamud, built on
|
||||
**Version 1.5.2** — Privacy-first chat plugin for FINAL FANTASY XIV / Dalamud, built on
|
||||
[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
|
||||
@@ -299,6 +299,22 @@ An optional submission to the Dalamud main plugin repo (in addition to the custo
|
||||
|
||||
## Project Status
|
||||
|
||||
**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
|
||||
grid with a fourth profile "Roleplay" that extends Privacy-First with `Say` and both emote types
|
||||
under a 30-/90-day retention window. A power-settings stage surfaces six previously-hidden
|
||||
`Configuration` defaults in one place without introducing any new settings. The wizard window
|
||||
shrinks to 720×480 default (was 900×560, MinimumSize 600×400) after smoke feedback and Step 1
|
||||
keeps the fox banner in a folded TreeNode so the onboarding copy stays primary. Existing v1.5.1
|
||||
users see the new flow once on first v1.5.2 boot via a new `WizardLastShownVersion` config marker.
|
||||
Under the hood: a `WizardStateSmokeStep` joins `/xlperf`, the Build Suite gains twelve pure-helper
|
||||
xUnit Facts pinning all four privacy profile sets and the new Roleplay retention overrides.
|
||||
Migration v17 stays — `Configuration` only grows one optional string field.
|
||||
|
||||
---
|
||||
|
||||
### Project status (pre-v1.5.2, kept for context)
|
||||
|
||||
**Version 1.5.1** — FontAtlas Refactor and Hellion Forge Signature. The FontManager moves from the
|
||||
inherited Chat 2 anti-pattern (null! fields + a separate BuildFonts method) to a hybrid model where
|
||||
the game fonts and FontAwesome are init-only handles and only the user-configurable delegate fonts
|
||||
@@ -318,10 +334,6 @@ defer their font-atlas build to land at ~7 ms; Chat 2 + HellionChat were ~75 ms)
|
||||
cost lives in the UiBuilder first-frame render path, not in the atlas build. A first-frame render
|
||||
investigation is reserved for a later cycle.
|
||||
|
||||
---
|
||||
|
||||
### Project status (pre-v1.5.1, kept for context)
|
||||
|
||||
**Version 1.5.0** — DI Foundation and Service Refactor. Major architecture cycle: the plugin
|
||||
bootstrap moves to a generic-host DI container (`Microsoft.Extensions.Hosting` +
|
||||
`IServiceCollection`) modelled on Lightless Sync. All 18 instance-class services migrate from a
|
||||
|
||||
@@ -11,6 +11,53 @@ releases as an overview and links to the release pages for details.
|
||||
|
||||
---
|
||||
|
||||
## Hellion Chat 1.5.2 — First-Run Wizard Rework (2026-05-18)
|
||||
|
||||
UX patch. The single-page first-run wizard becomes a four-step staged-commit flow, the privacy
|
||||
profile catalogue gains a fourth entry "Roleplay", and a new power-settings stage surfaces six
|
||||
previously-hidden Configuration defaults. Existing v1.5.1 users see the new wizard once on first
|
||||
v1.5.2 boot via a new `WizardLastShownVersion` config marker.
|
||||
|
||||
User-visible:
|
||||
|
||||
- Wizard layout: Welcome → Privacy profile → Power settings → Done. Forge-Bronze pagination dots,
|
||||
per-step Back / Decide later / Next footer. Decide-later and X-close both leave the existing
|
||||
config untouched; only the Finish ✓ click commits pending choices.
|
||||
- Fourth privacy profile "Roleplay": Privacy-First whitelist plus `Say` and both emote types, with a
|
||||
30-day retention window for `Say` and 90 days for the two emote channels. `Shout`, `Yell` and
|
||||
`NoviceNetwork` stay out — public-distance noise from strangers is not story content.
|
||||
- Privacy picker becomes a 2×2 grid. Casual stays the recommended option with a ★ marker.
|
||||
- Power-settings stage surfaces six existing `Configuration` fields in one place: Load Previous
|
||||
Session, Filter Include Previous Sessions, Auto-Tell-Tabs History Preload, Compact Density,
|
||||
Prettier Timestamps, plus a built-in theme picker. No new settings are introduced — the stage just
|
||||
collects what was previously buried in Settings → Privacy / Chat / Data Management / Optik.
|
||||
- Inline test hint on the done stage: `type /tell <Player Name> into chat` surfaces the auto-tell-tab
|
||||
spawn mechanism for new users.
|
||||
- Wizard window starts at 720×480 (was 900×560) and can shrink to 600×400. Step 1 wraps the fox
|
||||
banner in a collapsible TreeNode, folded by default — onboarding copy stays primary.
|
||||
- Existing v1.5.1 users get the new wizard surfaced once on first v1.5.2 boot. A new
|
||||
`WizardLastShownVersion` config field tracks the most recent version whose wizard was shown;
|
||||
Plugin.LoadAsync resets `FirstRunCompleted` once when the constant `1.5.2` doesn't match.
|
||||
|
||||
Under the hood:
|
||||
|
||||
- `WizardStateSmokeStep` registered with `/xlperf`. Variant 1 walks the four steps with empty
|
||||
pending state to pin the no-op CommitPending path. Variant 2 picks Roleplay on Step 2, skips
|
||||
Step 3, commits, and asserts `LoadPreviousSession` / `FilterIncludePreviousSessions` stayed on
|
||||
their pre-test value — pinning the null-semantics contract. The step snapshots six privacy /
|
||||
retention fields before Variant 2 and `CleanUp()` restores them, so back-to-back runs don't drift
|
||||
the active profile.
|
||||
- Twelve pure-helper xUnit Facts in the Build Suite (`Privacy/PrivacyDefaultsTests.cs`) cover all
|
||||
four profile whitelists plus the new Roleplay retention overrides.
|
||||
- `Configuration` grows one optional string field `WizardLastShownVersion` (default empty). No
|
||||
schema bump — migration v17 still applies.
|
||||
|
||||
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2). EUPL-1.2.
|
||||
|
||||
[Full release notes on the Gitea release page.](https://gitea.hellion-forge.cloud/JonKazama-Hellion/HellionChat/releases/tag/v1.5.2)
|
||||
|
||||
---
|
||||
|
||||
## Hellion Chat 1.5.1 — FontAtlas Refactor and Hellion Forge Signature (2026-05-17)
|
||||
|
||||
Hybrid FontManager refactor plus an embedded Hellion Forge provenance mark.
|
||||
|
||||
+26
-7
@@ -10,14 +10,33 @@ be a poor fit for the plugin's privacy-first scope during brainstorming.
|
||||
|
||||
---
|
||||
|
||||
## Next Cycle (v1.5.2)
|
||||
## Next Cycle (v1.5.3)
|
||||
|
||||
**First-Run-Wizard rework with curated defaults beyond the three privacy profiles.** Jin's discovery
|
||||
in v1.4.10 surfaced the wizard's three-card layout as too thin — power users want richer presets out
|
||||
of the box. After that, FR localisation (Hezcal native-speaker review confirmed), then the Plugin
|
||||
Integrations Wave 2-6 (Context-Menu, NotificationMaster, Moodles, ExtraChat, XIVIM Quick-DM). The
|
||||
UiBuilder first-frame HITCH investigation that v1.5.1 surfaced sits as a separate spike near the
|
||||
Wine/Linux scroll-rubber-band investigation at the tail.
|
||||
**French localisation.** Strings from `Resources/HellionStrings.resx` get a FR translation pass
|
||||
(DeepL first draft), then Hezcal native-speaker review before release. After that, the Plugin
|
||||
Integrations Wave 2-6 (Context-Menu, NotificationMaster, Moodles, ExtraChat, XIVIM Quick-DM) and the
|
||||
UiBuilder first-frame HITCH investigation that v1.5.1 surfaced are queued behind it, alongside the
|
||||
Wine/Linux scroll-rubber-band spike at the tail.
|
||||
|
||||
---
|
||||
|
||||
## v1.5.2 — First-Run Wizard Rework (released 2026-05-18)
|
||||
|
||||
Multi-step wizard replacement: Welcome → Privacy → Power Settings → Done with staged-commit so
|
||||
Decide-later or X-close at any point leaves the existing config untouched. New fourth privacy
|
||||
profile "Roleplay" extends Privacy-First with `Say` and both emote types under a 30-/90-day
|
||||
retention window. Privacy picker becomes a 2×2 grid; Casual keeps the ★ recommended marker. A new
|
||||
power-settings stage surfaces six previously-hidden `Configuration` fields (Load Previous Session,
|
||||
Filter Include Previous Sessions, Auto-Tell-Tabs History Preload, Compact Density, Prettier
|
||||
Timestamps, built-in theme picker) without introducing any new fields.
|
||||
|
||||
Window default size shrinks from 900×560 to 720×480 (MinimumSize 600×400) and Step 1 wraps the fox
|
||||
banner in a folded TreeNode after smoke feedback. Existing v1.5.1 users see the new wizard once on
|
||||
first v1.5.2 boot via a new `WizardLastShownVersion` config marker.
|
||||
|
||||
Under the hood: `WizardStateSmokeStep` joins the `/xlperf` lineup, the Build Suite gains twelve
|
||||
pure-helper xUnit Facts pinning all four privacy profile sets and the new Roleplay retention
|
||||
overrides. Migration v17 stays — `Configuration` only grows one optional string field.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user