Summary
Manager/model endpoints call synchronous directory scanning and hardware evaluation; hardware inspection uses subprocesses. Lifecycle operations use synchronous process calls, while async asset methods perform synchronous file writes/hashing. main.py:236 rescans inventory for status.
Environment and evidence
- Review finding: F40 (2026-10-05 product/technical review).
- Baseline: Windows,
dev at c1c5dbe. The remote dev matched this commit when filing.
- Evidence: Code.
- Priority recommendation: P2 - material improvement or integration validation. This is review triage, not a production-incident severity declaration.
- No real credentials, paid inference, engine installation, or unrelated process termination were used for review probes. Mocked observations establish the stated code behavior, not live-provider/GPU acceptance.
Reproduction or validation
Trace manager/model routes into synchronous scans and hardware subprocess calls; async asset methods also perform synchronous file writes/hashing. Status requests rescan inventory. No load/latency benchmark was run, so this issue identifies an event-loop blocking risk rather than claiming a measured latency number.
User impact
Large libraries or slow disks/processes can delay unrelated health, task, and UI requests. No load benchmark was run.
Proposed approach
Move blocking work to bounded worker threads/processes, maintain an incremental model index, cache hardware/status snapshots, and measure request latency during large imports/scans.
Acceptance criteria
Additional source references
Verification scope
Real GPU inference, paid-provider compatibility, and a clean-machine packaged desktop journey remain unverified. Any follow-up implementation should target dev under the repository's contribution/branching rules.
Summary
Manager/model endpoints call synchronous directory scanning and hardware evaluation; hardware inspection uses subprocesses. Lifecycle operations use synchronous process calls, while async asset methods perform synchronous file writes/hashing. main.py:236 rescans inventory for status.
Environment and evidence
devat c1c5dbe. The remotedevmatched this commit when filing.Reproduction or validation
Trace manager/model routes into synchronous scans and hardware subprocess calls; async asset methods also perform synchronous file writes/hashing. Status requests rescan inventory. No load/latency benchmark was run, so this issue identifies an event-loop blocking risk rather than claiming a measured latency number.
User impact
Large libraries or slow disks/processes can delay unrelated health, task, and UI requests. No load benchmark was run.
Proposed approach
Move blocking work to bounded worker threads/processes, maintain an incremental model index, cache hardware/status snapshots, and measure request latency during large imports/scans.
Acceptance criteria
Additional source references
Verification scope
Real GPU inference, paid-provider compatibility, and a clean-machine packaged desktop journey remain unverified. Any follow-up implementation should target
devunder the repository's contribution/branching rules.