Skip to content

feat: add motherboard information retrieval and dashboard integration#1081

Merged
shm11C3 merged 3 commits into
developfrom
feat/mother-board
Feb 9, 2026
Merged

feat: add motherboard information retrieval and dashboard integration#1081
shm11C3 merged 3 commits into
developfrom
feat/mother-board

Conversation

@shm11C3

@shm11C3 shm11C3 commented Feb 8, 2026

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI review requested due to automatic review settings February 8, 2026 14:32
@github-actions github-actions Bot added rust Pull requests that update Rust code frontend feature labels Feb 8, 2026
@github-actions

github-actions Bot commented Feb 8, 2026

Copy link
Copy Markdown
Contributor

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 79.84% (🎯 60%) 800 / 1002
🔵 Statements 77.81% (🎯 60%) 828 / 1064
🔵 Functions 71.2% (🎯 60%) 178 / 250
🔵 Branches 66.76% (🎯 60%) 231 / 346
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
src/features/hardware/dashboard/hooks/useExportToClipboard.ts 64% 25% 27.27% 64%
src/features/hardware/dashboard/hooks/useSortableDashboard.ts 0% 0% 0% 0%
src/features/hardware/hooks/useHardwareInfoAtom.ts 70.96% 66.66% 75% 70.96%
Generated in workflow #2193 for commit 5af149d by the Vitest Coverage Report Action

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds motherboard + BIOS information to the hardware monitoring pipeline and surfaces it in the dashboard/clipboard export, extending the existing “SysInfo” aggregate.

Changes:

  • Introduces a MotherboardInfo model and threads SysInfo.motherboard through backend collection and frontend state.
  • Implements motherboard retrieval on Windows via WMI and adds placeholder implementations on Linux/macOS.
  • Adds a new “Motherboard” dashboard tile, selector entry, and clipboard export section, plus i18n labels.

Reviewed changes

Copilot reviewed 21 out of 21 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/rspc/bindings.ts Updates generated TS types to include MotherboardInfo and SysInfo.motherboard.
src/lang/en.json Adds English UI strings for motherboard fields.
src/lang/ja.json Adds Japanese UI strings for motherboard fields.
src/features/hardware/hooks/useHardwareInfoAtom.ts Initializes SysInfo atom with motherboard: null.
src/features/hardware/hooks/useHardwareInfoAtom.test.ts Updates expected SysInfo shape to include motherboard.
src/features/hardware/dashboard/types/dashboardItem.ts Adds "motherboard" to available dashboard items.
src/features/hardware/dashboard/hooks/useSortableDashboard.ts Adds "motherboard" to default sortable dashboard order.
src/features/hardware/dashboard/hooks/useExportToClipboard.ts Appends motherboard section to clipboard export output.
src/features/hardware/dashboard/components/DashboardItems.tsx Adds MotherboardDataInfo table component.
src/features/hardware/dashboard/components/DashboardItemSelector.tsx Adds “Motherboard” to the visibility dropdown labels.
src/features/hardware/dashboard/Dashboard.tsx Registers motherboard tile + icon and integrates it into rendering/filtering.
src-tauri/src/services/motherboard_service.rs Adds service entry point to fetch motherboard info via platform abstraction.
src-tauri/src/services/mod.rs Exposes the new motherboard service module.
src-tauri/src/services/hardware_service.rs Collects motherboard info in parallel and includes it in SysInfo.
src-tauri/src/platform/windows/motherboard.rs Adds Windows motherboard fetcher using spawn_blocking WMI query.
src-tauri/src/platform/windows/mod.rs Wires MotherboardPlatform into WindowsPlatform.
src-tauri/src/platform/traits.rs Introduces MotherboardPlatform and extends Platform to include it.
src-tauri/src/platform/macos/mod.rs Adds MotherboardPlatform impl returning “not implemented”.
src-tauri/src/platform/linux/mod.rs Adds MotherboardPlatform impl returning “not implemented”.
src-tauri/src/models/hardware.rs Adds MotherboardInfo struct and SysInfo.motherboard.
src-tauri/src/infrastructure/providers/windows/wmi_provider.rs Implements WMI queries for baseboard + BIOS and formats WMI datetime.

Comment thread src-tauri/src/platform/macos/mod.rs
Comment thread src-tauri/src/platform/linux/mod.rs
Comment thread src/features/hardware/dashboard/Dashboard.tsx Outdated
Comment thread src/features/hardware/dashboard/hooks/useExportToClipboard.ts
Comment thread src/rspc/bindings.ts
Comment thread src-tauri/src/services/hardware_service.rs
Copilot AI review requested due to automatic review settings February 9, 2026 15:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 21 out of 21 changed files in this pull request and generated 3 comments.

Comment on lines 9 to +20
const { init } = useHardwareInfoAtom();
const [dashboardItemMap, setDashboardItemMap] = useTauriStore<
DashboardItemType[]
>("dashboardItem", ["cpu", "gpu", "memory", "storage", "network", "process"]);
>("dashboardItem", [
"cpu",
"gpu",
"memory",
"storage",
"network",
"process",
"motherboard",
]);

Copilot AI Feb 9, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dashboardItem order is persisted via Tauri Store. For existing users with an older stored array (without the new "motherboard" key), the dashboard will never render the motherboard card because rendering iterates dashboardItemMap only. Consider adding a small migration step (e.g., on load) to append any missing dashBoardItems into dashboardItemMap and persist the updated array.

Copilot uses AI. Check for mistakes.
Comment on lines +87 to +101
impl MotherboardPlatform for MacOSPlatform {
fn get_motherboard_info(
&self,
) -> Pin<
Box<
dyn Future<Output = Result<crate::models::hardware::MotherboardInfo, String>>
+ Send
+ '_,
>,
> {
Box::pin(async {
Err("get_motherboard_info is not implemented for MacOSPlatform".to_string())
})
}
}

Copilot AI Feb 9, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On macOS/Linux the new get_motherboard_info stub always returns Err("...not implemented..."), which will be logged as an error by collect_hardware_info every time hardware info is fetched. If "unsupported" is an expected state, consider representing it as Ok(None) (e.g., change the trait to return Result<Option<MotherboardInfo>, String>) or avoid logging this specific error at error level to reduce noisy logs.

Copilot uses AI. Check for mistakes.
Comment on lines +89 to +102
impl MotherboardPlatform for LinuxPlatform {
fn get_motherboard_info(
&self,
) -> Pin<
Box<
dyn Future<Output = Result<crate::models::hardware::MotherboardInfo, String>>
+ Send
+ '_,
>,
> {
Box::pin(async {
Err("get_motherboard_info is not implemented for LinuxPlatform".to_string())
})
}

Copilot AI Feb 9, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On Linux the new get_motherboard_info stub always returns Err("...not implemented..."), which will be logged as an error by collect_hardware_info every time hardware info is fetched. If "unsupported" is an expected state, consider representing it as Ok(None) (e.g., change the trait to return Result<Option<MotherboardInfo>, String>) or avoid logging this specific error at error level to reduce noisy logs.

Copilot uses AI. Check for mistakes.
@shm11C3 shm11C3 enabled auto-merge (squash) February 9, 2026 15:37
@shm11C3 shm11C3 merged commit 9702aa5 into develop Feb 9, 2026
22 checks passed
@shm11C3 shm11C3 deleted the feat/mother-board branch February 9, 2026 15:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature frontend rust Pull requests that update Rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants