diff --git a/.github/forge-posts/v1.4.5.md b/.github/forge-posts/v1.4.5.md index 2e75cfd..0016a9a 100644 --- a/.github/forge-posts/v1.4.5.md +++ b/.github/forge-posts/v1.4.5.md @@ -6,17 +6,17 @@ versionsnatur: UX-Polish-Cycle **Hellion Chat 1.4.5 — UX und Robustheit** Sechster Sub-Patch der v1.4.x Polish-Sweep-Serie. Render-Fehler im Chat-Fenster werden jetzt sichtbar, der -First-Run-Wizard hat eine explizite Cancel-Schaltfläche, der Eingabe-Verlauf bleibt nicht mehr über Plugin-Reloads hinweg -liegen, und die Statusleiste klippt in schmalen Fenstern nicht mehr. +First-Run-Wizard hat eine explizite Cancel-Schaltfläche, der Eingabe-Verlauf bleibt nicht mehr über Plugin-Reloads +hinweg liegen, und die Statusleiste klippt in schmalen Fenstern nicht mehr. - **Fehler-Benachrichtigung im Chat-Fenster.** Wenn ein Render-Fehler in `DrawChatLog` auftritt, zeigt das Plugin jetzt eine einmalige Warning-Notification mit Verweis aufs `/xllog`, statt das Fenster stillschweigend leer zu lassen. Der Stack-Trace selbst geht weiter via `Plugin.Log.Error` ins Logfile. De-Dup über Per-Session-Bool, damit ein wiederkehrender Fehler die Notification-Stack nicht pro Frame neu vollkippt - **First-Run-Wizard trennt Accept und Close.** `OnClose` setzt nicht mehr stillschweigend `FirstRunCompleted=true`, - also lässt das X den Wizard schwebend zurück und er kommt beim nächsten Plugin-Reload wieder. Eine neue - „Später — Defaults behalten"-Schaltfläche im Footer ist der explizite Weg, ohne Profil-Auswahl rauszukommen. Strings - bilingual EN+DE plus Tooltip + also lässt das X den Wizard schwebend zurück und er kommt beim nächsten Plugin-Reload wieder. Eine neue „Später — + Defaults behalten"-Schaltfläche im Footer ist der explizite Weg, ohne Profil-Auswahl rauszukommen. Strings bilingual + EN+DE plus Tooltip - **Eingabe-Verlauf wird beim Plugin-Reload geleert.** `InputHistoryService.Reset` hängt jetzt in `Plugin.DisposeAsync` neben den anderen Pure-Memory-Cleanups, damit der statische Zustand aus der vorigen Session den nächsten Load nicht mehr erbt @@ -24,6 +24,5 @@ liegen, und die Statusleiste klippt in schmalen Fenstern nicht mehr. abzüglich Versions-Text unter 200 px fällt — vorher überlappte er die vier linken Slots. Ab ausreichender Breite taucht der Slot wieder auf - **Intern:** `FontManager` fällt auf System-Font zurück wenn die eingebettete Hellion-Font-Resource fehlt - (Broken-csproj-Pfad, nie ein Produktions-Build), plus expliziter Session-Only-Invariant-Kommentar für - Auto-Tell-Tabs in `Plugin.cs:167-168` mit einem TempTabCounter-Init-Pin in der Build-Suite. Kein Schema-Bump, keine - Migration + (Broken-csproj-Pfad, nie ein Produktions-Build), plus expliziter Session-Only-Invariant-Kommentar für Auto-Tell-Tabs + in `Plugin.cs:167-168` mit einem TempTabCounter-Init-Pin in der Build-Suite. Kein Schema-Bump, keine Migration diff --git a/README.md b/README.md index dc0395e..5c8be77 100644 --- a/README.md +++ b/README.md @@ -294,8 +294,8 @@ next plugin load; a new footer "Later — keep defaults" button is the explicit `InputHistoryService` clears on plugin dispose alongside the existing pure-memory cleanups, so the previous session's typed commands don't bleed into the next load. `FontManager.GetHellionFontBytes` becomes a `Try`-variant that falls back to the system-font path when the embedded resource is missing (broken csproj / dev build) instead of throwing through -the UiBuilder. The status bar drops the right-aligned version slot when the chat window is below the threshold needed -to fit all five slots without overlap. Internal: explicit session-only Auto-Tell-Tab invariant comment with a +the UiBuilder. The status bar drops the right-aligned version slot when the chat window is below the threshold needed to +fit all five slots without overlap. Internal: explicit session-only Auto-Tell-Tab invariant comment with a `TempTabCounter.InitFromList` pin in the Build-Suite. No schema bump, no migration. Sixth sub-patch of the v1.4.x polish sweep series (as of 2026-05-12). diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 273590b..20e8903 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -17,8 +17,8 @@ audit backlog. No schema bump, no migration. - `ChatLogWindow.Draw` now surfaces a one-shot warning notification when the draw path throws. The stack trace still goes to `/xllog` via `Plugin.Log.Error`; the notification is suppressed for the rest of the plugin session so a - recurring failure can't spam the notification stack frame-by-frame. Pattern-match to the existing - `Plugin.cs:505-516` migration-blocker notification + recurring failure can't spam the notification stack frame-by-frame. Pattern-match to the existing `Plugin.cs:505-516` + migration-blocker notification - `FirstRunWizard` splits accept from close. `OnClose` no longer silently sets `FirstRunCompleted`, so closing the X leaves the wizard pending and it reopens on the next plugin load. A new footer "Later — keep defaults" button is the explicit path to dismiss without picking a profile. Bilingual strings (EN + DE) plus a tooltip @@ -30,8 +30,8 @@ audit backlog. No schema bump, no migration. - `Plugin.cs:167-168` gets a 4-line reasoning comment around the session-only `RemoveAll(IsTempTab)`: tells are usually privacy-filtered, resurrecting an empty crashed-session tab would trigger DB reconstruction on the next load. `TempTabCounter.InitFromList` mirrors the post-strip semantic in the Build-Suite with a pinning test -- `StatusBar.cs` drops the version slot when the chat window's content width minus the version text is below 200 px. - The right-aligned version used to clip into the four left-side slots in narrow windows +- `StatusBar.cs` drops the version slot when the chat window's content width minus the version text is below 200 px. The + right-aligned version used to clip into the four left-side slots in narrow windows Modding & support: join Hellion Forge — diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 802353b..f87088d 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -38,8 +38,8 @@ lock-protected LINQ `Count` to an `Interlocked` counter kept in sync from inside `ResyncTempTabCounter()` after the mid-step `RemoveAll`. `HonorificService` carries per-method threading banners and `TryUnsubscribe`'s log level moves from Debug to Warning. `AutoTranslate.PreloadCache` is marked `IsBackground = true` so plugin unload no longer waits for it. `Configuration.IsAllowedForStorage` logs once per unknown ChatType via a -`NonSerialized` `HashSet`, and `PrivacyPersistUnknownChannels` default flips to `true` for new installs. No schema -bump, no migration. +`NonSerialized` `HashSet`, and `PrivacyPersistUnknownChannels` default flips to `true` for new installs. No schema bump, +no migration. ## v1.4.3 — Plugin-Load Async-Init + Repo-Cutover (released 2026-05-08)