c5fe69f0d3
Crystal Nocturne (royal sapphire + electric magenta on obsidian, by CRYSTALLITE) replaces Moonlit Bloom in the built-in roster. The same chat-channel tinting convention applies: sapphire-blue identity on party/team channels, accent-magenta on tells, and an alternating mint/yellow/peach palette across the eight linkshell slots so each LS stays individually distinguishable on the dark obsidian background. Users who had Moonlit Bloom selected fall back to the default Hellion Arctic on the first plugin load. A custom JSON copy of Moonlit Bloom dropped into pluginConfigs/HellionChat/themes/ keeps working as a user theme. Plus a cosmetic re-sort of the registry: insertion order now drives a deliberate Theme-Picker grid layout (3 columns) — blue family in row 1, purple to magenta in row 2, green/warm/classic in row 3, Synthwave Sunset alone in row 4 as a retro bonus.
2.4 KiB
2.4 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 inChat.SetChannel: der nativeUtf8Stringwird 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 jetztUsedChannelundTellTarget. 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.GlobalScaleund 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 eineIPlatformUtil-Indirektion. MessageStoresIsWine-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. - Built-in-Theme-Roster: Crystal Nocturne (Royal Sapphire + Electric Magenta auf Obsidian, von CRYSTALLITE) ersetzt Moonlit Bloom. User mit Moonlit Bloom als aktivem Theme fallen beim ersten Plugin-Load auf Hellion Arctic zurück.
Based on Chat 2 1.35.3 (upstream Infiziert90/ChatTwo, EUPL-1.2).