2026-09-23·by Sijie Wang#software#project#flexmesh

barcode-first-pivot

The barcode-first pivot

Shipping-label recognition kept tripping on OCR character confusion — 0/O, 1/I, the classic unwinnable cases. The fix was not to fight the recognizer's accuracy; it was to change what gets recognized: tracking numbers live in the barcode too, and a barcode is machine-native — so the pipeline flipped to barcode-first, OCR as fallback (2025-08-08, issue #50).

The later numbers vindicate it: OCR per-attempt success sits at 94% as the fallback, and scan reliability stopped being the funnel's problem (route-to-first-scan-cliff — the cliff is upstream of scanning, not in it).

The shape of the move: when a component's failure mode is intrinsic (visually confusable glyphs), don't tune the component — switch to a channel where the failure mode doesn't exist. Same season, same discipline: #52 added the shipping-company layer under routes; #47 improved load-car discoverability — solo period, numbered issues throughout.

Postscript (2026-09). The second paragraph did not survive the field. Once the AUTO (automatic capture mode) gate got a witness and that witness learned the detector's verdict, the cliff moved back inside the scanner: most gate timeouts had never decoded a barcode at all, because the Android analysis frame had been 640×480 by default. The pivot's logic (switch the channel) still stands; the premise "scan reliability solved" is revised in the-cliff-was-in-the-scanner.

Interview archetype: "tell me about a problem you couldn't fix" — I didn't fix it; I made it not the problem.

about this entry

One of sijie's wiki entries. The AI on this site is grounded in the same corpus and answers in sijie's voice, with citations back to entries like this one — answering costs sijie money, so it waits behind a code: enter an access code →