8e7f22077d8abb80268911f577cd508d7a0f3b5a
Verified against reanimator/core: it keys a NIC component on serial → MAC → synthetic(slot). A BMC dump carrying the card serial collapses both ports into one serial-keyed component, while a live-CD bundle (no serial) keeps two MAC-keyed components, so alternating the two sources produced a spurious COMPONENT_REMOVED + 2x COMPONENT_INSTALLED every time. Emitting the per-port NetworkAdapter entries with an empty serial makes both sources key on the port MAC and yield the same two components. The card serial still reaches the export via the FRU record and the legacy NIC entry. Also records ADL-062 findings from reading the ingesting audit tool: it persists only vendor/model/serial per component (no size/speed/link/clock/wattage), so the remaining one-sided field diffs between the two bundles cannot generate change events. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VFy4m7cVv4cqp25jJh2gSB
LOGPile
Standalone Go application for BMC diagnostics analysis with an embedded web UI.
What it does
- Parses vendor diagnostic archives into a normalized hardware inventory
- Collects live BMC data via Redfish
- Exports normalized data as CSV, raw re-analysis bundles, and Reanimator JSON
- Runs as a single Go binary with embedded UI assets
Documentation
- Shared engineering rules:
bible/README.md - Project architecture and API contracts:
bible-local/README.md - Agent entrypoints:
AGENTS.md,CLAUDE.md
Run
make build
./bin/logpile
Default port: 8082
License
MIT (see LICENSE)
Releases
24
logpile v1.31
Latest
Languages
Go
92.3%
JavaScript
4.6%
CSS
1.5%
HTML
1%
Shell
0.5%
Other
0.1%