From e33cf0dcb94dca57594ae4d385ed3109cbf692d1 Mon Sep 17 00:00:00 2001 From: Jon Kazama Date: Tue, 12 May 2026 20:58:59 +0200 Subject: [PATCH] ci(forge): add v1.4.6 forge announcement post DE body for the Hellion Forge Discord embed; subtitle and versionsnatur frontmatter fields within the 60/40 char caps; embed-total ~2267/5500 per the changelog-sync verifier. --- .github/forge-posts/v1.4.6.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/forge-posts/v1.4.6.md diff --git a/.github/forge-posts/v1.4.6.md b/.github/forge-posts/v1.4.6.md new file mode 100644 index 0000000..040e7b4 --- /dev/null +++ b/.github/forge-posts/v1.4.6.md @@ -0,0 +1,17 @@ +--- +subtitle: Code Hygiene and Refactor +versionsnatur: Maintenance-Cycle +--- + +Wartungs-Patch ohne User-sichtbare Änderungen. Saubere Code-Basis als Vorbereitung auf das v1.4.7-Backlog-Cleanup, plus zwei geerbte Bugfixes aus dem ChatTwo-Upstream `f35b7d3`. + +- **preflight.sh härter**: csharpier-Reflow-Check (Block E) und markdownlint (Block F) laufen jetzt im Pre-Push-Gate, statt erst beim Pre-Merge-Review aufzufallen. +- **FontManager-Fallback robuster**: Atlas-Toolkit-Throws aus kaputten Font-Configs (IO, InvalidOperation, ArgumentException) fallen jetzt zuverlässig auf NotoSansCjkRegular, statt den Atlas-Build mitzureißen. Der Exception-Typ wird im Log mitgegeben für die Diagnose. +- **URL-Validation beim Plugin-Load**: BrandingLinks (5 URLs) und IntegrationLinks (2 URLs) werden via `[ModuleInitializer]` geprüft. Ein Tippfehler bei einer künftigen URL-Rotation wirft jetzt sofort beim Plugin-Load, statt still beim Klick zu scheitern. +- **Cherry-Pick aus ChatTwo `f35b7d3`** — Memory-Leak in `Chat.SetChannel`: der native `Utf8String` wird jetzt auch dann freigegeben, wenn der Linkshell-Check den Channel ablehnt (vorher gefangen im early-return). +- **Cherry-Pick aus ChatTwo `f35b7d3`** — `Tab.Clone()` Deep-cloned jetzt `UsedChannel` und `TellTarget`. Vorher Reference-Share-Bug: PopOut- und Temp-Tabs mutierten sich gegenseitig. +- **Aktive-Tab-Underline pixel-perfect bei DPI-Scaling**: Die Underline-Pill skaliert jetzt mit `ImGuiHelpers.GlobalScale` und rundet die DrawList-Koordinaten auf physische Pixel. Kein Sub-Pixel-Blur mehr auf 125/150%-Setups. +- **IconButton-Width-Fix**: der manuelle `width - 2 * CellPadding.X`-Subtract verlor den HUD-Scale (Padding skaliert, der raw int nicht). Gemessene Breite läuft jetzt unverändert durch. +- **Test-Isolation für MessageStore**: `Dalamud.Utility.Util`-Surface (IsWine, OpenLink) läuft jetzt durch eine `IPlatformUtil`-Indirektion. MessageStores `IsWine`-Probe ist isoliert testbar in der Build-Suite. Plus: HellionStyle-ChildBgAlpha als Pure-Helper extrahiert, Plugin.SaveConfig kopiert nur Session-Tabs statt der ganzen Tab-Liste, SettingsOverview cached den DrawList einmal pro Frame. + +Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).