chore: reflow drift from v1.4.4 closure

Whitespace and line-reflow artefacts from auto-formatter passes plus a
packages.lock.json indent normalisation. No content changes.
This commit is contained in:
2026-05-12 13:08:59 +02:00
parent 61d5a33683
commit 3e4601a0c8
4 changed files with 137 additions and 138 deletions
+10 -11
View File
@@ -17,19 +17,18 @@ spricht jetzt bei unbekannten ChatTypes.
IPC-Callback-Methode jetzt einen 1-Zeilen-Banner darüber, der den Thread-Kontext direkt am Call-Site benennt IPC-Callback-Methode jetzt einen 1-Zeilen-Banner darüber, der den Thread-Kontext direkt am Call-Site benennt
(framework only, framework scheduled, any). Mehr Hilfe für künftige Reviews als ein abstraktes Threading-Kapitel (framework only, framework scheduled, any). Mehr Hilfe für künftige Reviews als ein abstraktes Threading-Kapitel
- **Unsubscribe-Failure ist jetzt sichtbar.** `TryUnsubscribe` hat ein Honorific-Unsubscribe-Failure bisher als Debug - **Unsubscribe-Failure ist jetzt sichtbar.** `TryUnsubscribe` hat ein Honorific-Unsubscribe-Failure bisher als Debug
geloggt, was bei Standard-Loglevel verschluckt wurde. Eine geleakte Subscription kann den Service über geloggt, was bei Standard-Loglevel verschluckt wurde. Eine geleakte Subscription kann den Service über Plugin-Reloads
Plugin-Reloads hinweg leben lassen, also läuft der Log jetzt auf Warning hinweg leben lassen, also läuft der Log jetzt auf Warning
- **AutoTranslate-Warmup blockiert den Plugin-Unload nicht mehr.** Der Cache-Warmup-Thread war ohne `IsBackground=true` - **AutoTranslate-Warmup blockiert den Plugin-Unload nicht mehr.** Der Cache-Warmup-Thread war ohne `IsBackground=true`
unterwegs, was den Unload um 100-300 ms verzögern konnte. Pattern-Match zu MessageManager und RetentionSweep unterwegs, was den Unload um 100-300 ms verzögern konnte. Pattern-Match zu MessageManager und RetentionSweep (beide
(beide seit v1.4.0) seit v1.4.0)
- **Privacy-Filter loggt unbekannte ChatTypes.** Wenn FFXIV durch einen Patch einen neuen ChatType einführt der weder - **Privacy-Filter loggt unbekannte ChatTypes.** Wenn FFXIV durch einen Patch einen neuen ChatType einführt der weder in
in der Whitelist noch in den Defaults steht, wird er bisher silent durch den Failsafe geleitet. Jetzt loggt der der Whitelist noch in den Defaults steht, wird er bisher silent durch den Failsafe geleitet. Jetzt loggt der Filter
Filter einmalig pro Runtime eine Warning mit dem Type und dem Failsafe-Wert. Dedup über ein NonSerialized-HashSet, einmalig pro Runtime eine Warning mit dem Type und dem Failsafe-Wert. Dedup über ein NonSerialized-HashSet, also kein
also kein Log-Spam Log-Spam
- **Default-Flip für neue Installationen.** `PrivacyPersistUnknownChannels` startet bei neuen Configs jetzt auf `true`, - **Default-Flip für neue Installationen.** `PrivacyPersistUnknownChannels` startet bei neuen Configs jetzt auf `true`,
damit ein Patch-bedingt neuer ChatType nicht stillschweigend gedroppt wird bevor der User entscheiden kann. damit ein Patch-bedingt neuer ChatType nicht stillschweigend gedroppt wird bevor der User entscheiden kann. Bestehende
Bestehende Configs behalten ihre Wahl, weil der Deserializer den Initializer überschreibt. Keine Migration, kein Configs behalten ihre Wahl, weil der Deserializer den Initializer überschreibt. Keine Migration, kein Schema-Bump
Schema-Bump
Keine User-sichtbaren Funktions-Änderungen außer dem Default-Flip für neue Installationen. Settings, Themes, Tabs und Keine User-sichtbaren Funktions-Änderungen außer dem Default-Flip für neue Installationen. Settings, Themes, Tabs und
das Privacy-Verhalten für Bestand bleiben unangetastet. das Privacy-Verhalten für Bestand bleiben unangetastet.
+9 -9
View File
@@ -287,15 +287,15 @@ An optional submission to the Dalamud main plugin repo (in addition to the custo
## Project Status ## Project Status
**Version 1.4.4** — Threading and IPC safety polish on top of the v1.4.3 async-load foundation. The **Version 1.4.4** — Threading and IPC safety polish on top of the v1.4.3 async-load foundation. The
`AutoTellTabsService` hot-path getter now reads from an `Interlocked` counter instead of taking a lock on every `AutoTellTabsService` hot-path getter now reads from an `Interlocked` counter instead of taking a lock on every render
render frame, with a resync hook for the snapshot-restore path in `SaveConfig` and a pure-helper test mirror in the frame, with a resync hook for the snapshot-restore path in `SaveConfig` and a pure-helper test mirror in the Build-Suite
Build-Suite repo. The Honorific integration carries per-method threading banners so the framework-thread invariant is repo. The Honorific integration carries per-method threading banners so the framework-thread invariant is visible at the
visible at the call site, and an unsubscribe failure now logs at Warning instead of Debug — a leaked subscription call site, and an unsubscribe failure now logs at Warning instead of Debug — a leaked subscription across plugin reloads
across plugin reloads is exactly the kind of thing that should not be silent. The AutoTranslate warmup thread is is exactly the kind of thing that should not be silent. The AutoTranslate warmup thread is finally marked
finally marked `IsBackground = true`, matching the pattern used in `MessageManager` and `Plugin.RetentionSweep` since `IsBackground = true`, matching the pattern used in `MessageManager` and `Plugin.RetentionSweep` since v1.4.0. The
v1.4.0. The privacy filter logs once per unknown ChatType so a future patch's added channel does not drop off the privacy filter logs once per unknown ChatType so a future patch's added channel does not drop off the radar, and new
radar, and new installs default `PrivacyPersistUnknownChannels` to `true` as a failsafe; existing configs keep their installs default `PrivacyPersistUnknownChannels` to `true` as a failsafe; existing configs keep their explicit choice.
explicit choice. No schema bump, no migration. Fifth sub-patch of the v1.4.x polish sweep series (as of 2026-05-12). No schema bump, no migration. Fifth sub-patch of the v1.4.x polish sweep series (as of 2026-05-12).
Hellion Chat is a standalone plugin, no longer a fork in the repository sense. Fully completed: Hellion Chat is a standalone plugin, no longer a fork in the repository sense. Fully completed:
+11 -11
View File
@@ -20,21 +20,21 @@ unknown ChatType shows up.
in sync with `Config.Tabs` from inside the existing mutation paths. `Initialize()` seeds the counter from the in sync with `Config.Tabs` from inside the existing mutation paths. `Initialize()` seeds the counter from the
persisted Tabs list, and `SaveConfig`'s snapshot-restore path calls a new `ResyncTempTabCounter()` so the mid-step persisted Tabs list, and `SaveConfig`'s snapshot-restore path calls a new `ResyncTempTabCounter()` so the mid-step
`RemoveAll` doesn't leave the counter drifting. Pure-helper test mirror lives in the Build-Suite repo `RemoveAll` doesn't leave the counter drifting. Pure-helper test mirror lives in the Build-Suite repo
- `HonorificService` per-method threading banners replace the block comment at the bottom of the file. Each IPC - `HonorificService` per-method threading banners replace the block comment at the bottom of the file. Each IPC callback
callback (`TryInitialPull`, `OnTitleChanged`, `OnReady`, `OnDisposing`, `TryUnsubscribe`) and the `CurrentTitle` (`TryInitialPull`, `OnTitleChanged`, `OnReady`, `OnDisposing`, `TryUnsubscribe`) and the `CurrentTitle` field carry a
field carry a one-line `// Thread:` annotation so the framework-thread invariant is visible at the call site one-line `// Thread:` annotation so the framework-thread invariant is visible at the call site
- `TryUnsubscribe` log-level upgraded from `Debug` to `Warning`. A silent unsubscribe failure leaks a live subscription - `TryUnsubscribe` log-level upgraded from `Debug` to `Warning`. A silent unsubscribe failure leaks a live subscription
across plugin reloads, which is exactly the kind of issue that should not be at Debug across plugin reloads, which is exactly the kind of issue that should not be at Debug
- `AutoTranslate.PreloadCache` thread now has `IsBackground = true` and a thread name. Without `IsBackground` the - `AutoTranslate.PreloadCache` thread now has `IsBackground = true` and a thread name. Without `IsBackground` the warmup
warmup blocks plugin unload (typically 100-300 ms). Pattern-match to `MessageManager` (F6.1) and `Plugin.RetentionSweep` blocks plugin unload (typically 100-300 ms). Pattern-match to `MessageManager` (F6.1) and `Plugin.RetentionSweep`
(F9.3), both since v1.4.0 (F9.3), both since v1.4.0
- `Configuration.IsAllowedForStorage` adds a one-line `Plugin.Log.Warning` for the first occurrence of any ChatType - `Configuration.IsAllowedForStorage` adds a one-line `Plugin.Log.Warning` for the first occurrence of any ChatType that
that isn't in `PrivacyPersistChannels`. Dedup via a `NonSerialized` `HashSet<ChatType>`, so the warning fires once isn't in `PrivacyPersistChannels`. Dedup via a `NonSerialized` `HashSet<ChatType>`, so the warning fires once per
per runtime — not once per frame, not once per install. Failsafe routing through `PrivacyPersistUnknownChannels` runtime — not once per frame, not once per install. Failsafe routing through `PrivacyPersistUnknownChannels` is
is unchanged unchanged
- `PrivacyPersistUnknownChannels` field default flipped from `false` to `true` for new installs via a constant in - `PrivacyPersistUnknownChannels` field default flipped from `false` to `true` for new installs via a constant in
`PrivacyDefaults`. Existing configs keep their explicit choice — the deserializer overrides the initializer. No `PrivacyDefaults`. Existing configs keep their explicit choice — the deserializer overrides the initializer. No schema
schema bump, no migration, no first-run banner bump, no migration, no first-run banner
Modding & support: join Hellion Forge — <https://discord.gg/X9V7Kcv5gR> Modding & support: join Hellion Forge — <https://discord.gg/X9V7Kcv5gR>