Skip to content

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

Draft
Q-Dub wants to merge 14 commits into
mainfrom
EAI-8054_autodetect_aim_hw_family
Draft

feat(cli): auto-detect AIM_HARDWARE_FAMILY and gate incompatible catalogs with human confirmation#298
Q-Dub wants to merge 14 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 <cursoragent@cursor.com>
…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 <cursoragent@cursor.com>
Add table-driven tests for auto-detect mutation, explicit preservation, and
compatibility gating with auto-confirm and declined prompts.

Co-authored-by: Cursor <cursoragent@cursor.com>
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 <cursoragent@cursor.com>
Document empty string as the schema default with runtime auto-detection,
matching README, configuration-reference, and web UI behavior.

Co-authored-by: Cursor <cursoragent@cursor.com>
…guide

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

Co-authored-by: Cursor <cursoragent@cursor.com>
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 <cursoragent@cursor.com>
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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
Rename helper to clarify that it returns empty string when type
assertion fails. Previous name was mysterious about failure behavior.

Co-Authored-By: Claude <noreply@anthropic.com>
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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
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