- GetPoetImageIdByUrl: missing portrait -> Guid.Empty (placeholder) instead of a null cast
- run-local.sh: wait for SQL Server with a query and for API/site via HTTP
(pipefail+grep -q never matched; API log level hides 'Now listening' outside Development)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- MakeTextSearchable: Urdu letter variants, Urdu full stop, Urdu diacritics, zwj/marks
- SearchLikePatterns: phrase or per-word LIKE patterns (escaped), normalised like stored text
- poem, similar-poem and comment search use LIKE (Linux SQL Server image has no full-text)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- poet ImageUrl always points at the API image endpoint
- endpoint serves a neutral SVG placeholder when a poet has no portrait
- public data export: poet image URLs use our API (WebServiceUrl), not ganjoor.net
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>