5e81250e

By: Michael Lynch <git@mtlynch.io>

Canonicalize grocery item text fields

Normalize whitespace in item names, sections, and notes through domain value
constructors. Notes now use a typed value throughout the handlers and SQLite
store, which prevents non-canonical values from entering new writes and
normalizes previously stored notes when read.

Tests: nix build .#go-tests; ./dev-scripts/build-all-flake-targets

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 18s 7s 7s 25s 18s
Eval 23s 1m16s 1m16s 1m39s 0s
Build 1m29s 5m17s 1m21s 2m50s 0s
Suite 18s 6m41s 2m32s 2m50s 18s

Timeline

0s20s40s1m1m20s1m40s2m2m20s2m40s