Alert rows show header_text only. GTFS-Realtime alerts also carry description_text, which is where the actual detail lives — the header is often just "Delays" or "Service change".
Gtfs.decodeAlerts currently decodes the header and discards the description, so this is data already on the wire and already being parsed past. An expand-on-click row in Panel.qml would surface it without a second request.
Two things to watch:
description_text is long and unbounded in practice. Whatever is added should be length-capped before it reaches a QML Text element, in the same spirit as the other caps in this codebase.
- alert severity comes from the MTA's Mercury extension rather than GTFS
effect (see AGENTS.md), so the description is not a substitute for the severity classification Model.worstAlertClass does.
Alert rows show
header_textonly. GTFS-Realtime alerts also carrydescription_text, which is where the actual detail lives — the header is often just "Delays" or "Service change".Gtfs.decodeAlertscurrently decodes the header and discards the description, so this is data already on the wire and already being parsed past. An expand-on-click row inPanel.qmlwould surface it without a second request.Two things to watch:
description_textis long and unbounded in practice. Whatever is added should be length-capped before it reaches a QMLTextelement, in the same spirit as the other caps in this codebase.effect(seeAGENTS.md), so the description is not a substitute for the severity classificationModel.worstAlertClassdoes.