chore(release): close the v1.13.0 cycle
Version to 1.13.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 screenshot-mode gap rather than with the typography, because that is the part that changes what a user's own screenshots contain. An auto-tell tab is named "Player@World", and three of the four surfaces that draw a tab name had no rule about it -- so a picture of the default view named the conversation partner while every message below it was anonymised. Anyone who has shared a screenshot from an older build should know that. Config version 26 is in there for the same reason. Its migration marks existing tell tabs as partner-named, and it says plainly what it cannot do: a tab promoted to permanent before this version keeps its name and loses every marker, so nothing in the stored data says where that name came from. Known issues carry the honest tail: the header recomputes its widths every frame instead of on the status bar's tick, and all three font handles now rasterise the full glyph range -- the cost of letting the channel name use the smaller face without breaking on an umlaut. The migration self-test asserts what v26 actually does now, rather than only that the version number moved.
This commit is contained in:
@@ -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.12.0</Version>
|
||||
<Version>1.13.0</Version>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<!-- Use lock file to pin exact versions -->
|
||||
|
||||
@@ -25,6 +25,23 @@ internal sealed class ConfigMigrationV26Step : ISelfTestStep
|
||||
return SelfTestStepResult.Fail;
|
||||
}
|
||||
|
||||
// What v26 exists to prevent: a tab whose name came from a conversation
|
||||
// partner but is not marked as such, because screenshot mode reads that
|
||||
// mark to decide whether the name may be shown. Anything still holding a
|
||||
// tell binding or the temp flag should have been marked on load.
|
||||
foreach (var tab in Plugin.Config.Tabs)
|
||||
{
|
||||
var looksLikeAPartner = tab.IsTempTab || tab.TellTarget?.IsSet() == true;
|
||||
if (!looksLikeAPartner || tab.NameCameFromPartner)
|
||||
continue;
|
||||
|
||||
ImGui.Text(
|
||||
$"Tab '{tab.Name}' carries a tell binding but is not marked partner-named "
|
||||
+ "— the v26 migration did not reach it, and screenshot mode will show it"
|
||||
);
|
||||
return SelfTestStepResult.Fail;
|
||||
}
|
||||
|
||||
// The state the v24 migration exists to prevent: filter on, failsafe on,
|
||||
// nothing picked. Under the corrected rule that combination stores no
|
||||
// messages at all, so reaching /xlperf in it means the migration did not
|
||||
|
||||
@@ -11,6 +11,86 @@ releases as an overview and links to the release pages for details.
|
||||
|
||||
---
|
||||
|
||||
## [1.13.0] — unreleased (local only)
|
||||
|
||||
Typography. The message list was the last surface still drawn in ImGui defaults,
|
||||
and it is the only one a reader looks at line by line rather than in glances. It
|
||||
now has named type roles instead of a single size, a header above the
|
||||
conversation, and rows that read as rows. **Not published** — the public release
|
||||
stays at v1.5.6.
|
||||
|
||||
### Added
|
||||
|
||||
- A header above the conversation: the channel name in tracked small caps with
|
||||
the tab's own icon, and the home world on the right. It stays out of the way
|
||||
where the name is already on screen — the top-tab strip carries it, and so does
|
||||
a pop-out's title bar — and disappears entirely when the window is too short to
|
||||
leave room for readable chat.
|
||||
- Timestamps sit in a column of their own, so sender names line up underneath
|
||||
each other instead of starting wherever the previous stamp happened to end.
|
||||
- Local and server time in the status bar, in the game's own LT/ST notation.
|
||||
Server time comes from the game rather than from a local UTC conversion, so it
|
||||
follows whatever Square Enix does with it.
|
||||
- Rows have a surface: a wash from the left and a two-pixel accent bar, fading in
|
||||
and out rather than snapping.
|
||||
- The sender is set in a heavier cut of the same face. There is no bold in the
|
||||
plugin, so the weight comes from a denser rasterisation — which means it has no
|
||||
effect when both font settings are off and the game's own face draws.
|
||||
- System messages are italic. Nobody said them; it is the game talking.
|
||||
- Card density finally differs from compact: the sender on its own line, the body
|
||||
indented onto the text column, and air between messages.
|
||||
- A camera button in the input row for screenshot mode, lit while active. The
|
||||
setting had only ever existed in the right-click menu on a player name, which
|
||||
for a privacy feature is close to not existing at all.
|
||||
- `Hide timestamps when redundant` is reachable. It has shipped with translations
|
||||
since 1.5.6 and never had a control.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Screenshot mode reached one surface out of four.** An auto-tell tab is named
|
||||
`Player@World`, and the sidebar, the tab strip and a pop-out's window title all
|
||||
drew that untouched — so a screenshot of the default view named the
|
||||
conversation partner while every message below it was anonymised. All four
|
||||
surfaces now share one rule, and the placeholder is re-salted on every plugin
|
||||
load so two screenshots taken weeks apart cannot be tied together by it.
|
||||
- `Show timestamps` in the tab editor does something again. It had two readers in
|
||||
1.5.6 and lost both when the old chat window was retired in May.
|
||||
- Four settings could always leave the row-height cache stale and never did: the
|
||||
italic size, the italic toggle, and the two font toggles. The last two were the
|
||||
quiet ones — both size fields default to the same value, so nothing in the
|
||||
cache key moved while the glyph widths underneath it did. The clock format and
|
||||
the per-tab timestamp switch join them.
|
||||
- The word-wrap calculation was handed the UI scale where ImGui wanted the ratio
|
||||
between rendered and baked size. The two are the same number until a second
|
||||
size enters a line, which is exactly what this release introduces.
|
||||
- Emoji and other characters outside the basic plane no longer break a tab name
|
||||
drawn in tracked caps.
|
||||
|
||||
### Changed
|
||||
|
||||
- **Config version 26.** The migration marks existing tell tabs as
|
||||
partner-named, which is what screenshot mode reads. Tabs promoted to permanent
|
||||
before this version cannot be recovered — promotion clears every marker and
|
||||
keeps the name — but renaming one has the same effect.
|
||||
- The header replaced the pop-out's plain title row. With the title bar on it
|
||||
shows only the world, because the title already carries the name.
|
||||
- The channel header gave up its clock when both times moved to the status bar.
|
||||
Three copies of the same number on one screen is two too many.
|
||||
- All three custom font handles now rasterise the full glyph range. The smaller
|
||||
one started with an ASCII-sized range on the assumption it would only draw
|
||||
clocks and world names; a single umlaut in a tab name would have broken it.
|
||||
|
||||
### Known issues
|
||||
|
||||
- The channel header recomputes its widths every frame rather than on the status
|
||||
bar's one-second tick. Measurable, not measured.
|
||||
- `Metrics.Scale` still calls a Dalamud property that is marked obsolete.
|
||||
- The database viewer and the emoji picker are still English on every client.
|
||||
- 245 orphaned resource keys remain as the inventory of what the v1.6.0 rebuild
|
||||
lost.
|
||||
|
||||
---
|
||||
|
||||
## [1.12.0] — unreleased (local only)
|
||||
|
||||
The reconnection cycle. A commit during the v1.6.0 window layer rebuild removed the old tab system,
|
||||
|
||||
+6
-3
@@ -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.12.0 are local development states, and `repo.json` deliberately keeps
|
||||
Versions v1.6.0 through v1.13.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:
|
||||
@@ -32,8 +32,11 @@ Where it stands:
|
||||
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.
|
||||
- **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 sidebar moving from tab rows to channel rows, then the first-run
|
||||
wizard and the input bar, which are the last two surfaces still drawn in ImGui defaults.
|
||||
|
||||
A tester beta follows once the visual pass is complete.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user