506bdcb2

By: Michael Lynch <git@mtlynch.io>

Prevent duplicate grocery items

Enforce unique canonical name and note pairs in a strict SQLite table. Existing
duplicate rows are reduced to the newest row during migration, and legacy values
are normalized before database checks apply.

Ask users to confirm duplicate adds, edits, and stored-list applies. Confirmed
requests merge quantities while preserving the existing grocery item's state.

Testing: dev-scripts/build-all-flake-targets

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 2s 9s 9s 12s 2s
Eval 10s 30s 30s 40s 0s
Build 33s 0s 2s 36s 0s
Suite 2s 40s 38s 40s 2s

Timeline

0s10s20s30s40s