Repository navigation
Releases
ID databases 2026.11.02
Hardware ID databases built from upstream on 2026.11.02, and the advisor knowledge base as committed. Installed by hwspec ids update; see manifest.json for per-file dates and counts.
ID databases 2026.10.26
Hardware ID databases built from upstream on 2026.10.26, and the advisor knowledge base as committed. Installed by hwspec ids update; see manifest.json for per-file dates and counts.
ID databases 2026.10.19
Hardware ID databases built from upstream on 2026.10.19, and the advisor knowledge base as committed. Installed by hwspec ids update; see manifest.json for per-file dates and counts.
hwspec edge (8d54c1c)
Rolling build of main at 8d54c1c, after CI passed. Not a release: use the latest vX.Y.Z for anything that matters.
ID databases 2026.10.12
Hardware ID databases built from upstream on 2026.10.12, and the advisor knowledge base as committed. Installed by hwspec ids update; see manifest.json for per-file dates and counts.
hwspec v0.1.0-rc.2
What's Changed
- docs(contributing): reproducing a release needs a git checkout of the tag by @jiegui2025 in #77
- docs(contributing): PR, commit and issue templates, and the PR sidebar by @jiegui2025 in #85
- docs(architecture): link the Chassis comparison from the plan by @jiegui2025 in #92
- docs(adr): 0009, the advisor design by @jiegui2025 in #78
- docs(contributing): close a parent issue by hand after its sub-issues by @jiegui2025 in #94
- feat(advisor): engine, knowledge base and hwspec advise by @jiegui2025 in #84
- feat(capture): GPU hardware clock range and the measured clock by @jiegui2025 in #95
- docs(adr): 0010, peripheral and UPS batteries, with read-only UPower by @jiegui2025 in #97
- feat(capture): record each PCI device's parent bridge by @jiegui2025 in #116
- docs(readme): sync the roadmap with the board by @jiegui2025 in #104
- feat(capture): record firmware slots, onboard devices and CPU package by @jiegui2025 in #117
- docs: add a code of conduct and an accessibility statement by @jiegui2025 in #127
- feat(capture): Intel ME and EC firmware, and the TPM's spec version by @jiegui2025 in #125
- docs(readme): sync the roadmap after the backlog pass by @jiegui2025 in #134
- feat(capture): list every memory slot, used or empty by @jiegui2025 in #135
- docs: tables and Mermaid in the issue, PR and ADR templates by @jiegui2025 in #159
- feat(capture): say whether each part is soldered on or in a slot by @jiegui2025 in #133
- docs(readme): sync the roadmap after the architecture review by @jiegui2025 in #163
- fix(cli): under sudo, never replace a file the user doesn't own by @jiegui2025 in #164
- perf(collect): read only the SPD bytes and codec IDs hwspec uses by @jiegui2025 in #166
- fix(capture): read block devices as udev and the kernel record them by @jiegui2025 in #167
- perf(ids): load ID databases faster and overlap loading with capture by @jiegui2025 in #169
- chore(deps): move to go.yaml.in/yaml/v3, test the YAML limits by @jiegui2025 in #171
- ci: cut PR and merge CI time by @jiegui2025 in #170
- fix(ids): don't let a truncated distro database replace the embedded one by @jiegui2025 in #172
- feat(advisor): checks declare match keys, data and an example for genkb by @jiegui2025 in #173
- perf(collect): overlap the sensors collector, preload hwspec ids by @jiegui2025 in #177
- ci: start VMs sooner, queue less, render diagrams in one call by @jiegui2025 in #180
- feat(capture): say why a part's firmware version is unknown by @jiegui2025 in #176
- feat(kb): models, devices, cpus and allowlists sections by @jiegui2025 in #178
- feat(capture): candidate kernel modules for driverless PCI devices by @jiegui2025 in #183
- docs(readme): sync the roadmap with the board by @jiegui2025 in #186
- feat(kb): add the reference HP model's memory slots, rules and speeds by @jiegui2025 in #187
- feat(ids): ship the advisor knowledge base in the signed bundle by @jiegui2025 in #185
- ci(release): check tags before approval, and test outside signing by @jiegui2025 in #193
- ci: run only what a change can break, with a nightly full run by @jiegui2025 in #194
- docs(contributing): merge without rebasing; define critical changes by @jiegui2025 in #195
- ci: check pinning in reusable workflows and local actions too by @jiegui2025 in #196
- ci: proportionate verification of edge builds by @jiegui2025 in #197
- ci: close the CI gaps with a real defect behind them (fuzzing first) by @jiegui2025 in #198
- test(kb): fuzz the knowledge base parser by @jiegui2025 in #199
- feat(advisor): answer memory upgrade questions with their sources by @jiegui2025 in #200
- feat(capture): ask a TPM 2.0 for its maker and firmware under --full by @jiegui2025 in #201
- feat(capture): read Bluetooth firmware from HCI Read Local Version by @jiegui2025 in #206
- feat(capture): say when some memory modules' SPD isn't exposed by @jiegui2025 in #207
- feat(capture): read Intel GPU GuC and HuC versions under --full by @jiegui2025 in #208
- feat(capture): list amdgpu's per-block firmware versions by @jiegui2025 in #209
- fix(capture): say when debugfs isn't mounted instead of blaming i915 by @jiegui2025 in #210
- docs(readme): sync the roadmap with the board by @jiegui2025 in #211
- feat(capture): record kernel module blacklists by @jiegui2025 in #217
- feat(capture): record firmware that failed to load, under --full by @jiegui2025 in #218
- feat(advisor): say why a PCI device has no driver by @jiegui2025 in #219
- feat(advisor): say which package ships firmware that failed to load by @jiegui2025 in #220
- feat: say why a USB interface has no driver by @jiegui2025 in #221
- docs(adr): ADR 0012, a verified firmware index fetched on request by @jiegui2025 in #222
- docs(readme): sync the roadmap with the board by @jiegui2025 in #228
- feat(firmware): fetch a verified firmware index on request by @jiegui2025 in #229
- feat(capture): record the keys firmware catalogues match parts by by @jiegui2025 in #231
- fix(cli): refuse to run ids update under sudo by @jiegui2025 in #232
- feat(advisor): compare loaded Wi-Fi firmware with linux-firmware by @jiegui2025 in #233
- feat(advisor): compare firmware with LVFS's verified catalogue by @jiegui2025 in #234
- feat(advisor): say where to check firmware LVFS doesn't carry by @jiegui2025 in #236
- fix(capture): don't report unknown or invalid values as facts by @jiegui2025 in #242
- fix(capture): check drives' health at once, and bound slow reads by @jiegui2025 in #243
- feat(advisor): storage answers: bus path, M.2 slots, faster drives by @jiegui2025 in #241
- test: guards so new fields can't skip redaction, sanitising or seams by @jiegui2025 in #244
- fix(ids): known-answer checks before the weekly bundle is signed by @jiegui2025 in #245
- chore(ids): refresh embedded databases by @jiegui2025 in #246
Full Changelog: v0.1.0-rc.1...v0.1.0-rc.2
hwspec v0.1.0-rc.1
What's Changed
- ci: harden the pipeline and document architecture and contribution by @jiegui2025 in #1
- build(deps): bump golang.org/x/sys from 0.25.0 to 0.48.0 in the go-modules group by @dependabot[bot] in #21
- fix: close the findings of the first independent review and CodeQL by @jiegui2025 in #23
- docs: Mermaid diagrams, tables and comparisons across the documentation by @jiegui2025 in #40
- feat: identity, firmware, driver and health details for every device by @jiegui2025 in #44
- ci: run only the checks a change needs by @jiegui2025 in #41
- fix(cli): format choice for dotfiles, .yaml and paths without an extension by @MrBeldum in #47
- test: 95% feature-driven coverage, from recorded and synthetic machines by @jiegui2025 in #49
- docs: backlog standard, ranked roadmap, real sample output by @jiegui2025 in #54
- ci: pin ubuntu-24.04 and watch ubuntu-26.04 with a canary by @jiegui2025 in #56
- ci(release): approval gate, pre-release candidates, reproducible tarballs by @jiegui2025 in #58
- ci: verify every publish, and publish main as a rolling edge pre-release by @jiegui2025 in #59
- fix(collect): omit unsigned without module signing by @abhinavrastogi2627 in #61
- ci(vm): verify releases in KVM VMs with systemd, OpenRC and sysvinit by @jiegui2025 in #60
- fix(report): --redact keeps week-form manufacture dates to the month by @jiegui2025 in #64
- fix(smbios): treat ASUS and AMI default DMI strings as unknown by @jiegui2025 in #63
- ci(release): prove verification catches tampered assets by @jiegui2025 in #62
- fix(ids): cite a source for every curated CPU codename, fix the wrong ones by @jiegui2025 in #65
- feat(cli): publish a JSON Schema for the capture format, with a compatibility check by @jiegui2025 in #67
- ci: enforce the architecture rules automatically by @jiegui2025 in #68
- test: any network dial during a capture fails a test by @jiegui2025 in #71
- ci: cover Linux Mint and MX Linux as far as they can be automated by @jiegui2025 in #70
- fix(output): quote YAML strings that YAML 1.1 parsers read as numbers by @jiegui2025 in #72
- docs(readme): sync the roadmap with the board by @jiegui2025 in #73
- chore(ids): refresh embedded databases by @jiegui2025 in #74
- fix(ids): name AMD family 17h model 47h (Cyan Skillfish) by @shaikn6 in #75
New Contributors
- @jiegui2025 made their first contribution in #1
- @dependabot[bot] made their first contribution in #21
- @MrBeldum made their first contribution in #47
- @abhinavrastogi2627 made their first contribution in #61
- @shaikn6 made their first contribution in #75
Full Changelog: ids-2026.10.05...v0.1.0-rc.1
ID databases (latest)
Always the newest bundle; see the dated ids-* releases for history.
ID databases 2026.10.05
Hardware ID databases built from upstream on 2026.10.05. Installed by hwspec ids update; see manifest.json for per-database dates and counts.