Skip to content

feat(cli): auto-detect AIM_HARDWARE_FAMILY and gate incompatible catalogs with human confirmation - #298

Open
Q-Dub wants to merge 15 commits into
mainfrom
EAI-8054_autodetect_aim_hw_family
Open

feat(cli): auto-detect AIM_HARDWARE_FAMILY and gate incompatible catalogs with human confirmation#298
Q-Dub wants to merge 15 commits into
mainfrom
EAI-8054_autodetect_aim_hw_family

Conversation

@Q-Dub

@Q-Dub Q-Dub commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Derive AIM model families from PCI GPU and EPYC CPU detection when unset, falling back to cpu without requiring host ROCm. Prompt [y/N] before full or ClusterForge installs when explicit families lack local hardware, bypassed by --yes/-y. Update bloom help and configuration docs.

Q-Dub and others added 14 commits August 13, 2026 13:43
…logs

Derive AIM model families from PCI GPU and EPYC CPU detection when unset,
falling back to cpu without requiring host ROCm. Prompt [y/N] before full or
ClusterForge installs when explicit families lack local hardware, bypassed by
--yes/-y. Update bloom help and configuration docs.

Co-authored-by: Cursor <[email protected]>
…arnings

Centralize family constants, track unmapped AMD PCI device IDs, and emit
user-visible warnings when GPU/EPYC scans fail or known devices lack AIM
family mappings. Reuse DescribeFamily in auto-detect output.

Co-authored-by: Cursor <[email protected]>
Add table-driven tests for auto-detect mutation, explicit preservation, and
compatibility gating with auto-confirm and declined prompts.

Co-authored-by: Cursor <[email protected]>
Expose /api/detect-hardware, show host detection in the web UI, and apply
AIM catalog defaults when generating or saving bloom.yaml from the configurator.

Co-authored-by: Cursor <[email protected]>
Document empty string as the schema default with runtime auto-detection,
matching README, configuration-reference, and web UI behavior.

Co-authored-by: Cursor <[email protected]>
…guide

Describe PCI/EPYC detection, web UI preview, explicit-family confirmation,
and bloom.yaml usage aligned with the implemented behavior.

Co-authored-by: Cursor <[email protected]>
Document that --export writes auto-detected AIM_HARDWARE_FAMILY values but
does not prompt for explicit incompatible catalogs because no install runs.

Co-authored-by: Cursor <[email protected]>
Add required copyright headers to 13 new Go files per CODE_STYLE.md
requirements. All files created for AIM hardware family auto-detection
feature were missing the Apache 2.0 license header.

Co-Authored-By: Claude <[email protected]>
Move describeDetectedHardware formatting logic from cmd package to a
Describe() method on DetectedHardware. This resolves Feature Envy code
smell where cmd package was reaching into DetectedHardware internals.

Co-Authored-By: Claude <[email protected]>
Rename helper to clarify that it returns empty string when type
assertion fails. Previous name was mysterious about failure behavior.

Co-Authored-By: Claude <[email protected]>
Create DeviceID newtype wrapping string to prevent accidental non-hex
keys in amdGPUDevicesByID map. Addresses Primitive Obsession code smell
where raw hex strings stood in for domain concept.

Co-Authored-By: Claude <[email protected]>
Document that AIM_HARDWARE_FAMILY determines the cluster-wide catalog
deployed on the first node only. Add two workflows: auto-detect for
homogeneous hardware, and pre-configure for heterogeneous clusters
where GPU workers join after CPU-only control plane.

Update installation-guide.md with workflow examples, PRD.md with
cluster-wide scope clarification, and configuration-reference.md with
first-node-only deployment note.

Co-Authored-By: Claude <[email protected]>
@Q-Dub
Q-Dub marked this pull request as ready for review September 2, 2026 18:48
@Q-Dub
Q-Dub requested a review from a team as a code owner September 2, 2026 18:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant