Scan an equipment tag and get that asset's record — or an honest "I don't know". Finding a code was never the hard part. Deciding which machine it means, and refusing to decide when the answer is not clear, is.
Stored on this phone only, in
localStorage, so nothing leaves the device until you copy or share it
— and clearing site data wipes it. Send it before you clear anything.
P-2104-A beside
P-2104-B (duty and standby, one letter apart), and
M-2104-A sharing the pump's number — because that is what a real
plant looks like, and it is exactly where a clever matcher quietly does damage.P-2104-A has one.
Drawing an empty panel for the others would let "we never captured this" look like
"a quiet day".All of that is asserted on the bench: node tools/check_resolve.mjs,
19 checks, most of them about when the answer should be no. Tags are fictional.
BarcodeDetector returns cornerPoints, and
markerpose.js turns four corners of a known-size square into a full pose,
already benched. Joining them needs a phone in hand to tune, so it waits for one.