v0.2.1: alert HTML normalization, ferry bulletin detail
alert HTML normalization, ferry bulletin detail
- wsdot_search_alerts normalizes headlineDescription/extendedDescription HTML to plain text, keeping link destinations as "text (url)" (#22)
- wsdot_get_ferry_alerts surfaces alertTitle, bulletinText, alertType, and affectsAllRoutes alongside the existing summary — bulletinText is the only place detail such as a replacement sailing appears (#34)
- Shared normalizer (src/services/html-text.ts): a hand-written single-pass scanner, linear in input length; non-http(s) link destinations are dropped while anchor text is kept, control characters in a destination are stripped before the scheme check, and an unresolved entity in a destination is rejected