# Release v1.5.0

Previous tag: `v1.4.0`  
Diff range: `v1.4.0..v1.5.0`

## Summary
This release focuses on Inspur/Kaytus parsing quality, PCI device model resolution without hardcoded maps, and correctness of GPU/Network/Serial/Firmware presentation in UI and exports.

## What's New
- Added Redis RDB enrichment for Inspur/Kaytus runtime fields:
  - GPU serial/firmware/UUID and telemetry enrichment.
  - NIC firmware/serial/part-number enrichment.
  - PCIe storage controller serial enrichment from Redis RAID sections.
- Added robust PCI IDs integration:
  - `pci.ids` moved to repository and embedded lookup logic reworked to load external IDs without hardcoded Go maps.
  - Added `pciutils/pciids` git submodule at `third_party/pciids`.
  - Added sync script `scripts/update-pci-ids.sh` and `make update-pci-ids`.
- Added parser merge/enrichment path for PCIe inventory:
  - improved BDF normalization and merge between `asset.json` and REST sections.
  - better vendor/model resolution for GPU/NIC/PCIe devices via `pci.ids`.

## Improvements
- GPU model normalization to avoid generic/hex placeholders in output when PCI IDs are available.
- Device Inventory UI deduplication and improved GPU/NIC fallback rendering from PCIe data.
- Firmware API now includes GPU firmware fallback from GPU inventory when not present in `hardware.firmware`.
- CSV serial export coverage expanded across hardware sections and serial value validation improved.

## Fixes
- Fixed duplicate GPU display rows in Device Inventory.
- Fixed unresolved IDs for key devices (including H200 class devices and known NIC/HBA IDs) through unified PCI IDs lookup path.
- Fixed missing GPU firmware visibility in firmware section.
- Fixed serial list naming fallback to avoid generic labels like `Display Controller` when specific model/part is known.

## Commits Since `v1.4.0`
- `758fa66` feat: improve inspur parsing and pci.ids integration
