Дозакрыты находки ревью по слиянию сущностей

- Правило покрытия получило второй разряд (условный, как у точек), запрет
  вырождения формы и счёт содержательных элементов ряда: скелет из скаляров и
  ряд из null больше не затирают маршрут. Победитель внутри доставки стал
  функцией множества версий — общим помощником с точками, — а провенанс
  поднимается и при совпавшем хеше, иначе отложенная доставка возвращала витрину
  к прежнему содержимому.
- Одно поле не того типа больше не уносит сущность, а пропуски видны в учётной
  записи доставки (миграция 00008, NULL = «не измерялось»); каноническая форма
  считается один раз и вне транзакции; откат бинаря поверх новой схемы отказывает
  на старте; текст ошибки разбора не несёт значений из тела.
- Ревью кода профилем deep (девять проходов) нашло две регрессии и обе закрыты:
  безусловный второй разряд запирал законный досчёт навсегда, а выбор победителя
  был квадратичен по числу присланных версий одного ключа.
This commit is contained in:
av
2026-08-02 16:38:18 +03:00
parent 51a5272c96
commit 8331328134
52 changed files with 4921 additions and 481 deletions
+24
View File
@@ -74,6 +74,30 @@
"end": "2025-06-05 16:01:00 +0300"
},
"не объект вовсе",
{
"id": "00000000-0000-4000-8000-00000000000c",
"name": 5,
"start": "2025-06-05 18:00:00 +0300",
"end": "2025-06-05 18:10:00 +0300",
"route": [{"lat": 1}]
},
{
"id": "00000000-0000-4000-8000-00000000000d",
"name": "Конец числом",
"start": "2025-06-05 19:00:00 +0300",
"end": 0
},
{
"id": 42,
"name": "Идентификатор числом",
"start": "2025-06-05 20:00:00 +0300"
},
{
"id": "00000000-0000-4000-8000-00000000000e",
"name": "Начало числом при живом date",
"start": 1749100000,
"date": "2025-06-05 22:00:00 +0300"
},
{
"id": "00000000-0000-4000-8000-000000000009",
"name": "Незнакомое поле и дословные литералы",