chore(release): close the v1.14.0 cycle

Version to 1.14.0 in the csproj, changelog and roadmap for the local state. Not
published: repo.json stays on 1.5.6.0, links untouched.

The changelog leads with what the row became and is honest about how it got
there: every style decision in this cycle was made by looking at variants in the
lab, in-game, against the live theme -- and the two recurring traps of the day
(the RGBA/ABGR contrast swap, popups that do not size to their content) each
left a guard behind rather than just a fix.

Smoke-tested continuously by Flo through the evening rather than at a single
gate: the contrast bug, the clipped menu, the hover speed and the seam hardness
were all his catches, live, and each is named in the log where it was fixed.
This commit is contained in:
2026-08-19 19:35:35 +02:00
parent 9e62ed762d
commit dcc8ff1867
3 changed files with 85 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.13.0</Version>
<Version>1.14.0</Version>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<!-- Use lock file to pin exact versions -->
+77
View File
@@ -11,6 +11,83 @@ releases as an overview and links to the release pages for details.
---
## [1.14.0] — unreleased (local only)
The input row. It was the one surface a user actually works in and it spoke three
shape languages at once — a rounded pill, a square field, five filled default
buttons — sitting directly above a status bar that is rounded throughout. This
release makes the row one thing, and it teaches the popups the window's own
shapes while it is in there. **Not published** — the public release stays at
v1.5.6.
### Added
- A style lab under `/hellion lab`: variants of UI elements side by side, drawn
in real ImGui against the live theme. Permanent, as a dev playground — its
radio buttons default to whatever shipped, so the window doubles as a record
of which variant won. Every decision in this release was made by looking at it
in-game rather than at a drawing.
- `PopupRow`, the row a popup is made of: soft hover fill, a two-pixel accent
bar on the active entry — the sidebar row's shape, which is also exactly what
Character Select+ draws for its own popup entries. The channel picker and the
new input-row menu are built from it.
- A colour-channel guard in preflight (Block G). `EnsureContrast` works in ABGR,
theme colours are RGBA, both are `uint`, and the mistake of feeding one into
the other happened six times in a single day — each found only by a human
staring at unreadable text. The guard flags any raw theme member reaching the
helper; on its first real run it caught three cases a hand-written search had
missed minutes earlier.
### Changed
- The five filled buttons in the input row are two ghost buttons and a menu.
Symbols stay outside because they are used mid-sentence; theme, settings,
screenshot mode and hide moved in. The ghosts are flat at rest and glow on
hover — the first caller `DrawGlowBorder` ever had.
- The screenshot toggle was allowed into the menu only because its state moved
to the status bar first, as an accent camera pill that shows while the mode is
on. Knowing what the screen shows before the screenshot key is pressed is the
entire point of the mode; a state behind a closed menu answers nothing.
- The input field paints its own rounded surface and hands ImGui a transparent
frame, so the widget draws only text and caret. Focus is a two-pixel accent
rail on the left edge — the same mark rows and popups use. The field is about
a hundred pixels wider, reclaimed from the button reserve.
- The channel pill is chamfered, the corner language of the segmented control,
with a faint white depth gradient.
- The channel header traded its surface plate for a tenth-opacity accent wash.
The plate was the exact shape the settings window abandoned in v1.11.0 — it
reads fine on blue themes and vanishes on violet ones.
- The sidebar softened, on tester feedback that the transition to the chat field
was too hard: the full-width border line under every row is a fading rule now,
the gap between list and messages carries a surface wash instead of two hard
edges, and the selected tab bridges across it so it touches the conversation
it selects.
- Hover fades run at a quarter of their old speed with a smoothstep curve —
soft start, soft landing. 14/s in was judged light speed; it is 3/s now, and
a test guards against drifting back. Every hover in the plugin inherits both
changes through the one shared code path.
### Fixed
- Popups size themselves from their widest visible entry. Both new popups
carried a guessed minimum width, and German outran it within a day —
`Schnellauswahl` and `Chat ausblenden` were clipped mid-word.
- Popup entry text was unreadable at rest on several themes and only became
legible on hover: the RGBA-into-ABGR mistake again, in `PopupRow` and three
spots in the lab. Fixed, and the new preflight guard exists so the seventh
occurrence dies in CI rather than in a screenshot.
- The pill label was raw theme text on an accent fill with no contrast check.
### Known issues
- The channel header still recomputes its widths every frame rather than on the
status bar's one-second tick.
- `Metrics.Scale` still calls a Dalamud property that is marked obsolete.
- The first-run wizard is now the last surface drawn in ImGui defaults. It is
the next cycle.
---
## [1.13.0] — unreleased (local only)
Typography. The message list was the last surface still drawn in ImGui defaults,
+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.13.0 are local development states, and `repo.json` deliberately keeps
Versions v1.6.0 through v1.14.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:
@@ -35,8 +35,12 @@ Where it stands:
- **v1.13.0** — typography. Named type roles instead of one size, a channel header above the
conversation, timestamps in a column of their own, and rows with a surface. Screenshot mode
reached one of four surfaces that draw a tab name and now reaches all of them.
- **v1.14.0 onwards** — the input bar, then the first-run wizard: the last two surfaces still
drawn in ImGui defaults.
- **v1.14.0** — the input row: two ghost buttons and a menu where five filled defaults sat, a
field with its own surface and focus rail, popups built from the sidebar's row shape, and a
softened seam between the tab list and the conversation. Plus a style lab under
`/hellion lab` and a preflight guard for the RGBA/ABGR contrast trap.
- **v1.15.0** — the first-run wizard, the last surface still drawn in ImGui defaults, and the
first thing a tester sees.
The sidebar is no longer on this list. Earlier drafts had it moving from tab rows to channel
rows, but both reasons for that are gone: it was flat and unstyled when the idea was written,