v0.1.4 — Interactive GTFS File Map + large-feed memory optimization
This release adds the Interactive GTFS File Map and substantially improves the reliability of large feeds under WebAssembly. Before 0.1.4, VBB-class feeds (e.g. VBB Berlin, ~282k trips / 6.3M stop_times) either ran close to the 4 GB wasm32 memory ceiling or failed during result serialization; 0.1.4 brings peak memory down to roughly 2.74 GB, an improvement of about 1.3 GB of headroom.
Added
- Interactive GTFS File Map that combines GTFS file relationships with the real analyzer findings for the loaded feed.
- Per-file finding count, severity, row count, and missing/clean status.
- Direct navigation from a file into the filtered Detail and Fix views.
- File-type icons, dark theme, and a mobile layout; non-spec files are shown separately.
- Turkish, English, and Japanese UI strings for the File Map.
- Diagnostic information showing the last completed pipeline stage on validation errors and timeouts.
Performance
- Reduced WASM peak memory on the VBB Berlin test feed from roughly 4.0 GB (or a serialization failure) to about 2.74 GB.
CompactStopTimerow size reduced from 168 to 96 bytes: dead flag fields removed andstop_headsignboxed.- Removed about 454 MB of unused capacity in the
stop_timesrow buffer. - Removed the second, borrowed copy of
trip_stop_setbuilt in the K4 cross-reference stage, and freed the set after K4 so K6 allocations can reuse that space. - Added a large-feed mode to the name index to avoid serialization OOM (notices fall back to raw IDs above a deterministic threshold); small and normal feeds are unchanged.
- Reduced several high-volume intermediate notice emitters (TRP_020, SHP_022, STP_022, PTH_008).
Fixed
- Large GTFS feeds that previously approached the wasm32 4 GB limit or ran out of memory can now be analyzed more safely.
- STM_014 (fast travel) false positives on feeds using extended European
route_typecodes (S-Bahn, U-Bahn, tram, regional rail) — speed thresholds are now mapped to the correct vehicle category. - The File Map no longer disappears entirely when a severity filter is applied; dark-theme file/group colors and file-relationship label readability were corrected.
Known caveat: an intermittent rayon worker crash (memory access out of bounds) was observed in one earlier run; high-water was below 4 GB, so it is not proven to be OOM. The error card now reports the last completed pipeline stage; it will be filed separately if it recurs.
Remaining large-feed runtime optimization is tracked in #37.