# logpile v1.21

Дата релиза: 2026-06-15
Тег: `v1.21`

## Что нового

### Inspur/Kaytus (onekeylog) — серийные номера дисков из SOLHostCapture.log

Когда RAID-контроллер (например, Microchip PM8204-2GB) подключён напрямую через PCIe,
BMC возвращает пустой массив в секции `RESTful HDD info`. Серийники дисков теперь
восстанавливаются из вывода smartd в `SOLHostCapture.log`:

- Обрабатываются оба экземпляра файла (`log/sollog/` и `runningdata/var/sollog/`),
  серийники дедуплицируются по обоим источникам.
- Три прохода обогащения: совпадение по модели → позиционное заполнение пустых
  backplane-слотов → добавление новых записей.
- Определяется тип (SSD/HDD), производитель, прошивка и ёмкость.

### Inspur/Kaytus — корректное определение live-сбора на NF-серверах

NF-серверы хранения (например, NF5280M6) не имеют GPU-топологии, из-за чего
Redfish-коллектор раньше не мог идентифицировать их как Inspur и переходил в
режим fallback с AMI-профилем, пробуя несуществующие пути `/Oem/Ami`.

Добавлено определение по `SystemManufacturer` / `ChassisManufacturer`: значение
`"Inspur"` теперь даёт 60 очков — достаточно для входа в matched-режим без
GPU-сигналов.

### Inspur/Kaytus — исправление IDL-событий GPU (Assert/Deassert)

- Deassert-события больше не отбрасываются как дубликаты Assert — в ключ дедупликации
  добавлен `EventType`.
- Deassert корректно снимает критический статус GPU: раньше GPUы оставались в Critical
  даже после сброса аварии.
- В экспорт Reanimator добавлена секция `bmc_event_summary` — дедуплицированная таблица
  критических и предупреждающих событий со статусом Active/Resolved на основе пар
  Assert/Deassert.

### UI — кнопка PDF

Добавлена кнопка «PDF» в шапку отчёта. При нажатии отчёт открывается в новой
вкладке, откуда можно сохранить в PDF через системный диалог печати браузера.

### Внутренние изменения (bible-контракты)

- Идентификаторы нормализованы через `strings.EqualFold` (H3C-парсер).
- CSV-экспорт: UTF-8 BOM + разделитель `;`.
- Все русскоязычные строки в исходниках переведены на английский (ADL-007).
- `Job` расширен полями `Type`, `Message`, `Result`.
- List-эндпоинты обёрнуты в конверт `{items, total_count, page, per_page, total_pages}`.
- Страницы ошибок рендерят footer с версией.
- Логирование переведено на `log/slog` со структурированными атрибутами.

### pci.ids обновлён

База идентификаторов PCI-устройств обновлена до актуальной версии от 2026-06-15.

## Запуск на macOS

Снимите карантинный атрибут через терминал: `xattr -d com.apple.quarantine /path/to/logpile-darwin-arm64`
После этого бинарник запустится без предупреждения Gatekeeper.
