Add a negative test that an unexpected DomainException from addRelationshipIdempotently propagates rather than being swallowed (only DUPLICATE/CIRCULAR are caught for idempotency), guarding against a future swallow-all refactor. Add a CanonicalSheetReader test for a row narrower than the header (POI omits trailing empty cells) reading absent columns as "". Refs #669 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>