fix(mxl-compile): выводить идентификатор раскладки как корректный UUIDv3

Идентификатор колоночной раскладки выводится из имени детерминированно — это
требование, а не оптимизация: случайный давал бы другой файл при каждой компиляции,
снэпшоты не совпадали бы сами с собой, а повторная сборка того же определения
порождала бы диф.

Но выводился он неправильно: сырой хэш форматировался как UUID, без битов версии и
варианта. В выдаваемом значении версия оказывалась 7, вариант 1 — таких не бывает,
то есть формально это был не UUID, а шестнадцатеричная строка нужной формы. Платформа
такое принимает (проверено сертификацией), но упереться в валидатор мы могли в любой
момент — ровно того же сорта риск, что сертификация уже ловила в этой ветке.

Теперь это штатный UUID версии 3 (имя + MD5, RFC 4122): для задачи «вывести
идентификатор из имени» существует именно он. Детерминированность сохранена, оба
порта дают одинаковое значение.

Проверено: тесты 53/53 на обоих рантаймах, verify-snapshots 23/23.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-08-10 20:07:02 +03:00
co-authored by Claude Opus 5
parent 61199cfe9e
commit 66c7364c37
4 changed files with 19 additions and 9 deletions
@@ -1,5 +1,5 @@
{
"name": "Колоночные раскладки: своя ширина колонок у группы строк (id выводится из имени детерминированно, ожидаемый GUID = md5 от \"узкая\")",
"name": "Колоночные раскладки: своя ширина колонок у группы строк (id выводится из имени детерминированно, ожидаемый = UUIDv3 от \"узкая\")",
"input": {
"columns": 3,
"columnWidths": { "1-3": 20 },
@@ -20,8 +20,8 @@
"fileContains": {
"file": "Template.xml",
"text": [
"<id>12320174-2b07-7806-1f7f-ec3834007fdb</id>",
"<columnsID>12320174-2b07-7806-1f7f-ec3834007fdb</columnsID>"
"<id>12320174-2b07-3806-9f7f-ec3834007fdb</id>",
"<columnsID>12320174-2b07-3806-9f7f-ec3834007fdb</columnsID>"
]
}
}
@@ -31,7 +31,7 @@
</columnsItem>
</columns>
<columns>
<id>12320174-2b07-7806-1f7f-ec3834007fdb</id>
<id>12320174-2b07-3806-9f7f-ec3834007fdb</id>
<size>3</size>
<columnsItem>
<index>0</index>
@@ -96,7 +96,7 @@
<rowsItem>
<index>1</index>
<row>
<columnsID>12320174-2b07-7806-1f7f-ec3834007fdb</columnsID>
<columnsID>12320174-2b07-3806-9f7f-ec3834007fdb</columnsID>
<c>
<i>0</i>
<c>