chore(release): bump assembly version to 1.10.0

Style foundation cycle closed. Smoke tests green across the sidebar, the tab
strip, the status bar, the theme preview and both message densities.

Download links stay on v1.5.6 deliberately: v1.6.0 through v1.10.0 are local
development states and nobody should update into one. The README badge stays
there too, since it points at the published release.

The roadmap now reflects the actual sequence -- the old "next cycle" entry
still named v1.5.7 ad-block, which has been behind the v2.x UI rebuild since
May.

Verified file by file: csproj, repo.json (both assembly versions, links
untouched), CHANGELOG, ROADMAP. Four TODOs remain in the tree, all pre-existing
and none from this cycle.
This commit is contained in:
2026-08-18 10:13:19 +02:00
parent 2686a8f74b
commit af242db6f6
4 changed files with 80 additions and 5 deletions
+56
View File
@@ -11,6 +11,62 @@ releases as an overview and links to the release pages for details.
---
## [1.10.0] — unreleased (local only)
The style foundation the v2.x plan has been carrying since May. Custom-drawn chrome instead of
ImGui defaults, and a layout layer that survives display scaling. **Not published** — the public
release stays at v1.5.6.
### Added
- Sidebar rows now have surfaces: the active tab gets a raised fill and a 2px accent bar, hover
fades in and back out, and rows sit flush with separators between them.
- Top tabs are drawn rather than borrowed from ImGui selectables: their own height, an accent
underline on the active one, and three text states.
- Unread markers are count badges in the accent colour rather than a red dot. Red reads as an
error; an unread message is not one.
- Status bar slots are pills — channel with its status dot, privacy with its lock, counts, tells,
and the version right-aligned. Each slot drops out on its own when the window gets too narrow.
- Widget gallery under `/hellion widgets` (debug builds only) showing every drawn widget in its
states.
### Fixed
- Compact message rows assumed a constant height and were clipped with a fixed 18px. They wrap, so
they are not constant, and the real single line is 17px at the default font — the list drifted
against the scrollbar. Both densities now plan from measured heights.
- The message height cache ignored display scaling, which feeds word wrapping. Changing the scale
left every cached row stale.
- Layout constants across the sidebar, input bar, honorific header and message list did not scale.
At 150% the text grew and the boxes did not; the quick buttons stopped fitting their column.
- Vertical offsets were frozen values that only centred correctly at one font size. They are
measured now.
- The hover sheen kept its own timestamp map and only cleared it on un-hover, so a row that
disappeared while hovered leaked its entry until the plugin reloaded.
- Quick-button tooltips rendered inside the icon font, which has no ASCII glyphs, and came out as
empty boxes. They are also localised now.
- The theme preview in settings had been showing surfaces, an accent bar and an unread marker that
the real sidebar never drew. Both sides match now, and the preview reads the same colour tokens.
### Changed
- Hover is a held value that rises at 14/s and falls at 8/s, rather than a one-shot sweep that
stopped after 0.65s while the pointer was still there.
- The active surface token went from 10% to 25% toward the primary colour. At 10% it was
indistinguishable from an idle row.
- Row fills follow the window's own opacity, so the sidebar no longer sits as a solid block inside
a translucent window.
### Internal
- New style layer: `Metrics` (scale-aware layout values), `HoverState` (held hover per element),
and five drawn widgets — Row, Badge, IconButton, LineDivider, Pill.
- Pure halves split out for the build suite: `MetricsMath`, `HoverMath`, `WidgetGeometry`,
`LayoutFingerprint`.
- Test suite 829 → 892, and `StatusBarCacheTests` is back in the build after sitting in the
exclusion block.
## [1.9.0] — unreleased (local only)
Polish, tester-beta preparation and a concurrency hardening pass. **Not published** — the public
+21 -2
View File
@@ -10,9 +10,28 @@ be a poor fit for the plugin's privacy-first scope during brainstorming.
---
## Next Cycle
## Current development (unreleased)
**v1.5.7 — Ad-Block / Spam-Filter** is the next planned scope: the hybrid ad-block and
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.10.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:
- **v1.6.0 to v1.8.x** — new window layer, settings window, channel pop-outs, and the restoration
pass that brought v1.5.6 behaviour back onto it.
- **v1.9.0** — polish and a concurrency hardening pass.
- **v1.10.0** — the style foundation: a scale-aware layout layer, held hover state, and five drawn
widgets, applied to the sidebar, the tab strip and the status bar.
- **v1.11.0 onwards** — settings window, then the sidebar moving from tab rows to channel rows,
then typography and message cards.
A tester beta follows once the visual pass is complete.
## After that
**v1.5.7 — Ad-Block / Spam-Filter** remains the next feature scope: the hybrid ad-block and
spam-filter cycle, combining a lightweight built-in filter with optional `NoSoliciting`
IPC integration. Plugin Integrations Wave 2-6 (Context-Menu, NotificationMaster, Moodles,
ExtraChat, XIVIM Quick-DM) follows.