8665f79fd6172dfdb47ce1d980326f66106afcb5
- archive.go: extractTarGzFromReader truncated decompressed tar.gz content at a hard 50MB byte boundary before checking whether it was a tar archive, corrupting the tar structure mid-entry for any legitimately large archive (e.g. a 200MB decompressed NVIDIA bug-report bundle) and causing the whole file to fail with "tar read: unexpected EOF" instead of extracting what's there. Now peeks the first 512-byte tar block to detect tar vs. single gzipped file without consuming the stream, and streams tar entries with a cumulative (not raw-byte) size limit that only ever stops at an entry boundary. The byte-level cap still applies to the single-gzipped-file case, where it's safe since there's no container structure to corrupt. - reanimator_converter.go: normalizeLegacyPCIeDeviceClass mapped an empty device_class to "NetworkController" by accident (grouped into the same case as "network"/"ethernet" aliases). Sources that never populate a class at all (e.g. Dell's DCIM_PCIDeviceView) got every such device — including NVMe drives and SATA controllers — mislabeled as network controllers. Empty now stays empty instead of being guessed. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
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%