Files
tools-legacy/openspec/changes/archive/2026-10-02-fpagent-device-availability/proposal.md
T
adebisi-fa 548e33390c feat(fpagent): show scanner availability and gate capture
Consume fpagent's fprint-device-status {available, device, captureAgentId}
in the /fingerprint wizard. Availability is tracked tri-state so an agent
that does not report it leaves capture working as before; the header tag
shows offline / no-scanner / ready, the capture panel warns, and capture is
disabled until a supported reader is attached.

Adds a vm-sandbox test for the wizard logic and the OpenSpec change
fpagent-device-availability, archived with the fingerprint-wizard spec.
2026-10-02 15:12:16 +01:00

1.6 KiB

Proposal: fpagent-device-availability

Why

fpagent now reports whether a supported fingerprint reader is attached, as fprint-device-status {available, device, captureAgentId}, sent to each portal client on connect and whenever availability changes. The wizard does not consume it: the header tag reflects only the socket connection, so a connected agent with no scanner still reads "Agent connected" and capture is allowed, failing only when the enrollment reaches the reader. Operators need to see that the scanner is missing before they try.

What Changes

  • The wizard consumes fprint-device-status and tracks availability and the device name alongside the connected state.
  • The header status tag distinguishes agent offline, connected with no scanner, and ready.
  • While no supported reader is attached, the capture panel shows a warning and the capture/recapture controls are disabled; the capture handler refuses a racing attempt.

Capabilities

New Capabilities

(none)

Modified Capabilities

  • fingerprint-wizard: shows scanner availability from fprint-device-status and gates capture on a supported reader being attached.

Impact

  • tools/public/assets/fp/app.js: handle the event, a multi-state status tag, and a gated capture().
  • tools/public/assets/fp/index.html: disabled controls and an inline warning when no reader is attached.
  • README.md, tools/public/assets/help.html: document the behavior.
  • Depends on fingerprint-agent's fprint-device-status event (change scanner-hotplug-recovery). Agents that do not emit it are tolerated: availability stays unknown and captures are not blocked.