41 lines
2 KiB
Markdown
41 lines
2 KiB
Markdown
---
|
|
phase: 04-usb-manager-label-printing
|
|
verified: 2026-04-10
|
|
status: human_needed
|
|
score: 5/5 (code) — hardware validation pending
|
|
overrides_applied: 0
|
|
---
|
|
|
|
# Phase 4 Verification
|
|
|
|
## Goal
|
|
USB peripherals are managed by a goroutine-per-device subsystem and any cataloged item can have a QR-coded label printed by the PRT Qutie without operator intervention after intake.
|
|
|
|
## Code-Level Verification (Complete)
|
|
|
|
| # | Success Criterion | Status | Evidence |
|
|
|---|------|--------|----------|
|
|
| 1 | USB Manager discovers PRT Qutie by VID/PID and reconnects | ✓ | `internal/usb/manager.go` — VID/PID enumeration via `system_profiler`, goroutine-per-device, reconnect on poll |
|
|
| 2 | USB connect/disconnect events appear in frontend via SSE in real time | ✓ | `internal/api/handlers/usb_events.go` SSE handler + `web/src/hooks/useUSBEvents.ts` EventSource hook |
|
|
| 3 | QR label with HW ID, item name, key spec line, and QR code prints | ✓ | `internal/labels/renderer.go` + `internal/printer/driver.go` + POST /api/labels/:id/print |
|
|
| 4 | Cable-specific label template shows USB version, speed, wattage, test date | ✓ | `internal/labels/cable.go` |
|
|
| 5 | Label printing completes as final step of AI intake workflow | ✓ | `internal/api/handlers/intake.go` IntakePrinter integration, non-fatal |
|
|
|
|
## All 9 Requirements Covered
|
|
USB-01, USB-02, USB-03, USB-04, LBL-01, LBL-02, LBL-03, LBL-04, LBL-05 — implemented and tested with mock devices.
|
|
|
|
## Test Results
|
|
- `go test ./...` — all packages pass
|
|
- `go test ./internal/usb/... -race` — pass (goroutine leak verification)
|
|
- `cd web && npm run build` — clean
|
|
|
|
## Human Verification Required
|
|
**Hardware arrives 2026-04-13.** All hardware-dependent verification deferred to HUMAN-UAT.md:
|
|
|
|
1. PRT Qutie protocol implementation (currently stub)
|
|
2. Real VID/PID for PRT Qutie (placeholder `0525:a4a7` in registry)
|
|
3. Live label print test
|
|
4. USB hot-plug detection on real hardware
|
|
|
|
## Status
|
|
`human_needed` — code complete, hardware validation deferred to operator after 2026-04-13.
|