Решили: ссылки на токены темы проверять механически (скриптом по var(--gm-*) против
определений в tokens.*.uss), а не полагаться на то, что поломка будет видна.
Почему: UI Toolkit на неизвестный токен не ругается и не подставляет фолбэк — он молча
отбрасывает всю декларацию. Ни в консоли, ни при импорте USS ничего не появляется. При перекраске
палитры 04.08 проверка нашла четыре таких места, и все они прожили в дереве с крупных влитий (#21,
#22), то есть месяцами: три var(--gm-color-brass-700) — токена с таким именем в теме нет вообще
(есть --gm-brass-700), из-за чего ручка скроллера консоли и подчёркивание её вкладки просто не
рисовались, а фокус вкладки был невиден; и border-radius: var(--gm-radius-1) у чипа при том, что в
теме объявлен только --gm-radius-0. Альтернатива — «заметим глазами» — как раз и провалилась:
отсутствующее подчёркивание выглядит как «так задумано», а не как баг.
Грабли: проверка «ссылка без определения» обязана вырезать комментарии перед разбором. Первый
прогон дал ложные срабатывания ровно на тех строках, где в пояснении к починке был процитирован
сломанный var(...), и это читалось как «правка не применилась».
Вторая, дороже: при смене светлоты фона числа контраста в комментариях становятся ложью, а компилятор об этом не скажет. В теме их было записано три штуки как обоснования выбора ступеней («3.43 к панели», «4.37», «1.67»). После подъёма рампы выключенный текст давал 2.85, тихий контур 2.56, деструктив 2.18 — всё ниже нормы 3.0 для нетекстовых, а комментарии продолжали утверждать обратное. Пересчитывать их надо в том же диффе, иначе следующий читатель поверит цифре.
Третья: литерал с альфой в семантике не едет за рампой. --gm-color-console-surface задан
rgba намеренно (USS не умеет rgba(var(--токен), 0.97)), и при смене ink консоль осталась бы
единственной чёрной поверхностью среди тёплых. Там же нашёлся чисто белый трек скроллера —
единственная холодная вещь в тёплом интерфейсе; в полупрозрачном элементе такое незаметно в
одиночку и вылезает рядом с панелями.
Владелец правды: Assets/_Project/UI/Theme/tokens.primitives.uss,
Assets/_Project/UI/Theme/tokens.semantic.uss, тест PaletteSnapshotTests.