32cd33c2

Author: Michael Lynch <git@mtlynch.io>

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

Normalize legacy autocomplete item names (#79)

Older databases can contain item_sections keys that differ only by leading or
trailing whitespace. SQLite treats those keys as separate rows, but the
application trims display names before returning them to the autocomplete
control, causing visually duplicate suggestions such as "Ice Cream".

Migration 008 rebuilds item_sections with lowercase, trimmed keys and trimmed
display names. Rebuilding is necessary because normalizing a key can collide
with an existing primary key. For conflicts, the migration processes malformed
keys first and canonical keys last, so the canonical row retains its current
section and display name. It drops rows whose normalized name is empty.

Reviewed-on: https://codeberg.org/mtlynch/grosiree/pulls/79
configuredeploy:deploy-to-flydevShellx86_64-linuxbackendbackend-devcheck-bashcheck-frontendcheck-go-formattingcheck-trailing-newlinecheck-trailing-whitespacedefaultdeploy-to-flydocker-imagee2e-testsgo-testsgrosireegrosiree-devlint-sqlx86_64-linux