feat(D.2b): flip vitals to the LayoutDesc importer; retire hand-authored vitals.xml

The importer (proven pixel-identical at the 2026-06-15 A/B gate) is now the
default vitals window when ACDREAM_RETAIL_UI=1 — data-driven from LayoutDesc
0x2100006C. Removed: the hand-authored vitals.xml build path, the asset file
(recoverable from git history), and the now-obsolete ACDREAM_RETAIL_UI_IMPORTER
flag (RuntimeOptions param + parse + 2 tests). The window is user-positioned at
(10,30) and movable; resize stays off — the dat stacked-vitals layout is fixed-
size (chrome edges near-pinned), faithful grip/dragbar resize is Plan 2.
MarkupDocument/UiNineSlicePanel remain for the chat window + plugin panels.

AcDream.App builds 0/0; AcDream.App.Tests 352 passed / 1 skipped / 0 failed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Erik 2026-06-15 16:30:24 +02:00
parent 5ac9d8c19c
commit bf77a23ad3
4 changed files with 37 additions and 89 deletions

View file

@ -25,29 +25,4 @@ public class RuntimeOptionsRetailUiTests
Assert.False(opts.RetailUi);
Assert.Null(opts.AcDir);
}
[Fact]
public void Parse_ReadsRetailUiImporter_WhenSetToOne()
{
var env = new Dictionary<string, string?>
{
["ACDREAM_RETAIL_UI_IMPORTER"] = "1",
};
var opts = RuntimeOptions.Parse("dats", k => env.GetValueOrDefault(k));
Assert.True(opts.RetailUiImporter);
}
[Fact]
public void Parse_DefaultsRetailUiImporterOff_WhenUnsetOrOtherValue()
{
// Unset → false.
Assert.False(RuntimeOptions.Parse("dats", _ => null).RetailUiImporter);
// Non-"1" values → false (mirrors RetailUi / other IsExactlyOne flags).
var envOther = new Dictionary<string, string?>
{
["ACDREAM_RETAIL_UI_IMPORTER"] = "true",
};
Assert.False(RuntimeOptions.Parse("dats", k => envOther.GetValueOrDefault(k)).RetailUiImporter);
}
}