bbc4b1e763
- Capture scanner control keystrokes (Ctrl+]/^/\/_ → GS/RS/FS/US) in the scan input so ANSI MH10.8.2 field separators survive the HTML input filter, eliminating the Q-quantity-vs-next-DI ambiguity. - Fall back to a DI-aware lazy regex when separators are stripped (e.g. pasted scans), so Q digits stop at the next data identifier instead of greedily eating into 11Z/12Z/etc. - Make pending-part dicts JSON-serializable by isoformat-ing the timestamp; without this the worker's import_complete socket emit threw and the entry was never removed from the queue, causing every re-scan to 400 with "already queued" forever. - Make /api/part/import idempotent: a re-scan of an already-queued part updates qty/location and returns 200 with already_queued=true instead of 400. - Surface search/queue errors in the client log instead of silently swallowing them, and stop treating a 500 from /api/part/search as "not found" (which was causing re-queue loops). - Log full tracebacks for /api/part/search failures and split the get_part_info / get_part_parameters error paths so failures can be attributed. - Migrate get_part_parameters to the InvenTree 1.x endpoint /api/parameter/?model_type=part.part&model_id=<id>. The old /api/part/parameter/?part=<id> returns 404 on this instance, and even on the new endpoint the ?part= filter is silently ignored (would have returned every parameter in the database). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>