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