Pre-push grep-verification found four stale v1.4.3 mentions outside the
Slim-Rule history files:
- Plugin.cs schema-gate error message referenced v1.4.3 by name in both
the comment and the user-facing exception text. Schema stays at v16,
but the message now points at the current release
- README.md latest-release badge bumped to v1.4.4
- README.md version header bumped to v1.4.4
- README.md Project Status block rewritten for v1.4.4 with the threading
and IPC safety items as the lead
ROADMAP.md historical references to v1.4.3 are intentional (released-tag,
foundation-reference) and stay.
F3.2: a future FFXIV patch can introduce ChatTypes that aren't on any
existing whitelist, and the filter currently routes them silently
through the unknown-channel failsafe. Add a dedup HashSet (per runtime,
NonSerialized) so the first hit per ChatType logs a Warning. The
failsafe behaviour itself is unchanged — only visibility is new.
F3.1: future FFXIV patches can add new ChatTypes that aren't on any
existing whitelist. With the field defaulted to false a new install
would silently drop those channels until the user opts in. New configs
now start with PrivacyPersistUnknownChannels=true via a constant in
PrivacyDefaults. Existing configs keep their explicit choice — the
deserializer overrides the initializer, so no migration and no schema
bump.
F9.2: PreloadCache spawned a new Thread without IsBackground, which kept
the plugin unload blocked until the warmup finished (typically
100-300 ms). Setting IsBackground=true plus a named thread matches the
pattern already used in MessageManager (F6.1) and Plugin.RetentionSweep
(F9.3) since v1.4.0.
F4.1: replace the block threading comment with per-method banners that
read like documentation at the call site. F4.2: TryUnsubscribe now logs
Warning instead of Debug — a silent unsubscribe failure leaks a live
subscription across plugin reloads. F4.3: CurrentTitle gets a one-line
banner matching the same convention.
F2.1: ActiveTempTabCount was doing a LINQ Count under _tempTabsLock on
every read, including the hot-path HandleTell guard. Replace with an
Interlocked counter kept in sync with Config.Tabs from inside the
existing mutation paths (SpawnTempTab, DropOldestTempTab, OnLogout).
Initialize from the persisted Tabs list on Initialize() to handle
configs that already contain TempTabs from a prior session.
Plugin.cs SaveConfig snapshot-restore mutates Config.Tabs outside of
AutoTellTabsService; expose ResyncTempTabCounter() and call it after
AddRange so the counter stays consistent. Plugin.cs:168 crash-recovery
RemoveAll runs before Initialize() and is covered by the init snapshot.
yaml.changelog and repo.json.Changelog now use **vX.Y.Z** subblock
headers instead of the older **Hellion Chat X.Y.Z** form. Updated the
three regex patterns (yaml check, repo.json check, version counter)
and re-enabled Block C in preflight.sh — the SKIP workaround is no
longer needed.
Translate all remaining German sections in docs/CHANGELOG.md and
docs/ROADMAP.md to English for consistency across the repository.
Previously English sections left unchanged.
- SettingsOverview: replace dynamic key lookup via ResourceManager with
direct HellionStrings property access; switch static readonly array to
BuildCardDefs() method to ensure correct initialization order
- ThemeAndLayout: replace all ResourceManager.GetString calls with direct
HellionStrings/Language property access throughout DrawThemeSection()
and DrawChatColorsApplyBanner()
Also rework DE/EN string copy for a more natural, less formal tone in the German localization, and to better match the English source text. This includes
Changed HellionChat.yalm but need to Ajust the preflight script to not fail on this non-code change. TODO: Fix the script to only check for code changes in the future.
- Translated project documentation (LEARNING-JOURNEY, CONTRIBUTORS, AI_DISCLOSURE) to English for better accessibility.
- Standardized internal code documentation by converting XML-doc blocks to standard comment format.
- Cleaned up inline comments and removed redundant versioning metadata across the codebase.
- Refactored non-functional text elements to improve readability and maintain a consistent style.
Updated .editorconfig to set indent_style=space and indent_size=4 for C# files. Reformat all .cs files to apply the new indentation settings. No code logic changes, just whitespace reformatting.
also updated some comments in files in shorter and Precise way. No logic changes, just comment rewording for clarity and conciseness.
Add .editorconfig (LF, Allman), .prettierrc.json, .markdownlint.json,
.yamllint.yaml, .gitattributes and .prettierignore. Extend CI with
format and lint checks.
Add .prettierrc.json, .markdownlint.json, .yamllint.yaml, .gitattributes
Run CSharpier, Prettier and markdownlint across the entire codebase.
No logic changes — formatting, using order and line endings only.
The release.yml workflow uses https://gitea.com/actions/release-action@main.
Renovate's gitea-tags manager tries to resolve @main as a tag and 404s,
which crashes the entire renovate run (affecting all repos via autodiscover).
Repo-level ignoreDeps + a packageRule make this defense-in-depth alongside
the global ignoreDeps in /opt/renovate/config.js.