Files
HellionChat/.github/forge-posts/v1.4.6.md
T
JonKazama-Hellion e33cf0dcb9 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.
2026-05-12 20:58:59 +02:00

2.2 KiB

subtitle, versionsnatur
subtitle versionsnatur
Code Hygiene and Refactor 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 f35b7d3Tab.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).