- Set moved_to_warehouse_at with UTC timestamp when a carton is first marked as moved
- Preserve existing moved_to_warehouse update and duplicate-scan behavior
- Return and store moved-to-warehouse timestamp in scan result/history models
- Add SQLite history compatibility column for stored successful scans
- Show "Moved To Warehouse At" in successful scan history UI, with "-" for null values
- Add configurable moved_to_warehouse_at column mapping
- 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