From b388dcb2dedcf08accc12ca8a9c796d0e85b0429 Mon Sep 17 00:00:00 2001 From: Jon Kazama Date: Wed, 19 Aug 2026 08:35:18 +0200 Subject: [PATCH] chore(release): close the v1.12.0 cycle Version to 1.12.0 in the csproj, with the changelog and roadmap entries for the local state. Not published: the public release stays at v1.5.6, repo.json keeps its 1.5.6.0 manifest and all three download links are untouched. The changelog leads with the storage change rather than burying it under fixes. Until this release the unknown-channel failsafe was applied to known channels too, so an installation that had unticked channels and left the failsafe on was storing more than the grid said. From here the grid decides, which means those installations store less than they did yesterday. Nothing already written is touched, but a user who compares the database against last week should find the reason in the notes and not have to guess. Config version 25 is recorded there for the same reason. There is no migration behind it -- the storage rule changed shape, and the stamp says so. Known issues carry the honest tail: the database viewer and the emoji picker are still English, 245 orphaned resource keys remain as the inventory of what the v1.6.0 rebuild lost, and the licence text still contradicts itself between the About tab and the translated resources. --- HellionChat/HellionChat.csproj | 2 +- docs/CHANGELOG.md | 73 ++++++++++++++++++++++++++++++++++ docs/ROADMAP.md | 10 +++-- 3 files changed, 81 insertions(+), 4 deletions(-) diff --git a/HellionChat/HellionChat.csproj b/HellionChat/HellionChat.csproj index e732c5d..f3af9c2 100644 --- a/HellionChat/HellionChat.csproj +++ b/HellionChat/HellionChat.csproj @@ -1,7 +1,7 @@ - 1.11.0 + 1.12.0 enable enable diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index cbda130..7b11b20 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -11,6 +11,79 @@ releases as an overview and links to the release pages for details. --- +## [1.12.0] — unreleased (local only) + +The reconnection cycle. A commit during the v1.6.0 window layer rebuild removed the old tab system, +and the rebuild wired back roughly two thirds of it — 433 of 824 translation keys reached no line of +code, and four whole features had a saved setting but no way in. This release puts them back and +translates the settings window. **Not published** — the public release stays at v1.5.6. + +### Added + +- Message export is reachable again. Markdown, JSON and CSV, per channel or the whole database, + written atomically so a failed write cannot leave half a file behind. +- Retroactive cleanup is back, with a preview that counts what a run would delete before anything + is removed, and the Ctrl+Shift confirm in front of the actual delete. +- Database maintenance — integrity check, VACUUM, index rebuild — and the manual retention run + both have a control again. +- The tab editor returns: create, rename, reorder and delete tabs, with the channel selector and + the activity filter attached to each one. +- Pinning has a way in and a way back out. A pinned tab survives a restart and reopens with its + history. +- Eleven settings that steered real behaviour and had no control at all are reachable again. +- The settings window is translated into all 25 languages: 435 keys, held against the glossary the + plugin already used, with the game client's own word for a tell in each locale rather than a new + invention. +- Map flags and item links can be inserted into the input again, and the right-click menu is back + on the input field. + +### Fixed + +- **The channel grid now decides what is stored.** Until this release the unknown-channel failsafe + was applied to known channels as well, so a channel the user had unticked was still written when + that failsafe was on. See the note under _Changed_ — this is a behaviour change, not only a fix. +- The retroactive cleanup could never be applied. The preview takes the database lock itself, and + its release was counted as a mutation, so every preview was stale the instant it finished and the + apply button never appeared. +- VACUUM ran against an open reader on the primary connection and failed, after which the plugin + reported that nothing had been deleted — while everything had. The reader sits on its own + connection now. +- Deleting messages left the full-text index behind, so search kept returning rows that no longer + existed. +- A tell arriving from a popped-out partner hijacked the main window's active tab. +- The arrow keys walk the sent-message history again. +- The export wrote a UTF-8 BOM into JSON, which strict parsers reject; CSV keeps it, because + without it Excel guesses the code page. Enum values interpolated into JSON wrote the member name + and produced invalid output. +- Five strings in the settings and privacy tabs were still drawn as English literals. + +### Changed + +- **Behaviour change in storage.** Anyone who had unticked channels and left the unknown-channel + failsafe on was storing more than the channel grid said. From v1.12.0 the grid is authoritative, + so those installations store less. Nothing already in the database is touched. +- Every long-running database operation now goes through one gate instead of seven near-identical + background workers, each of which had to remember to take the lock. One of them did not. +- The export reads message text from the chunk lists rather than the flattened field, so links and + formatted segments survive the round trip. +- Config version 25. There is no migration step behind it: the v24 migration switched the privacy + filter off where it was on with nothing selected, and 25 only records that the storage rule + changed shape. + +### Known issues + +- The database viewer (`/hellionView`) and the emoji picker are still English on every client, and + one export dialog still carries the old Chat 2 branding in its title. +- 145 `Language.*` and 100 `HellionStrings` keys still have no caller. That is an inventory of + features lost in the v1.6.0 rebuild, not a delete list — timestamp layouts, duplicate-message + collapsing, the About texts, the novice network button and the honorific glow are all in there. +- `AboutTab` states GPL-3.0-or-later while the translated resources say EUPL-1.2. +- The full-text index is emptied on every deletion and only rebuilt at the next plugin start; until + then the database viewer searches more slowly. +- The first-run wizard, the input bar buttons and the message list itself are still stock ImGui. + +--- + ## [1.11.0] — unreleased (local only) The settings window, rebuilt on the widgets v1.10.0 introduced, plus the defects the rebuild kept diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 44f21d0..1b0b2ee 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -14,7 +14,7 @@ be a poor fit for the plugin's privacy-first scope during brainstorming. The published release is **v1.5.6**. Development since then runs as a UI rebuild towards v2.0.0 and is not published: the whole window layer is being rewritten from ImGui defaults to custom drawing. -Versions v1.6.0 through v1.11.0 are local development states, and `repo.json` deliberately keeps +Versions v1.6.0 through v1.12.0 are local development states, and `repo.json` deliberately keeps its download links on v1.5.6 so nobody updates into a partial state. Where it stands: @@ -28,8 +28,12 @@ Where it stands: doing it: three settings with no control, a pinned tell tab that never loaded its history, six switches that changed nothing, and dropdowns listing blank rows. Contrast is measured against the surface now rather than taken from the theme. -- **v1.11.0 onwards** — settings window, then the sidebar moving from tab rows to channel rows, - then typography and message cards. +- **v1.12.0** — the reconnection pass. The v1.6.0 window rebuild had left export, the tab editor, + database maintenance and pinning unreachable, and 433 of 824 translation keys with no caller. All + four features are back, the settings window is translated into 25 languages, and the channel grid + is authoritative over what gets stored. +- **v1.13.0 onwards** — typography and the message list: the font size ladder, channel headers and + message cards, then the sidebar moving from tab rows to channel rows. A tester beta follows once the visual pass is complete.