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.
This commit is contained in:
2026-08-19 08:35:18 +02:00
parent e0c9efca05
commit b388dcb2de
3 changed files with 81 additions and 4 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
<Project Sdk="Dalamud.NET.Sdk/15.0.0">
<PropertyGroup>
<!-- Independent versioning; see yaml changelog for upstream Chat 2 base -->
<Version>1.11.0</Version>
<Version>1.12.0</Version>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<!-- Use lock file to pin exact versions -->
+73
View File
@@ -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
+7 -3
View File
@@ -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.