63fffa56

Author: Michael Lynch <git@mtlynch.io>

Committer: Michael Lynch <mtlynch@noreply.codeberg.org>

Prevent duplicate grocery items (#100)

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.

Reviewed-on: https://codeberg.org/mtlynch/grosiree/pulls/100

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 20s 6s 6s 27s 20s
Eval 29s 1m00s 1m00s 1m29s 1s
Build 1m28s 0s 2s 1m31s 1s
Deploy 1m34s 1m34s 1m34s 3m08s 3s
Suite 20s 2m41s 2m48s 3m08s 27s

Timeline

0s40s1m1m20s1m40s2m2m20s2m40s3m