cd691ca3

By: Michael Lynch <git@mtlynch.io>

Add ErrInvalidEmail sentinel and assert it in email tests

NewEmail now wraps all parse failures with ErrInvalidEmail so callers
can use errors.Is to distinguish invalid email input from other errors.
Tests switch from a wantErr bool to errExpected error, matching the
pattern used in the rest of the test suite.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Codeberg

Suite timing

Time to Start Worker time Duration Time to finish
Config 18s 2s 2s 20s
Eval 1m09s 1m10s 1m10s 2m19s
Build - - - -
Test - - - -
Deploy - - - -
Suite 18s 1m13s - -