- Serve bundled sound resources from the Resources folder
- Play alert.wav when a scan has invalid QR format or missing data
- Play alert.wav when the scanned unique number is not found in the database
- Keep the alert silent for other failures, such as service errors or shipment mark update failures
- Include alert.wav in build and publish output
- Add SQLite-backed scan history storage with configurable database path and retention limit
- Register scan history DbContext and persist recent scan records across app restarts
- Update shipment verification flow to mark matched cartons as moved to warehouse
- Treat verification as successful only when the record exists and the shipment flag update succeeds
- Rename verification flag configuration to use moved_to_warehouse
- Make scan history APIs async and update controllers/services accordingly
- Improve dashboard scan handling for pasted QR values and prevent duplicate submissions
- Update UI branding to SHIPPING MARK and simplify the dashboard status layout
- Display scan history timestamps in local time